AnsibleでFortigateのConfigをバックアップしてみた。
Ansibleのfortios用のモジュールには、バックアップモジュールはありません。
実際には、fortios_configというモジュールで取得ができたようなのですが、pyFGが必要なようです。
自分の環境ではpyFGが入らないので、うーんと思っていました。(細かい原因は追ってません…)
先日書いた汎用のuriを、こちらのブログを参考にして少しいじったら、バックアップを取得することができました。
参考にしたブログではAPI_KEYを利用されていましたが、現時点ではセッションのCookieでも取得は可能でした。(将来が若干不安ではありますが…)
Ansible関連の実践記事一覧はこちら。
作成したPlaybook
--- - hosts: fortigate gather_facts: false vars: api_type: "monitor" api_path: "system" api_name: "config" tasks: - name: Login uri: url: https://{{ ansible_host }}/logincheck validate_certs: no method : "POST" force_basic_auth: yes body_format: "form-urlencoded" url_username: "{{ ansible_user }}" url_password: "{{ ansible_password }}" body: - [ username, "{{ ansible_user }}" ] - [ secretkey, "{{ ansible_password }}" ] - [ ajax, "1" ] register: http_response - name: GET Config Backup uri: url: https://{{ ansible_host }}/api/v2/{{ api_type }}/{{ api_path }}/{{ api_name }}/backup?scope=global validate_certs: no method: "GET" headers: Cookie: "{{ http_response.set_cookie }}" return_content: yes register: get_obj - name: Backup File copy: content: "{{ get_obj.content }}" dest: ./backup.txt # バックアップ出力先指定
取得できたバックアップ
2バイト文字もばっちり。
うーん、この参考にしたブログの方はAPIリファレンスお持ちなのかな…
やっぱりフル活用するにはAPIリファレンスが読みたいなあ…