■ デフォルトでは copy run start によるコンフィグ保存をしない
Ansible には、Cisco IOS ネットワーク機器に対して設定変更などができる ios_config モジュールがあります。
lines オプションなどを利用して実行したいコマンドを指定します。
- 使用例
- name: test ios_config: lines: - ntp server 10.0.0.123
デフォルトでは、コマンド実行後は copy runnning-config start-config コマンドによるコンフィグ保存をしません。( ios_config モジュールのドキュメント を確認すると分かるのですが、時々忘れそうになるので書いておきます。)
もしコンフィグ保存をする場合は、save_when オプションを利用します。
■ save_when オプション で選択できる値
save_when オプションでは、コンフィグを保存する条件を以下の4つから選択できます。
| 選択値 | 説明 | 利用可能バージョン |
|---|---|---|
| always | 実際に設定変更があってもなくても、常にコンフィグ保存します。タスクとしては changed になります。 |
2.4 |
| never | コンフィグ保存をしません(デフォルト) | 2.4 |
| modified | 当該タスクで実際に設定変更されたかどうかに関わらず、startup-configと running-config に差分がある場合、コンフィグ保存する。 |
2.4 |
| changed | 当該タスクで、実際に設定変更があった場合、コンフィグ保存します。 | 2.5 |
save_whenオプションの使用例
- name: test ios_config: lines: - ntp server 10.0.0.123 save_when: changed # このタスクで実際に設定変更があった場合コンフィグ保存
必要に応じて save_when オプションを指定しましょう。
補足
ios_system など、他の設定変更系モジュールも、コンフィグ保存しません。これらのモジュールには save_when オプションが無いので、もしコンフィグ保存をする場合は、別タスクで ios_config の save_when を指定することになると思います。