今更ながらIOS-XE(IOS)でコンフィグの世代管理やロールバックを試してみたので結果をまとめました。
今回はCSR1000V(Cisco IOS XE Software, Version 17.03.02)で動作確認を行なっています。
目次
概要
archive設定を行うことでコンフィグの世代管理ができるようになります。
最大で14世代までarchive configurationを保存しておくことが可能で、configure replaceコマンドにより任意のarchive configurationの状態にロールバックすることもできるようです。
設定方法
■ 変更内容
testRT01#conf t
Enter configuration commands, one per line. End with CNTL/Z.
testRT01(config)#archive
testRT01(config-archive)#path flash:
testRT01(config-archive)#maximum 14
testRT01(config-archive)#write-memory
testRT01(config-archive)#end
(補足)
- path <保存先>: archive config の保存先。ここでは flash: を指定しました。保存先として外部のサーバを指定することも可能です。
- maximum <世代数>: 保存するバックアップコピーの世代数の上限(1-14)
- write-memory: write memory を実行したタイミングでarchive configを作成する設定。
【参考】archive設定で実行可能なコマンド
testRT01(config-archive)#?
Archive configuration commands:
default Set a command to its defaults
exit Exit from archive configuration mode
log Logging commands
maximum maximum number of backup copies
no Negate a command or set its defaults
path path for backups
rollback Rollback parameters
time-period Period of time in minutes to automatically archive the running-config
write-memory Enable automatic backup generation during write memory
今回は設定しませんでしたが、time-period 1440
で24時間おきにsnapshotを取得する等もできるようです。
【参考】 pathの指定先
testRT01(config-archive)#path ?
bootflash: Write archive on bootflash: file system
flash: Write archive on flash: file system
ftp: Write archive on ftp: file system
http: Write archive on http: file system
https: Write archive on https: file system
pram: Write archive on pram: file system
rcp: Write archive on rcp: file system
scp: Write archive on scp: file system
sftp: Write archive on sftp: file system
tftp: Write archive on tftp: file system
【参考】archive config の世代数設定
testRT01(config-archive)#maximum ?
<1-14> maximum number of backup copies
archive config の確認方法
archive設定を行うことでコンフィグの世代管理ができるようになります。
show archive を実行することで保存されているバックアップコピーの情報を確認できます。
archive設定 有効化前
testRT01#show archive
Archive feature not enabled
archive設定 有効化後
testRT01#show archive
The maximum archive configurations allowed is 14.
There are currently 3 archive configurations saved.
The next archive file will be named bootflash:-<timestamp>-3
Archive # Name
1 bootflash:-Feb--6-16-05-40.925-0
2 bootflash:-Feb--6-16-10-33.239-1
3 bootflash:-Feb--6-16-27-27.278-2 <- Most Recent
4
5
6
7
8
9
10
11
12
13
14
ロールバックの実行
configure replace <ロールバック先>
コマンドによりロールバックを行うことが可能です。
ここでは設定変更後に戻し対応が必要になったというシナリオで、手順を順に追って確認します。
設定変更前
testRT01#show archive
The maximum archive configurations allowed is 14.
There are currently 1 archive configurations saved.
The next archive file will be named bootflash:-<timestamp>-1
Archive # Name
1 bootflash:-Feb--6-16-05-40.925-0 <- Most Recent
2
3
4
(省略)
今回は以下のコマンドを投入してループバックインターフェイスを作成して保存してみます。
testRT01#conf t
Enter configuration commands, one per line. End with CNTL/Z.
testRT01(config)#interface loopback 1
testRT01(config-if)#ip address 10.1.1.1 255.255.255.255
testRT01(config-if)#end
testRT01#show ip interface brief
Interface IP-Address OK? Method Status Protocol
GigabitEthernet1 192.168.3.101 YES NVRAM up up
GigabitEthernet2 192.168.4.1 YES manual up up
GigabitEthernet3 unassigned YES unset administratively down down
GigabitEthernet4 unassigned YES NVRAM administratively down down
Loopback1 10.1.1.1 YES manual up up
testRT01#write memory
設定変更後にarchive configを確認します。
testRT01#show archive
The maximum archive configurations allowed is 14.
There are currently 2 archive configurations saved.
The next archive file will be named bootflash:-<timestamp>-2
Archive # Name
1 bootflash:-Feb--6-16-05-40.925-0
2 bootflash:-Feb--6-16-10-33.239-1 <- Most Recent
3
4
(省略)
ちなみにArchive#1, #2の差分は以下のコマンドで確認可能です。
testRT01#show archive config differences bootflash:-Feb--6-16-05-40.925-0 bootflash:-Feb--6-16-10-33.239-1
!Contextual Config Diffs:
+interface Loopback1
+ip address 10.1.1.1 255.255.255.255
ここでArchive#1のコンフィグにロールバックしてみます。設定が完了するまで1分程度かかりました。
testRT01#configure replace bootflash:-Feb--6-16-05-40.925-0
This will apply all necessary additions and deletions
to replace the current running configuration with the
contents of the specified configuration file, which is
assumed to be a complete configuration, not a partial
configuration. Enter Y if you are sure you want to proceed. ? [no]: y
The rollback configlet from the last pass is listed below:
(省略)
実行後Archive#1のコンフィグがrunning-configに反映されます。
testRT01#show ip interface brief
Interface IP-Address OK? Method Status Protocol
GigabitEthernet1 192.168.3.101 YES NVRAM up up
GigabitEthernet2 192.168.4.1 YES manual up up
GigabitEthernet3 unassigned YES unset administratively down down
GigabitEthernet4 unassigned YES NVRAM administratively down down
たしかに先ほど追加したLoopback1が削除されていました。
write memoryを行っていないので、show archive config difference
からロールバックの内容を確認することもできます。
testRT01#show archive config differences nvram:startup-config system:running-config
!Contextual Config Diffs:
-interface Loopback1
-ip address 10.1.1.1 255.255.255.255
最後に設定保存を行います。
testRT01#write memory
Building configuration...
[OK]
testRT01#show archive
The maximum archive configurations allowed is 14.
There are currently 3 archive configurations saved.
The next archive file will be named bootflash:-<timestamp>-3
Archive # Name
1 bootflash:-Feb--6-16-05-40.925-0
2 bootflash:-Feb--6-16-10-33.239-1
3 bootflash:-Feb--6-16-27-27.278-2 <- Most Recent
4
(省略)
無事に保存されました。
Archive#1, #3 を比較し、たしかにロールバック前の状態と一致していることが確認できました。
testRT01#show archive config differences bootflash:-Feb--6-16-05-40.925-0 bootflash:-Feb--6-16-27-27.278-2
!Contextual Config Diffs:
!No changes were found
所感
archive設定を行うことでコンフィグの世代管理やロールバックを実行できることが確認できました。
これまで本番作業では設定戻し用のコンフィグを準備していたのですが、手動で作成すると手間がかかったり作成ミスも発生しやすいので、ロールバックで対応できると嬉しいですね。
今後はGitとの連携などにも手を出してみたいです。