Pagina 1 di 2

[RISOLTO] installazione su Rocky Linux

Pubblicato: 4 maggio 2022 - 16:29
di bkeller
Buongiorno,

Sto provando a installare WAPT su una VM RockyLinux 8.5, ma riscontro delle difficoltà:

Ho seguito la documentazione qui
https://www.wapt.fr/en/doc/wapt-server- ... based.html
I prerequisiti installati sono i seguenti

Codice: Seleziona tutto

nginx.x86_64         1:1.21.6-1
postgresql.x86_64         10.17-2
Tutto va bene fino alla parte "post conf"; durante l'esecuzione dello script "postconf.py" ricevo il seguente messaggio di errore

Codice: Seleziona tutto

[root@wapt ~]# /opt/wapt/waptserver/scripts/postconf.sh --force-https
not supported, exiting
Guardando il codice (setuphelpers_linux.py) ho visto che RockyLinux sembra essere ben supportato

Codice: Seleziona tutto

def type_redhat():
	return linux_distribution is not None and linux_distribution[0].lower() in ('rhel', 'centos', 'fedora', 'oracle','almalinux','rocky linux')
Non vedo dove nella documentazione sono specificati i prerequisiti tecnici per nginx e postgresql?
Si tratta di un problema con il rilevamento della distribuzione o con la versione della distribuzione?
Si tratta di un problema con la versione di PostgreSQL o Nginx?
È possibile eseguire il debug dello script "postconf.py"?

GRAZIE

Re: installazione su Rocky Linux

Pubblicato: 5 maggio 2022 - 10:57
di dcardon
Ciao bkeller,

quale versione di wapt (vedi le regole del forum)? Questo è già stato corretto tempo fa (errore di battitura: "rocky linux" invece di "rocky").
È necessaria una versione di PostgreSQL >= 9.6 (per il supporto JSON), quindi la versione predefinita in Rocky Linux 8 va bene, non c'è bisogno di aggiornarla (al contrario, la versione 9.4 di PostgreSQL fornita da CentOS 7 deve essere aggiornata). Lo stesso vale per nginx.

Saluti,

Denis

Re: installazione su Rocky Linux

Pubblicato: 5 maggio 2022 - 13:02
di bkeller
Ciao Denis,

Mi è sfuggito, lo correggo:

Versione WAPT

Codice: Seleziona tutto

[root@wapt ~]# dnf list *wapt*
Last metadata expiration check: 0:29:31 ago on Thu 05 May 2022 12:22:19 PM CEST.
Installed Packages
tis-waptserver.x86_64                   2.2.1.11899-2d82654e.el8           @wapt
tis-waptsetup.noarch                    2.2.1.11899-2d82654e               @wapt
Available Packages
tis-waptagent.x86_64                    2.2.1.11899-2d82654e.el8           wapt
tis-waptsetup-linux-mac.noarch          2.2.1.11899-2d82654e               wapt

versione del sistema operativo

Codice: Seleziona tutto

[root@wapt ~]# uname -a
Linux wapt.sieeen.fr 4.18.0-348.el8.0.2.x86_64 #1 SMP Sun Nov 14 00:51:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[root@wapt ~]# cat /etc/*release
Rocky Linux release 8.5 (Green Obsidian)
NAME="Rocky Linux"
VERSION="8.5 (Green Obsidian)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.5"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Rocky Linux 8.5 (Green Obsidian)"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:rocky:rocky:8:GA"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
ROCKY_SUPPORT_PRODUCT="Rocky Linux"
ROCKY_SUPPORT_PRODUCT_VERSION="8"
Rocky Linux release 8.5 (Green Obsidian)
Rocky Linux release 8.5 (Green Obsidian)
Rocky Linux release 8.5 (Green Obsidian)
Waptserver 2.2.1.11899 è l'ultima versione?


Sinceramente

Re: installazione su Rocky Linux

Pubblicato: 5 maggio 2022 - 13:33
di bkeller
modificando le righe 71 e 74 del file setuphelpers_linux.py come segue

Codice: Seleziona tutto

def type_redhat():
    return linux_distribution is not None and linux_distribution[0].lower() in ('rhel', 'centos', 'fedora', 'oracle','almalinux','rocky')

def type_rhel():
    return linux_distribution is not None and linux_distribution[0].lower() in ('rhel', 'centos', 'oracle','almalinux','rocky')
Lo script postconf.py funziona correttamente!

Re: installazione su Rocky Linux

Pubblicato: 5 maggio 2022 - 13:42
di bkeller
Tuttavia, alla fine dello script di configurazione nginx, si verifica un problema

Codice: Seleziona tutto

Traceback (most recent call last):
  File "/opt/wapt/waptserver/scripts/postconf.py", line 648, in main
    print(restart_nginx())
  File "/opt/wapt/waptserver/scripts/postconf.py", line 278, in restart_nginx
    return run('systemctl restart nginx')
  File "/opt/wapt/waptutils.py", line 2123, in run
    raise CalledProcessErrorOutput(proc.returncode, cmd, ''.join(output))
waptutils.CalledProcessErrorOutput: Command b'systemctl restart nginx' returned non-z                                                           ero exit status 1.
Output:Job for nginx.service failed because the control process exited with error cod                                                           e.
See "systemctl status nginx.service" and "journalctl -xe" for details.


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/wapt/waptserver/scripts/postconf.py", line 761, in <module>
    main()
  File "/opt/wapt/waptserver/scripts/postconf.py", line 654, in main
    'errno = ' + str(cpe.returncode) + ', output: ' + cpe.output.decode('utf-8')
AttributeError: 'str' object has no attribute 'decode'
e in effetti sto esaminando un problema di versione del modulo nginx

Codice: Seleziona tutto

[root@wapt ~]# nginx -t
nginx: [emerg] module "/usr/lib64/nginx/modules/ngx_http_auth_spnego_module.so" version 1018000 instead of 1021006 in /usr/share/nginx/modules/mod-http-auth-spnego.conf:1
nginx: configuration file /etc/nginx/nginx.conf test failed
[root@wapt ~]# dnf list *spnego*
Last metadata expiration check: 1:16:01 ago on Thu 05 May 2022 12:22:19 PM CEST.
Installed Packages
nginx-mod-http-auth-spnego.x86_64                                             1.18.0-tis1.1.0                                              @wapt

Re: installazione su Rocky Linux

Pubblicato: 5 maggio 2022 - 14:22
di dcardon
Ciao bkeller,

la tua versione è corretta; sono stato io a confondermi. Per ragioni storiche, la funzione `def type_redhat()` era definita in due punti diversi, e uno di questi è stato corretto. È in corso un refactoring, quindi dovrebbe sparire :-) . Grazie per avermelo segnalato; lo correggerò subito.

Per quanto riguarda nginx, si tratta di una questione a parte; dipende dal canale DNF selezionato (sono disponibili diverse versioni di nginx in parallelo). Sembra però che la versione 1.20 sia ora quella predefinita. Le estensioni di nginx non sono compatibili a livello di ABI tra le diverse versioni e il modulo Kerberos deve essere ricompilato per ogni versione disponibile. Verificherò se è possibile impostare la versione a 1.20 nel file `.spec` e caricare il modulo Kerberos corrispondente per evitare il problema. Per ora, puoi disabilitare la parte relativa a Kerberos (o effettuare il downgrade di nginx alla versione 1.18).

Cordiali saluti,

Denis

Re: installazione su Rocky Linux

Pubblicato: 5 maggio 2022 - 14:47
di dcardon
Ciao di nuovo,

giusto per informarti, per effettuare il downgrade della versione di nginx devi:

`dnf remove nginx*` # nota: questo disinstallerà anche il server wapt a causa delle dipendenze
`dnf module reset nginx -y` `
dnf module enable nginx:1.18 -y`
`dnf install nginx`
`dnf install tis-waptserver`

Dopodiché dovresti essere in grado di attivare il modulo Kerberos.

Aggiungerò alla documentazione la correzione della versione di nginx alla 1.18 finché non caricheremo il modulo compilato per la 1.20.

Cordiali saluti,

Denis

Re: [RISOLTO] installazione su Rocky Linux

Pubblicato: 5 maggio 2022 - 15:22
di bkeller
Grazie per tutte le informazioni

Volevo farti sapere che ho attivato il modulo nginx in questo modo

Codice: Seleziona tutto

dnf module enable nginx:mainline
e che questa è la versione 1.21.x che è installato

Codice: Seleziona tutto

[root@wapt ~]# nginx -v
nginx version: nginx/1.21.6
So che RH esegue il backport delle patch di sicurezza nelle versioni mantenute nel proprio repository, ma se potessimo utilizzare una versione aggiornata...

Offrirete il pacchetto? nginx-mod-http-auth-spnego Compatibile con nginx 1.21.x?

GRAZIE
Sinceramente

Re: [RISOLTO] installazione su Rocky Linux

Pubblicato: 5 maggio 2022 - 19:18
di dcardon
Ciao bkeller,

stiamo preparando il modulo per la versione 1.20. Tuttavia, ti sconsiglio vivamente di impostare nginx:mainline come modulo DNF, perché con il prossimo aggiornamento del sistema operativo potresti essere aggiornato alla versione 1.22 e quindi nginx non si riavvierà perché l'ABI del modulo spnego non sarà più considerata compatibile.

Ricorda che nginx è piuttosto particolare sotto questo aspetto; anche i moduli caricati dinamicamente devono essere compilati contemporaneamente al binario stesso con esattamente (e intendo esattamente) gli stessi flag di compilazione. E questo vale anche se non è effettivamente cambiato nulla nell'ABI...

Cordiali saluti,

Denis

Re: [RISOLTO] installazione su Rocky Linux

Pubblicato: 6 maggio 2022 - 09:01
di dcardon
Ciao bkeller,

Ho appena controllato la documentazione, ed è effettivamente menzionato in [1]

Codice: Seleziona tutto

dnf module enable nginx:1.18 -y
Forse c'era un motivo... E ripeto, usare nginx:mainline non è una buona pratica se si utilizzano moduli aggiuntivi (come nel caso del modulo spnego). E secondo il sito web di nginx[2], "Mainline è il ramo di sviluppo attivo", il che non è necessariamente la scelta migliore per un server di produzione :-)

Se vuoi/hai assolutamente bisogno di avere l'ultima versione di sviluppo di nginx, puoi ricompilare il modulo, il codice sorgente è disponibile qui [3] (ma questa opzione non è supportata).

Sinceramente,

Denis

[1] https://www.wapt.fr/fr/doc/wapt-server- ... based.html
[2] https://www.nginx.com/blog/nginx-1-18-1-19-released/
[3] https://github.com/stnoonan/spnego-http ... inx-module