作業環境
■ Ansible 側
- CentOS 8.0
- Python 3.7.7
- Ansible 2.9.6
■ FortiGate 側
- 型番:FortiGate 60E
- バージョン:v6.0.6 build0272 (GA)
fortios_system_dns モジュール
fortios_system_dns モジュールを使用することで FortiGate のコンフィグにおける config system dns の各項目を設定することができます。
- DNSサーバに関する設定の変更
のために利用できます。
主なパラメータ
パラメータ | 必須 | 選択肢/ デフォルト | 説明 |
host | 対象機器のIPアドレス | ||
username | SSH用のユーザ | ||
password | ・”” ← | SSH用のパスワード | |
vdom | ・root ← | 対象機器のバーチャルドメイン | |
https | ・no ・yes ← | HTTPSを使用するかどうか | |
ssl_verify | ・no ・yes ← | 対象機器の証明書を検証するかどうか | |
system_dns | config system dns の設定項目を 子要素として指定する | ||
– primary | プライマリDNSサーバのIPアドレス | ||
– secondary | セカンダリDNSサーバのIPアドレス | ||
– timeout | 1 – 10 | タイムアウト時間(秒) | |
– retry | 0 – 5 | リトライ回数 | |
– dns_cache_limit | DNSキャッシュレコードの最大数 | ||
– dns_cache_ttl | DNSキャッシュを保持する時間(秒) | ||
– cache_notfound_responses | ・enable ・disable | レコードがキャッシュにない場合の DNSサーバーからの応答 | |
– source_ip | DNSサーバと通信する際のソースIP |
備考
- Ansible 2.8 から追加されたモジュール
- Legacy モードでの実行のためには fortiosapi が必要
- httpapi での実行が可能
使用例
httpapi を使用してモジュールを実行する例です。
■ インベントリ:hosts
[forti]
10.1.10.100
[forti:vars]
ansible_user=admin
ansible_password=password
ansible_network_os=fortios
ansible_connection=httpapi
ansible_httpapi_use_ssl=yes
ansible_httpapi_validate_certs=no
10.1.10.100 は操作対象の FortiGate のIPアドレスです。
httpapi で使用する変数をグループ変数として定義しています。
DNS 設定
以下の要件で DNS 設定を行うこととします。
- プライマリ DNS サーバ:8.8.8.8
- セカンダリ DNSサーバ:なし
- その他:デフォルト
■ Playbook:playbook.yml
- hosts: all
gather_facts: no
tasks:
- name: "fortios_system_dns test"
fortios_system_dns:
vdom: "root"
system_dns:
primary: "8.8.8.8"
secondary: "0.0.0.0"
timeout: "5"
retry: "2"
dns_cache_limit: "5000"
dns_cache_ttl: "1800"
cache_notfound_responses: "disable"
source_ip: "0.0.0.0"
■ Playbook 実行
# ansible-playbook -i hosts playbook.yml
PLAY [all] **********************************************************************************************************
TASK [fortios_system_dns test] **************************************************************************************
changed: [10.1.10.100]
PLAY RECAP **********************************************************************************************************
10.1.10.100 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
■ 実行前の FortiGate のコンフィグ
FGT # show system dns
config system dns
end
■ 実行後の FortiGate のコンフィグ
FGT # show system dns
config system dns
set primary 8.8.8.8
end
FGT #
FGT # show full-configuration system dns
config system dns
set primary 8.8.8.8
set secondary 0.0.0.0
set ip6-primary ::
set ip6-secondary ::
set timeout 5
set retry 2
set dns-cache-limit 5000
set dns-cache-ttl 1800
set cache-notfound-responses disable
set source-ip 0.0.0.0
end
プライマリ DNS サーバが設定されました。
上の例では、Playbook にて fortios_system_dns モジュールのパラメータとして primary 以外も指定しましたが、FortiGate のコンフィグがすべてデフォルトの前提であれば Playbook で fortios_system_dns モジュールの primary パラメータを指定するだけでも結果としては FortiGate のコンフィグは同じになります。
※ Playbook で指定したパラメータのみ値が変更されるため
―――――――――――――