Fabric : redémarrer un host distant

Boris HUISGEN
|
Le redémarrage d’un host avec Fabric est parfois compliqué à gérer.
Voici la méthode que j’utilise pour redémarrer convenablement un hôte en lieu et place de la méthode reboot fournie par l’API :
1from fabric.state import *
2
3def mytask:
4 sudo("shutdown -r +1")
5 time.sleep(120)
6 connections[env.host_string].get_transport().close()
7 run("uptime")
Cette méthode est fonctionnelle avec une instance EC2 sous systemd. Le délai d’attente peut être adaptée au besoin, mais la déconnexion à l’hôte est forcée pour que Fabric puisse ré-établir le tunnel SSH.