Ansible の FortiGate 用モジュールについて、FortiGate のベース機能に関するものは大体検証できたのでその結果をまとめます。
前提
作業環境
■ Ansible 側
- CentOS 8.0
- Python 3.7.7
- Ansible 2.9.6
■ FortiGate 側
- 型番:FortiGate 60E
- バージョン:v6.0.6 または v6.0.9
その他
- モジュールは httpapi を使用して実行する
検証結果一覧
項番 | モジュール | 設定内容 | 結果 (※) | 未解決問題 | 関連 記事 |
1 | fortios_system_global | グローバル設定変更 | OK | リンク | |
2 | fortios_system_admin | 管理者アカウント追加/変更 | OK | リンク | |
3 | 管理者アカウント削除 | OK | リンク | ||
4 | 管理者アカウントパスワード | NG | パスワード変更不可 | リンク | |
5 | fortios_system_accprofile | 管理者プロファイル追加/変更 | OK | リンク | |
6 | 管理者プロファイル削除 | OK | リンク | ||
7 | fortios_system_ntp | NTP同期設定追加/変更 | OK | リンク | |
8 | NTP同期設定無効 | OK | リンク | ||
9 | NTPサーバモード設定変更 | NG | 受付インターフェース設定不可 | リンク | |
10 | fortios_system_dns | DNSサーバ設定追加/変更/削除 | OK | リンク | |
11 | fortios_system_dhcp_server | DHCPサーバ設定 | NG | ip_range 設定不可 | |
12 | fortios_system_snmp_sysinfo | エージェント有効/無効 | OK | リンク | |
13 | fortios_system_snmp_community | コミュニティ設定追加/変更 | △ | events が一つしか指定できない | リンク |
14 | コミュニティ設定削除 | OK | リンク | ||
15 | fortios_router_static | スタティックルート追加/変更 | OK | リンク | |
16 | スタティックルート削除 | OK | リンク | ||
17 | fortios_system_interface | 物理インターフェース変更 | △ | allowaccess を空にできない | |
18 | VLANインターフェース追加/変更 | △ | allowaccess を空にできない | ||
19 | VLANインターフェース削除 | OK | |||
20 | fortios_ststen_zone | ゾーン追加 | NG | 所属インターフェース設定不可 | |
21 | ゾーン削除 | OK | |||
22 | fortios_log_eventfilter | イベントログ有効/無効 | OK | リンク | |
23 | fortios_log_setting | ローカルトラフィックログ 有効/無効 | OK | リンク | |
24 | fortios_log_syslogd_setting | Syslogサーバ有効/変更 | OK | リンク | |
25 | Syslogサーバ無効 | OK | リンク | ||
26 | fortios_log_syslogd_filter | Syslogサーバロギング フィルタ変更 | OK | リンク | |
27 | fortios_log_memory_setting | メモリロギング有効/無効 | OK | リンク | |
28 | fortios_log_memory_filter | メモリロギングフィルタ変更 | OK | リンク | |
29 | fortios_firewall_address | アドレス追加/変更(ipmask) | OK | リンク | |
30 | アドレス追加/変更(iprange) | OK | リンク | ||
31 | アドレス追加/変更(fqdn) | OK | リンク | ||
32 | アドレス削除 | OK | リンク | ||
33 | fortios_firewall_addrgrp | アドレスグループ追加/変更 | OK | リンク | |
34 | アドレスグループ削除 | OK | リンク | ||
35 | fortios_firewall_service_custom | サービス追加/変更(tcp/udp/sctp) | OK | リンク | |
36 | サービス削除 | OK | リンク | ||
37 | fortios_firewall_service_group | サービスグループ追加/変更 | OK | リンク | |
38 | サービスグループ削除 | OK | リンク | ||
39 | fortios_firewall_policy | ポリシー追加/変更(nat無し) | OK | FortiOS v6.0.9でOK | リンク |
40 | ポリシー追加/変更(nat有り) | 未 | |||
41 | ポリシー削除 | OK | リンク | ||
42 | fortios_firewall_DoS_policy | DoSポリシー追加/変更 | OK | ||
43 | DoSポリシー削除 | OK | |||
44 | fortios_system_ha | HA スタンドアロン設定 | OK | ||
45 | HA a-p 設定 | OK | |||
46 | HA a-a 設定 | OK | |||
47 | fortios_system_link_monitor | リンクモニタ追加/変更 | OK | リンク | |
48 | リンクモニタ削除 | OK | リンク |
使用してみてわかった点
- FortiGate のコンフィグ項目(第1階層)ごとにモジュールが用意されている
- 現状すべてのコンフィグ項目がカバーされているわけではないがベース機能については大体カバーされている
- モジュールのパラメータと FortiGate のコンフィグ設定項目(第2階層以降)が大体は一対一対応している
- フルコンフィグで設定項目が多数あるコンフィグ項目についてはモジュールのパラメータも多数になっている
- モジュールのパラメータ名は FortiGate の設定項目とほぼ同じだがハイフン「-」はアンダースコア「_」になっている
- FortiGate のオブジェクトを新規作成する場合、Playbook で明示的に指定していない設定項目の値は FortiGate の仕様上のデフォルト値になる
- デフォルト値で良ければ最低限のパラメータを指定するだけで良い
- 大体のモジュールについてパラメータが多数あるが、Playbook でどこまで明示的に指定するかは状況によって判断する必要がありそう
- Ansible 実行結果表示について
- 設定変更操作については結果的に変更が無くても changed になった
- オブジェクト削除操作については削除対象が存在しない場合は ok になった
―――――――――――――