web-dev-qa-db-fra.com

Est-il possible d'essayer une configuration netplan sans modifier le système?

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.

4
BD Bear

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.

0
BD Bear

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
3
dja