■ デフォルトでは 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
を指定することになると思います。