Skip to content

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 をインストールしておきます。

1
2
dnf install -y python39
alternatives --set python /usr/bin/python3.9

Sastre のインストール

今回は venv を作成し、そこに sastre をインストールします。 PyPi では cisco-sdwan として公開されています。

1
2
3
4
5
6
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 がインストールされました。

1
2
# sdwan --version
Sastre Version 1.16.8. Catalog: 73 configuration items, 31 operational items.

vManage ログイン情報の指定方法

Sastre を実行する際、ログイン情報を指定する方法は幾つかあります。

1. 対話的に指定する方法

認証情報が無い状態で sdwan を実行すると必要な情報を対話的に求められます。

1
2
3
4
5
(.venv) [root@localhost sdwan]# sdwan backup all
vManage address: ADDRESS
vManage user: USERNAME
vManage password: PASSWORD
(.venv) [root@localhost sdwan]#

2. 引数として指定する方法

sdwan に引数として認証情報を指定することも可能です。

1
sdwan -a ADDRESS -u 'USERNAME' -p 'PASSWORD' backup all

3. 環境変数として定義する方法

何度も実行するのであれば環境変数として定義してしまう方法もあります。 下記では ~/.bash_profile に認証情報を定義する例です。

1
2
3
4
5
cat << 'EOF' >> ~/.bash_profile
export VMANAGE_IP='ADDRESS'
export VMANAGE_USER='USERNAME'
export VMANAGE_PASSWORD='PASSWORD'
EOF

バックアップを取得する

コンフィグ全体をバックアップするには以下を実行します。 実行したディレクトリに data ディレクトリが作成され、その配下にコンフィグがバックアップされます。

1
sdwan backup all

リストアする

コンフィグ全体をリストアするには以下を実行します。

1
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.