5. Restauration du Serveur WAPT

En cas de panne totale, redémarrez une installation standard de WAPT Server sur votre serveur WAPT. Mais ne lancez pas le programme de post-configuration de WAPT. Suivez ensuite cette procédure pour restaurer vos données.

Par défaut, nous recommandons de conserver la même adresse IP et le même nom de domaine entièrement qualifié (FQDN) sur le nouveau serveur WAPT.

Pour vous assurer que le nouveau serveur WAPT dispose de suffisamment d’espace disque pour le référentiel, contrôlez le volume de votre ancien serveur WAPT après avoir effectué le processus de nettoyage. Cela vous aidera à déterminer l’espace disque nécessaire pour le nouveau serveur.

Pour Debian et dérivées :

du -sh /var/www/
du -sh /opt/wapt/

Pour Redhat et dérivées :

du -sh /opt/wapt/
du -sh /var/www/html/

Pour afficher la taille du répertoire « C:\wapt », procédez comme suit :

1- Ouvrez l’Explorateur de fichiers et naviguez jusqu’à « Ce PC » ou « Mon ordinateur ».

2- Localisez le dossier « C:Wapt » et faites un clic droit dessus.

3- Dans le menu contextuel, sélectionnez « Propriétés ».

4- Dans la fenêtre Propriétés, vous verrez plusieurs onglets. Assurez-vous d’être sur l’onglet « Général ».

5- Recherchez les lignes « Taille » et « Taille sur le disque », qui affichent la taille totale du dossier et de son contenu.

Alternativement, vous pouvez utiliser le script suivant pour récupérer la taille de manière programmatique.

Script Powershell:
# Directory paths
$waptPath = "C:\wapt\waptserver\repository\wapt"
$wadsPath = "C:\wapt\waptserver\repository\wads"
$wuaPath = "C:\wapt\waptserver\repository\waptwua"
$wapthostPath = "C:\wapt\waptserver\repository\wapt-host"

# Function to calculate the size of a directory
function Get-DirectorySize {
    param (
        [string]$path
    )
    $size = (Get-ChildItem $path -Recurse -File -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum
    return $size
}

# Calculate sizes for each directory
$waptSize = Get-DirectorySize -path $waptPath
$wadsSize = Get-DirectorySize -path $wadsPath
$wuaSize = Get-DirectorySize -path $wuaPath
$wapthostSize = Get-DirectorySize -path $wapthostPath

# Convert to GB and display
$waptGB = [math]::Round($waptSize / 1GB, 2)
$wadsGB = [math]::Round($wadsSize / 1GB, 2)
$wuaGB = [math]::Round($wuaSize / 1GB, 2)
$wapthostGB = [math]::Round($wapthostSize / 1GB, 2)

Write-Output "Size of $waptPath : $waptSize octets ($waptGB GB)"
Write-Output "Size of $wadsPath : $wadsSize octets ($wadsGB GB)"
Write-Output "Size of $wuaPath : $wuaSize octets ($wuaGB GB)"
Write-Output "Size of $wapthostPath : $wapthostSize octets ($wapthostGB GB)"

# Combined total
$totalSize = $waptSize + $wadsSize + $wuaSize + $wapthostSize
$totalGB = [math]::Round($totalSize / 1GB, 2)
Write-Output "Total size to migrate: $totalSize bytes ($totalGB GB)"

5.1. Linux

  • Suivez la procédure d’installation standard du serveur WAPT, mais n’exécutez PAS le script postconf.py.

Pour Debian et ses dérivés : guide d’installation

Pour Red Hat et ses dérivés : guide d’installation

Une fois l’installation terminée, veillez à renommer le nouveau serveur WAPT afin qu’il corresponde exactement au nom et à l’adresse IP de l’ancien serveur (srvwapt). Mettez à jour les fichiers de configuration suivants en conséquence :

/etc/hostname
/etc/hosts
/etc/network/interfaces
/etc/resolv.conf
  • Arrêter les services liés à WAPT sur le Serveur.

systemctl stop nginx && systemctl stop waptserver && systemctl stop waptserver-uwsgi && systemctl stop wapttasks
  • Restaurer les répertoires suivants.

C:\wapt\waptserver\repository\wapt      =>  /var/www/wapt/
C:\wapt\waptserver\repository\wapt-host =>  /var/www/wapt-host/
C:\wapt\waptserver\repository\waptwua   =>  /var/www/waptwua/
C:\wapt\waptserver\repository\wads      =>  /var/www/wads/
C:\wapt\conf                            =>  /opt/wapt/conf/
C:\wapt\waptserver\nginx\ssl            =>  /opt/wapt/waptserver/ssl/
C:\wapt\waptserver\repository\*.json    =>  /var/www/*.json

Modifier les données du fichier waptserver.ini

Accédez au fichier /opt/wapt/conf/waptserver.ini, puis modifiez les lignes suivantes :

clients_signing_key = c:\wapt\conf\ca-srvwaptname.mydomain.lan.pem => clients_signing_key = /opt/wapt/conf/ca-srvwaptname.mydomain.lan.pem
clients_signing_certificate = c:\wapt\conf\ca-srvwaptname.mydomain.lan.crt => clients_signing_certificate = /opt/wapt/conf/ca-srvwaptname.mydomain.lan.crt

Modifiez le chemin d’accès au certificat du serveur dans le fichier /etc/nginx/sites-available/wapt.conf

Modifiez la phrase suivante :

ssl_client_certificate "c:\wapt\conf\ca-srvwaptname.mydomain.lan.crt" => ssl_client_certificate "/opt/wapt/ca-srvwaptname.mydomain.lan.crt"
  • Recréer le lien symbolique

ln -s /var/www/wapt/waptagent/waptsetup.exe waptsetup.exe
ln -s /var/www/wapt/waptagent/waptsetup.exe waptsetup-tis.exe
ln -s /var/www/wapt/waptagent/waptdeploy.exe waptdeploy.exe
C:\wapt\waptserver\repository\wapt      =>  /var/www/html/wapt/
C:\wapt\waptserver\repository\wapt-host =>  /var/www/html/wapt-host/
C:\wapt\waptserver\repository\waptwua   =>  /var/www/html/waptwua/
C:\wapt\waptserver\repository\wads      =>  /var/www/html/wads/
C:\wapt\conf                            =>  /opt/wapt/conf/
C:\wapt\waptserver\nginx\ssl            =>  /opt/wapt/waptserver/ssl/
C:\wapt\waptserver\repository\*.json    =>  /var/www/html/*.json

Modifier les données du fichier waptserver.ini

Accédez au fichier /opt/wapt/conf/waptserver.ini, puis modifiez les lignes suivantes :

clients_signing_key = c:\wapt\conf\ca-srvwaptname.mydomain.lan.pem => clients_signing_key = /opt/wapt/conf/ca-srvwaptname.mydomain.lan.pem
clients_signing_certificate = c:\wapt\conf\ca-srvwaptname.mydomain.lan.crt => clients_signing_certificate = /opt/wapt/conf/ca-srvwaptname.mydomain.lan.crt

Modifiez le chemin d’accès au certificat du serveur dans le fichier /etc/nginx/sites-available/wapt.conf

Modifiez la phrase suivante :

ssl_client_certificate "c:\wapt\conf\ca-srvwaptname.mydomain.lan.crt" => ssl_client_certificate "/opt/wapt/ca-srvwaptname.mydomain.lan.crt"
  • Recréer le lien symbolique

ln -s /var/www/html/wapt/waptagent/waptsetup.exe waptsetup.exe
ln -s /var/www/html/wapt/waptagent/waptsetup.exe waptsetup-tis.exe
ln -s /var/www/html/wapt/waptagent/waptdeploy.exe waptdeploy.exe
/var/www/wapt/             =>  /var/www/html/wapt/
/var/www/wapt-host/        =>  /var/www/html/wapt-host/
/var/www/waptwua/          =>  /var/www/html/waptwua/
/var/www/wads/             =>  /var/www/html/wads/
/opt/wapt/conf/            =>  /opt/wapt/conf/
/opt/wapt/waptserver/ssl/  =>  /opt/wapt/waptserver/ssl/
/var/www/*.json            =>  /var/www/html/*.json

Adaptez les chemins des news pour les paramètres de votre nouveau serveur dans le waptserver.ini

vi /opt/wapt/conf/waptserver.ini

wapt_folder = /var/www/html/wapt

waptwua_folder= /var/www/html/waptwua

wapt-host_folder= /var/www/html/wapt-host

wads_folder= /var/www/html/wads

Adapter le chemin pour la configuration de nginx.

vi /etc/nginx/conf.d/wapt.conf

Root paths must point to "/var/www/html/"

Indication

Si vous utilisez Kerberos pour authentifier les hôtes et les utilisateurs, restaurez le fichier et ses droits.

sudo chown root:nginx /etc/nginx/http-krb5.keytab

sudo chmod 640 /etc/nginx/http-krb5.keytab

restorecon -v -R /etc/nginx/http-krb5.keytab
  • Recréer le lien symbolique

ln -s /var/www/html/wapt/waptagent/waptsetup.exe waptsetup.exe
ln -s /var/www/html/wapt/waptagent/waptsetup.exe waptsetup-tis.exe
ln -s /var/www/html/wapt/waptagent/waptdeploy.exe waptdeploy.exe
/var/www/html/wapt/        =>  /var/www/wapt/
/var/www/html/wapt-host/   =>  /var/www/wapt-host/
/var/www/html/waptwua/     =>  /var/www/waptwua/
/var/www/html/wads/        =>  /var/www/wads/
/opt/wapt/conf/            =>  /opt/wapt/conf/
/opt/wapt/waptserver/ssl/  =>  /opt/wapt/waptserver/ssl/
/var/www/html/*.json       =>  /var/www/*.json

Adaptez les chemins des news pour les paramètres de votre nouveau serveur dans le waptserver.ini

vi /opt/wapt/conf/waptserver.ini

wapt_folder = /var/www/wapt

waptwua_folder= /var/www/waptwua

wapt-host_folder= /var/www/wapt-host

wads_folder= /var/www/wads

Adapter le chemin pour la configuration de nginx.

vi /etc/nginx/sites-available/wapt.conf

Root paths must point to "/var/www/"

Indication

Si vous utilisez Kerberos pour authentifier les hôtes et les utilisateurs, restaurez le fichier et ses droits.

sudo chmod 640 /etc/nginx/http-krb5.keytab

sudo chown root:www-data /etc/nginx/http-krb5.keytab
  • Recréer le lien symbolique

ln -s /var/www/wapt/waptagent/waptsetup.exe waptsetup.exe
ln -s /var/www/wapt/waptagent/waptsetup.exe waptsetup-tis.exe
ln -s /var/www/wapt/waptagent/waptdeploy.exe waptdeploy.exe
/var/www/wapt/             =>  /var/www/wapt/
/var/www/wapt-host/        =>  /var/www/wapt-host/
/var/www/waptwua/          =>  /var/www/waptwua/
/var/www/wads/             =>  /var/www/wads/
/opt/wapt/conf/            =>  /opt/wapt/conf/
/opt/wapt/waptserver/ssl/  =>  /opt/wapt/waptserver/ssl/
/var/www/*.json            =>  /var/www/*.json

Indication

Si vous utilisez Kerberos pour authentifier les hôtes et les utilisateurs, restaurez le fichier et ses droits.

sudo chmod 640 /etc/nginx/http-krb5.keytab

sudo chown root:www-data /etc/nginx/http-krb5.keytab
  • Recréer le lien symbolique

ln -s /var/www/wapt/waptagent/waptsetup.exe waptsetup.exe
ln -s /var/www/wapt/waptagent/waptsetup.exe waptsetup-tis.exe
ln -s /var/www/wapt/waptagent/waptdeploy.exe waptdeploy.exe
/var/www/html/wapt/             =>  /var/www/html/wapt/
/var/www/html/wapt-host/        =>  /var/www/html/wapt-host/
/var/www/html/waptwua/          =>  /var/www/html/waptwua/
/var/www/html/wads/             =>  /var/www/html/wads/
/opt/wapt/conf/                 =>  /opt/wapt/conf/
/opt/wapt/waptserver/ssl/       =>  /opt/wapt/waptserver/ssl/
/var/www/html/*.json            =>  /var/www/html/*.json

Indication

Si vous utilisez Kerberos pour authentifier les hôtes et les utilisateurs, restaurez le fichier et ses droits.

sudo chown root:nginx /etc/nginx/http-krb5.keytab

sudo chmod 640 /etc/nginx/http-krb5.keytab

restorecon -v -R /etc/nginx/http-krb5.keytab
  • Recréer le lien symbolique

ln -s /var/www/html/wapt/waptagent/waptsetup.exe waptsetup.exe
ln -s /var/www/html/wapt/waptagent/waptsetup.exe waptsetup-tis.exe
ln -s /var/www/html/wapt/waptagent/waptdeploy.exe waptdeploy.exe
  • Lancer le fichier postconf.sh

/opt/wapt/waptserver/scripts/postconf.sh
  • Arrêter les services liés à WAPT sur le Serveur.

systemctl stop nginx && systemctl stop waptserver && systemctl stop waptserver-uwsgi && systemctl stop wapttasks
  • Verifier la base de donnée

su - postgres
psql -l
  • Restaurer la base de données (adaptez le nom de votre fichier). La première commande supprime la base de données WAPT (si elle existe). Assurez-vous que votre fichier dump est correct avant de le supprimer !

Avertissement

Vérifiez l’encodage avant de créer la base de données wapt, si le fichier dumpé est en_US, votre nouvelle base doit être en_US.

cd /tmp
sudo -u postgres psql -c "drop database wapt"
sudo -u postgres psql -c "create database wapt with owner=wapt encoding='utf-8'"
sudo -u postgres psql < /tmp/backup_wapt.sql
  • Appliquer les droits de propriété aux dossiers restaurés.

chown -R wapt:www-data /var/www/wapt/
chown -R wapt:www-data /var/www/wapt-host/
chown -R wapt:www-data /var/www/waptwua/
chown -R wapt:www-data /var/www/wads/
chown -R wapt /opt/wapt/conf/
chown -R wapt /opt/wapt/waptserver/ssl/
chown -R wapt:nginx /var/www/html/wapt/
chown -R wapt:nginx /var/www/html/wapt-host/
chown -R wapt:nginx /var/www/html/waptwua/
chown -R wapt:nginx /var/www/html/wads/
chown -R wapt /opt/wapt/conf/
chown -R wapt /opt/wapt/waptserver/ssl/
  • Analyser les dépôts de paquets.

wapt-scanpackages /var/www/wapt/
wapt-scanpackages /var/www/html/wapt/
  • Enfin lancer le fichier postconf.sh

/opt/wapt/waptserver/scripts/postconf.sh

Le processus de restauration est désormais terminé

5.2. Windows

  • Arrêter les services liés à WAPT sur le Serveur.

net stop WAPTServer
net stop WAPTService
net stop WAPTTftpServer
  • Restaurer les répertoires suivants.

C:\wapt\waptserver\repository\wapt
C:\wapt\waptserver\repository\wapt-host
C:\wapt\waptserver\repository\waptwua
C:\wapt\waptserver\repository\wads
C:\wapt\conf
C:\wapt\waptserver\nginx\ssl
  • Appliquer le droit total au dossier C:\wapt\waptserver\repository pour le groupe « Service Réseau ».

  • Restaurer la base de données (adaptez le nom de votre fichier). La première commande supprime la base de données WAPT (si elle existe). Assurez-vous que votre fichier dump est correct avant de le supprimer !

Avertissement

Vérifiez l’encodage avant de créer la base de données wapt, si le fichier dumpé est en_US, votre nouvelle base doit être en_US.

"C:\wapt\waptserver\pgsql-15\bin\psql.exe" -U postgres -c "drop database wapt;"
"C:\wapt\waptserver\pgsql-15\bin\psql.exe" -U postgres -c "create database wapt with owner=wapt encoding='utf-8';"
"C:\wapt\waptserver\pgsql-15\bin\psql.exe" -f c:\backup_wapt.sql -U postgres
  • Analyser les dépôts de paquets.

wapt-scanpackages "C:\wapt\waptserver\repository\wapt"
  • Redémarrer les services liés à WAPT sur le Serveur.

net start WAPTServer
net start WAPTService
net start WAPTTftpServer