Port de maintenance .personalport_rc

You know .personalport_rc ? moi non plus, jusqu’à il y a peu de temps.

C’est bien pratique pour :

  • mettre temporairement les ports des services VTOM en maintenance
  • avoir plusieurs installations VTOM sur un seul serveur

How ?!

Il est à placer dans le répertoire home du user d’admin vtom.

On fait correspondre les ports :

[ports]
vtserver:<le nom que je veux que j'aurais mis dans /etc/services>
vtsgbd:<le nom que je veux que j'aurais mis dans /etc/services>

etc etc pour tous les ports VTOM que je veux

Exemple : ports de maintenance

J’ai un serveur VTOM classique, les ports sont :

# ---------------------
# Demons tcp Visual TOM
# ---------------------
tomDBd 30001/tcp
bdaemon 30004/tcp
vtserver 30007/tcp
vtnotifier 30008/tcp
vtsgbd 30009/tcp
vthttpd 30080/tcp
vtmanager 30000/tcp

Je veux passer mon serveur en maintenance (pour que personne ne s’y connecte par exemple). Je rajoute cette ligne dans /etc/services :

vtserverm 30107/tcp # port de maintenance vtom

Je prépare 2 fichiers .personalport_rc.origin et .personalport_rc.maint (les noms n’ont pas d’importance) :

~vtom/.personalport_rc.origin et je fais correspondre le vtserver au service d'origine vtserver
[ports]
vtserver:vtserver
~vtom/.personalport_rc.maint et je fais correspondre le vtserver au service de maintenance vtserverm qui pointe sur un port différent
[ports]
vtserver:vtserverm

Le plus évident pour bien voir que ça fonctionne, c’est la commande vtping.

En temps normal, vtping :

vtom@cedfc0a2778f:~$ vtping
[serveur locaux (172.17.0.2)]
vtsgbd     vtsgbd:30009     actif
vtserver   vtserver:30007   actif
vtnotifier vtnotifier:30008 actif
dserver    tomDBd:30001     actif
vtmanager  vtmanager:30000  arrete
bdaemon    bdaemon:30004    arrete
vthttpd    vthttpd:30080    actif

[moteurs]
tengine    exploitation             arrete
...

Par exemple, je copie ~vtom/.personalport_rc.maint sur ~vtom/.personalport_rc, je fais vtping :

je vois que le vtserver a bien été pris en compte avec le port de maintenance
vtom@cedfc0a2778f:~$ vtping
[serveur locaux (172.17.0.2)]
vtsgbd     vtsgbd:30009     actif
vtserver   vtserver:30107   arrete
vtnotifier vtnotifier:30008 actif
dserver    tomDBd:30001     actif
vtmanager  vtmanager:30000  arrete
bdaemon    bdaemon:30004    arrete
vthttpd    vthttpd:30080    actif

En gros, lors de mes phases de maintenance :

  • j’arrête le serveur VTOM stop_servers
  • je copie le ~vtom/.personalport_rc.maint sur ~vtom/.personalport_rc
  • je démarre le serveur VTOM start_servers
  • je fais mes opérations de maintenance
  • j’arrête le serveur VTOM stop_servers
  • je copie le ~vtom/.personalport_rc.origin sur ~vtom/.personalport_rc
  • je démarre le serveur VTOM start_servers

Exemple : plusieurs installations VTOM sur un même serveur

J’ai une installation classique avec un user vtom. J’ai les services classiques dans /etc/services :

# ---------------------
# Demons tcp Visual TOM
# ---------------------
tomDBd 30001/tcp
bdaemon 30004/tcp
vtserver 30007/tcp
vtnotifier 30008/tcp
vtsgbd 30009/tcp
vthttpd 30080/tcp
vtmanager 30000/tcp

J’installe un autre serveur VTOM sur le même serveur avec le user vtomd par exemple :

# pour mieux me repérer je mets le même nom de service qu'à l'origine et je rajoute "d" à la fin, comme vtom"d" de mon user
# ---------------------
# Demons tcp Visual TOM
# ---------------------
tomDBdd 40001/tcp
bdaemond 40004/tcp
vtserverd 40007/tcp
vtnotifierd 40008/tcp
vtsgbdd 40009/tcp
vthttpdd 40080/tcp
vtmanagerd 40000/tcp

Et je personnalise le .personalport_rc dans le répertoire home de vtomd :

(vtomd)/usr/vtomd$ cat .personalport_rc
[ports]
tomDBd:tomDBdd
bdaemon:bdaemond
vtserver:vtserverd
vtmanager:vtmanagerd
vtnotifier:vtnotifierd
vtsgbd:vtsgbdd
vthttpd:vthttpdd

Merci à Serge D, pour l’inspiration et l’astuce que je ne connaissais pas.