私はリモートサーバーで作業しており、ネットワーク構成に関して何かを台無しにするたびにレスキューモードに移行するという苦労の多いプロセスです。
次のようなものを実装する方法はありますか?
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
このスクリプトは、サーバーIPにpingできない場合に、02-netcfg.yamlに保存されている動作中の構成設定に加えた変更を元に戻します。サーバーのIPアドレスをaa.bb.cc.ddでマスクしました。したがって、ifで「else」を実行するには、pingするIPを交換する必要があります。
その後、サーバーの再起動のたびにこのスクリプトを実行するように設定し、ネットワーク構成で作業するときに3分ごとに実行されるCronジョブを有効にします。
Bionicでこれを行う新しい方法があります: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