Je travaille sur des serveurs distants, et c’est un processus fastidieux d’aller en mode Rescue chaque fois que je rate quelque chose en matière de configuration réseau.
Y at-il un moyen de mettre en œuvre quelque chose comme:
Netplan apply /customscript.yaml
Que je peux utiliser pour résoudre les problèmes de configuration réseau. Donc, le serveur obtient ses "valeurs par défaut" si je redémarre à froid.
J'ai d'abord créé un script sh, je l'ai placé dans/etc/netplan/et je l'ai nommé backup.sh
#!/bin/sh
# -q quiet
# -c nb of pings to perform
ping -q -c5 aa.bb.cc.dd > /dev/null
if [ $? -eq 0 ]
then
: #do absolutly nothing! server can ping its external IP.
else
# restore, working config to netplan.
cp -f /etc/netplan/02-netcfg.yaml /etc/netplan/01-netcfg.yaml
# apply network config.
netplan apply
fi
Ce script rétablit les modifications que j'ai apportées, en une configuration de travail opérationnelle que j'ai stockée dans 02-netcfg.yaml Si je ne peux pas exécuter une commande ping sur l'adresse IP du serveur. J'ai masqué l'adresse IP de mon serveur avec aa.bb.cc.dd. Vous devez donc remplacer celle-ci par l'adresse IP que vous souhaitez utiliser afin d'exécuter le "else" dans le if.
Ensuite, je configure ce script pour qu'il s'exécute à chaque redémarrage du serveur, ainsi que pour activer un travail Cron qui s'exécute toutes les 3 minutes lorsque je travaille sur des configurations réseau.
Il existe une nouvelle façon de procéder dans Bionic: netplan try
.
Dans votre cas, netplan try --config-file foo.yaml
devrait faire ce que vous voulez.
La page de manuel n'est pas très utile car elle décrit principalement le format du fichier de configuration, mais --help
vous donne un bon aperçu de l'outil:
ubuntu@netplan:~$ netplan try --help
usage: /usr/sbin/netplan try [-h] [--debug] [--config-file CONFIG_FILE]
[--timeout TIMEOUT]
Try to apply a new netplan config to running system, with automatic rollback
optional arguments:
-h, --help show this help message and exit
--debug Enable debug messages
--config-file CONFIG_FILE
Apply the config file in argument in addition to
current configuration.
--timeout TIMEOUT Maximum number of seconds to wait for the user's
confirmation