Я работаю над удаленными серверами, и это - болезненный процесс для входа в Спасательный Режим каждый раз, я завинчиваю что-то когда дело доходит до сети configuraitons.
Есть ли способ реализовать что-то как:
Netplan apply /customscript.yaml
То, что я могу использовать, когда я диагностирую конфигурации сети. Таким образом, сервер получает свои "значения по умолчанию", если я делаю "холодную" перезагрузку.
Сначала я создал sh сценарий, поместил его в/etc/netplan/и назвал его 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
, Этот сценарий возвращается изменения, которые я внес к рабочей установке конфигурации, которую я сохранил в 02-netcfg.yaml, Если я не могу проверить с помощью ping-запросов IP сервера. Я замаскировал свой IP-адрес сервера с aa.bb.cc.dd, Таким образом, необходимо заменить это IP, который Вы хотите "еще" проверить с помощью ping-запросов для выполнения в если.
Затем я установил этот сценарий, чтобы выполнить каждый раз перезапуск сервера, а также включить задание Крона для него, которое работает каждые 3 минуты, когда я работаю над конфигурациями сети.
Существует новый способ выполнить в этом Бионическом: netplan try
.
В Вашем случае, netplan try --config-file foo.yaml
должен сделать то, что Вы хотите.
страница справочника не очень полезна, поскольку она главным образом описывает формат файла конфигурации, но --help
дает Вам довольно хорошую схему инструмента:
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