LAB02 : part 05 : RHEL7 : procédure de retrait d'un serveur d'application

De Pegasus45

Voici la procédure à suivre pour retirer toutes les données et les configurations liées à un serveur d'application. Pour cela, il faut :

  • supprimer tous ces comptes BAL dans la base MariaDB,
  • supprimer toutes les BAL de Dovecot,
  • supprimer l'instance Postfix sur le serveur BACKEND01,
  • supprimer la configuration dans Postfix de RELAY01.


RELAY01 : suppression de la configuration de Postfix

Sur le serveur RELAY01, il faut modifier le fichier dispatch-smtp.conf en supprimant la ligne liée à l'IP du serveur d'application :

Configuration File vi /appli/dispatch-smtp/dispatch-smtp.conf
(supprimer l'IP du serveur d'applicaiton, par ex. 172.29.69.17)
172.29.69.17,172.29.69.60:25101

Ensuite, il faut éditer le fichier main.cf de Postfix-Relay pour retirer l'IP du serveur d'application dans la variable mynetworks :

Configuration File vi /etc/postfix-relay/main.cf
(avant)
mynetworks = 172.29.69.17, 172.30.40.15

(après)
myNetworks = 172.30.40.15

Et on relance Postfix :

Command
systemctl restart postfix


BACKEND01 : Modification de Rsyslog

Dans le fichier de configuration de Rsyslog, il faut supprimer les 3 lignes liées à l'instance Postfix qu'on souhaite retirer :

Configuration File vi /etc/rsyslog.d/postfix-tmc.conf
(supprimer les 3 lignes) :
# Si le log provient postfix-srv01 alors ecriture dans le fichier, puis arret de rsyslog
if $programname == 'postfix-srv01' then /var/log/postfix-tmc/maillog_postfix-srv01
& ~

Et on relance Rsyslog :

Command
systemctl restart rsyslog


BACKEND01 : Suppression de l'instance Postfix

Sur le serveur BACKEND01, il faut maintenant supprimer l'instance Postfix dédiée à ce serveur d'application. On commence par lister toutes les instances disponibles :

Command
postmulti -l
-                    -               y         /etc/postfix
postfix-dovecot      -               y         /etc/postfix-dovecot
postfix-h2m          -               y         /etc/postfix-h2m

On va supprimer l'instance postfix-h2m qui est celle utilisée par le serveur d'application.

Remarque : NE JAMAIS SUPPRIMER l'instance POSTFIX-DOVECOT

On vérifie qu'il n'y a pas de mails dans la file d'attente de cette instance :

Command
mailq -C /etc/postfix-h2m

S'il y a des mails bloqués, en attente de livraison, et qui ne sont plus utiles, on peut les supprimer de la file d'attente :

Command
postsuper -c /etc/postfix-h2m -d ALL

Lorsque la file d'attente est vide, on arrête l'instance :

Command
postmulti -i postfix-h2m -p stop

postfix-h2m/postfix-script: stopping the Postfix mail system

Et on désactive l'instance :

Command
postmulti -i postfix-h2m -e disable

Maintenant, on peut détruire l'instance :

Command
postmulti -i postfix-h2m -e destroy

rmdir: failed to remove 'defer': Directory not empty
postfix/postmulti-script: warning: /var/spool/postfix-h2m/defer: please verify contents and remove by hand
rmdir: failed to remove 'deferred': Directory not empty
postfix/postmulti-script: warning: /var/spool/postfix-h2m/deferred: please verify contents and remove by hand
rmdir: failed to remove 'pid': Directory not empty
postfix/postmulti-script: warning: /var/spool/postfix-h2m/pid: please verify contents and remove by hand
rmdir: failed to remove 'private': Directory not empty
postfix/postmulti-script: warning: /var/spool/postfix-h2m/private: please verify contents and remove by hand
rmdir: failed to remove 'public': Directory not empty
postfix/postmulti-script: warning: /var/spool/postfix-h2m/public: please verify contents and remove by hand
rmdir: failed to remove '/var/lib/postfix-h2m': Directory not empty
postfix/postmulti-script: warning: /var/lib/postfix-h2m: please verify contents and remove by hand
rmdir: failed to remove '/var/spool/postfix-h2m': Directory not empty
postfix/postmulti-script: warning: /var/spool/postfix-h2m: please verify contents and remove by hand
rmdir: failed to remove '/etc/postfix-h2m': Directory not empty
postfix/postmulti-script: warning: /etc/postfix-h2m: please verify contents and remove by hand

Comme l'arrêt de l'instance ne supprime pas les fichiers (pid, fichiers personnalisés, etc.), la destruction de l'instance génère des warning car les répertoires ne sont pas vides.

On doit donc supprimer les répertoires manuellement :

Command
rm -fr /var/lib/postfix-h2m
rm -fr /var/spool/postfix-h2m
rm -fr /etc/postfix-h2m

Pour terminer avec Postfix, il reste à supprimer le script Python utilisé par l'instance :

Command
rm /appli/dispatch-smtp/traitement-h2m.py


BACKEND01 : Modification de la base MariaDB

Dans la base, il y a 2 manipulations à faire : supprimer tous les comptes liés au serveur d'application et supprimer son domaine de messagerie interne. Dans cet exemple, le domaine de messagerie interne qui a été utilisé pour le serveur de message est domaine-h2m.lan.

Sur le serveur BACKEND01, on se connecte à la base de données :

Command
mysql -u mailuser -p -h 127.0.0.1

On entre dans la base de données mailserver :

Command
MariaDB [(none)]> use mailserver;

Il faut d'abord récupérer l'ID du domaine de messagerie :

Command
MariaDB [mailserver]> SELECT * FROM virtual_domains WHERE name='domaine-h2m.lan';
+----+------------------+
| id | name             |
+----+------------------+
|  1 | domaine-h2m.lan  |
+----+------------------+

Cet ID sera nécessaire un peu plus tard pour supprimer les comptes de messagerie.

On peut maintenant cet ID :

Command
MariaDB [mailserver]> DELETE FROM virtual_domains WHERE id='1';

On peut refaire la commande SELECT pour vérifier la suppression.

Ensuite, on peut vérifier qu'il y a bien des comptes rattachés à cet ID :

Command
MariaDB [mailserver]> SELECT * FROM virtual_users WHERE domain_id='1';
+-----+-----------+-------------------------------+----------------------------------+
| id  | domain_id | email                         | password                         |
+-----+-----------+-------------------------------+----------------------------------+
|   2 |         1 | test2@domaine-h2m.lan         | de04913c8275b06be7786dc2e8b9ec1d |
|   3 |         1 | dsfsd@domaine-h2m.lan         | de04913c8275b06be7786dc2e8b9ec1d |
|   4 |         1 | bambin-000026@domaine-h2m.lan | de04913c8275b06be7786dc2e8b9ec1d |
|   5 |         1 | bambin-000027@domaine-h2m.lan | de04913c8275b06be7786dc2e8b9ec1d |
|   6 |         1 | bambin-000028@domaine-h2m.lan | de04913c8275b06be7786dc2e8b9ec1d |
|   7 |         1 | bambin-000029@domaine-h2m.lan | de04913c8275b06be7786dc2e8b9ec1d |
|   8 |         1 | bambin-000030@domaine-h2m.lan | de04913c8275b06be7786dc2e8b9ec1d |
[...]

On peut supprimer tous les comptes liés à cet ID dans la table virtual_users :

Command
MariaDB [mailserver]> DELETE FROM virtual_users WHERE domain_id='1';

Query OK, 302 rows affected (0.01 sec)

On peut voir que la commande a supprimé 302 enregistrements.

On quitte la console MariaDB :

Command
MariaDB [mailserver]> exit


BACKEND01 : Suppression des BAL et du Logical Volume

Il faut maintenant supprimer toutes les BAL de ce domaine de messagerie. Etant donné que les BAL d'un domaine de messagerie donné sont dans un LV (Logical Volume) dédié, il suffit de supprimer le LV concerné.

On commence par repérer le nom du LV en se basant sur le nom du répertoire de stockage des BAL de ce domaine de messagerie (domaine-h2m.lan). Tous les domaines de messagerie sont stockés dans /srv/vmail :

Command
df -h /srv/vmail/domaine-h2m.lan

Filesystem                           Size  Used Avail Use% Mounted on
/dev/mapper/vg_mail-lv_domaine--h2m  5.0G   41M  5.0G   1% /srv/vmail/domaine-h2m.lan

On voit que le chemin du LV qui a monté le FS (File System) dans /srv/vmail/domaine-h2m.lan est /dev/mapper/vg_mail-lv_domaine—h2m. Ensuite, il faut récupérer le nom de ce LV et le nom du VG (Volume Group) de rattachement avec la commande suivante :

Command
lvdisplay /dev/mapper/vg_mail-lv_domaine--h2m

  --- Logical volume ---
  LV Path                /dev/vg_mail/lv_domaine-h2m
  LV Name                lv_domaine-h2m
  VG Name                vg_mail
  LV UUID                05mZk0-BRfr-qIQP-lxM8-bfk9-LZET-1Hn6iC
  LV Write Access        read/write
  LV Creation host, time backend01.perso.lan, 2016-02-23 13:56:46 +0100
  LV Status              available
  # open                 1
  LV Size                5.00 GiB
  Current LE             1280
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3

Le nom du LV est donc lv_domaine-h2m et le nom du VG est vg_mail . On a toutes les infos pour supprimer cet LV. Normalement, si la procédure de création de service TMC a bien été suivi correctement, tous les LV utilisés pour la messagerie sont rattachés au VG vg_mail.

On commence par vérifier qu'aucun process n'accède, en ce moment, à un quelconque fichier présent dans /srv/vmail/domaine-h2m.lan et qui pourrait bloquer le démontage du File System :

Command
lsof | grep "/srv/vmail/domaine-h2m.lan"


Si la réponse de la commande est vide, on peut démonter le FS :

Command
umount /srv/vmail/domaine-h2m.lan

Un coup de la commande df valide que le démontage a bien été effectué correctement.

Pour supprimer le LV, il faut indiquer le chemin complet qui est du type nom_VG/nom_LV, ce qui donne pour cet exemple : vg_mail/lv_domaine-h2m :

Command
lvremove vg_mail/lv_domaine-h2m

Do you really want to remove active logical volume lv_domaine-h2m? [y/n]: y
  Logical volume "lv_domaine-h2m" successfully removed

Pour vérifier que le LV n'est plus dans le VG vg_mail, on utilise la commande lvs qui liste tous les LV dans tous les VG :

Command
lvs

  LV          VG                 Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_spool  VG_SPOOL    -wi-ao---- 300.00g                                                    
  lv_audit  VG_SYS01    -wi-ao---- 512.00m                                                    
  lv_log    VG_SYS01    -wi-ao----   2.00g                                                    
  lv_root   VG_SYS01    -wi-ao----   6.00g                                                    
  lv_swap   VG_SYS01    -wi-ao----   5.86g                                                    
  lv_var    VG_SYS01    -wi-ao----   3.00g

Et pour terminer, il faut penser à supprimer la ligne de montage, présent dans le fichier fstab :

Configuration File vi /etc/fstab
(supprimer la ligne suivante)
/dev/vg_mail/lv_domaine-h2m   /srv/vmail/domaine-h2m.lan    xfs     defaults        0 0



Listes des articles associés: