web-dev-qa-db-ja.com

システムを変更せずにネットプラン構成を試す方法はありますか?

私はリモートサーバーで作業しており、ネットワーク構成に関して何かを台無しにするたびにレスキューモードに移行するという苦労の多いプロセスです。

次のようなものを実装する方法はありますか?

Netplan apply /customscript.yaml

ネットワーク構成のトラブルシューティングを行うときに使用できること。したがって、コールドリブートを実行すると、サーバーはその「デフォルト」を取得します。

4
BD Bear

最初に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ジョブを有効にします。

0
BD Bear

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