Sastre で Cisco SD-WAN の全体コンフィグをバックアップ / リストアする
以前に viptela モジュールを使い CLI から vManage を操作する というメモを書きました。 Sastre を使うと Cisco SD-WAN 環境のコンフィグをバックアップ / リストア / 削除などを CLI から簡単に行うことが出来ます。 今回は Sastre を使ってコンフィグ全体をバックアップ / リストアする手順をメモしておきます。 作業は Rocky Linux8 上で実施しました。
ざっと両者を比較した印象は以下の通りです。
対象 |
説明 |
viptela |
個別コンフィグのバックアップ / リストアに向いている |
Sastre |
全体コンフィグのバックアップ / リストアに向いている |
Sastre と Sastre Pro の違い
Sastre には通常版と Pro 版があり、機能が異なります。 下記は GitHub からの引用ですが、太字部分 が Pro 版専用機能です。
- Backup: Save vManage configuration items to a local backup.
- Restore: Restore configuration items from a local backup to vManage.
- Delete: Delete configuration items on vManage.
- Migrate: Migrate configuration items from a vManage release to another. Currently, only 18.4, 19.2 or 19.3 to 20.1 is supported. Minor revision numbers (e.g. 20.1.1) are not relevant for the template migration.
- Attach: Attach WAN Edges/vSmarts to templates. Allows further customization on top of the functionality available via "restore --attach".
- Detach: Detach WAN Edges/vSmarts from templates. Allows further customization on top of the functionality available via "delete --detach".
- Certificate (Sastre-Pro): Restore device certificate validity status from a backup or set to a desired value (i.e. valid, invalid or staging).
- List (Sastre-Pro): List configuration items or device certificate information from vManage or a local backup.
- Show-template (Sastre-Pro): Show details about device templates on vManage or from a local backup.
- Report (Sastre-Pro): Generate a customizable report file containing the output of multiple commands. Also provide option to generate a diff between reports.
- Show (Sastre-Pro): Run vManage real-time, state or statistics commands; collecting data from one or more devices.
Python3 のインストール
Sastre は Python で書かれている為、予め Python3 をインストールしておきます。
| dnf install -y python39
alternatives --set python /usr/bin/python3.9
|
Sastre のインストール
今回は venv を作成し、そこに sastre をインストールします。 PyPi では cisco-sdwan として公開されています。
| mkdir sdwan
cd sdwan
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools
python -m pip install cisco-sdwan
|
現時点では 1.16.8 がインストールされました。
| # sdwan --version
Sastre Version 1.16.8. Catalog: 73 configuration items, 31 operational items.
|
vManage ログイン情報の指定方法
Sastre を実行する際、ログイン情報を指定する方法は幾つかあります。
1. 対話的に指定する方法
認証情報が無い状態で sdwan
を実行すると必要な情報を対話的に求められます。
| (.venv) [root@localhost sdwan]# sdwan backup all
vManage address: ADDRESS
vManage user: USERNAME
vManage password: PASSWORD
(.venv) [root@localhost sdwan]#
|
2. 引数として指定する方法
sdwan
に引数として認証情報を指定することも可能です。
| sdwan -a ADDRESS -u 'USERNAME' -p 'PASSWORD' backup all
|
3. 環境変数として定義する方法
何度も実行するのであれば環境変数として定義してしまう方法もあります。 下記では ~/.bash_profile
に認証情報を定義する例です。
| cat << 'EOF' >> ~/.bash_profile
export VMANAGE_IP='ADDRESS'
export VMANAGE_USER='USERNAME'
export VMANAGE_PASSWORD='PASSWORD'
EOF
|
バックアップを取得する
コンフィグ全体をバックアップするには以下を実行します。 実行したディレクトリに data
ディレクトリが作成され、その配下にコンフィグがバックアップされます。
リストアする
コンフィグ全体をリストアするには以下を実行します。
| sdwan restore all --workdir data/backup_ADDRESS_20220107/
|
参考
全体のヘルプ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 | # sdwan --help
usage: sdwan [-h] [-a ] [-u ] [-p ] [--tenant ] [--port ]
[--timeout ] [--verbose] [--version]
...
Sastre - Automation Tools for Cisco SD-WAN Powered by Viptela
positional arguments:
task to be performed (backup, restore, delete, migrate, attach, detach)
task parameters, if any
optional arguments:
-h, --help show this help message and exit
-a , --address
vManage IP address, can also be defined via VMANAGE_IP environment variable. If
neither is provided user is prompted for the address.
-u , --user
username, can also be defined via VMANAGE_USER environment variable. If neither is
provided user is prompted for username.
-p , --password
password, can also be defined via VMANAGE_PASSWORD environment variable. If neither is
provided user is prompted for password.
--tenant tenant name, when using provider accounts in multi-tenant deployments.
--port vManage port number, can also be defined via VMANAGE_PORT environment variable
(default: 8443)
--timeout REST API timeout (default: 300)
--verbose increase output verbosity
--version show program's version number and exit
|
backup
のヘルプ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 | # sdwan backup --help
usage: sdwan backup [-h] [--workdir ] [--no-rollover] [--save-running]
[--regex | --not-regex ]
[ ...]
Sastre - Automation Tools for Cisco SD-WAN Powered by Viptela
Backup task:
positional arguments:
one or more tags for selecting items to be backed up. Multiple tags should be
separated by space. Available tags: all, policy_customapp, policy_definition,
policy_list, policy_profile, policy_security, policy_vedge, policy_voice,
policy_vsmart, template_device, template_feature. Special tag "all" selects all items,
including WAN edge certificates and device configurations.
optional arguments:
-h, --help show this help message and exit
--workdir
backup destination (default: backup_VMANAGE-ADDRESS_20211224)
--no-rollover by default, if workdir already exists (before a new backup is saved) the old workdir
is renamed using a rolling naming scheme. This option disables this automatic
rollover.
--save-running include the running config from each node to the backup. This is useful for reference
or documentation purposes. It is not needed by the restore task.
--regex regular expression matching item names to backup, within selected tags.
--not-regex regular expression matching item names NOT to backup, within selected tags.
|
restore
のヘルプ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 | # sdwan restore --help
usage: sdwan restore [-h] [--workdir ] [--regex | --not-regex ] [--dryrun] [--attach]
[--update]
Sastre - Automation Tools for Cisco SD-WAN Powered by Viptela
Restore task:
positional arguments:
tag for selecting items to be restored. Items that are dependencies of the specified tag are
automatically included. Available tags: all, policy_customapp, policy_definition, policy_list,
policy_profile, policy_security, policy_vedge, policy_voice, policy_vsmart, template_device,
template_feature. Special tag "all" selects all items.
optional arguments:
-h, --help show this help message and exit
--workdir
restore source (default: backup_ADDRESS_YYYYMMDD)
--regex regular expression matching item names to restore, within selected tags.
--not-regex regular expression matching item names NOT to restore, within selected tags.
--dryrun dry-run mode. Items to be restored are listed but not pushed to vManage.
--attach attach devices to templates and activate vSmart policy after restoring items
--update update vManage items that have the same name but different content as the corresponding item
in workdir. Without this option, such items are skipped from restore.
|