質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

Q&A

解決済

2回答

1808閲覧

fortios_system_federated_upgradeについて

riho456

総合スコア22

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

0グッド

0クリップ

投稿2022/11/14 07:32

編集2022/11/16 00:30

前提

いつもお世話になっております。Ansible側がFortiOSに対応していない可能性もあるのですが、それらしいモジュールが存在する為、Fortigateのファブリックアップデートが出来ないか検証を行っています。以下の現象について何か情報をお持ちであれば教えて頂けると幸いです。
11/16 更新 CLI画面追加

実現したいこと

AnsibleのモジュールでFortigateのファブリックアップデートを使用してバージョンアップしたい

発生している問題・エラーメッセージ

30分以上立っても以下の状態からアップデートが始まらない
Playbook上の実行結果はsuceess

Playbook実行前
イメージ説明
Playbook実行後
イメージ説明

該当のソースコード

■yml
(Forticonfigから各パラメータを埋めました。configに記載されておらず値が不明なパラメータについてはコメントアウトしています。)

- hosts: fortigates collections: - fortinet.fortios connection: httpapi vars: vdom: "root" ansible_httpapi_use_ssl: yes ansible_httpapi_validate_certs: no ansible_httpapi_port: 443 tasks: - name: Coordinate federated upgrades within the Security Fabric. fortios_system_federated_upgrade: vdom: "{{ vdom }}" system_federated_upgrade: status: "disabled" upgrade_id: "10" # failure_device: FGT60FTK20009862 # failure_reason: "none" # next_path_index: "10" node_list: - coordinating_fortigate: "FGT60E4Q17034080" device_type: "fortigate" serial: "FGT60E4Q17034080" timing: "immediate" upgrade_path: "7-2-3"

■実行結果(抜粋)

changed: 1/1 [fortigate01] => { "changed": true, "diff": {}, "invocation": { "module_args": { "access_token": null, "enable_log": false, "member_path": null, "member_state": null, "system_federated_upgrade": { "failure_device": null, "failure_reason": null, "next_path_index": null, "node_list": [ { "coordinating_fortigate": null, "device_type": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "serial": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "setup_time": null, "time": null, "timing": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "upgrade_path": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER" } ], "status": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "upgrade_id": null }, "vdom": "root" } }, "meta": { "build": 1157, "http_method": "PUT", "http_status": 200, "name": "federated-upgrade", "old_revision": "8faa3163a73431dd00bc0475ea04aa0a", "path": "system", "revision": "f0aecbb5f8c1268d604be94f418f4800", "revision_changed": true, "serial": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "status": "success", "vdom": "root", "version": "v7.2.0" } }

試したこと

GUI操作、CLIコマンドでのアップデートは成功
イメージ説明

CLI画面
イメージ説明

補足情報(FW/ツールのバージョンなど)

現Ver FortigaOS7.2.0→7.2.3にアップデートしたい

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

GUI操作、CLIコマンドでのアップデートは成功

とのことですが、CLIコマンドは具体的にどんなコマンドだったのでしょうか。

https://github.com/fortinet-ansible-dev/ansible-galaxy-fortios-collection/blob/main/plugins/modules/fortios_system_federated_upgrade.py

def system_federated_upgrade(data, fos): vdom = data["vdom"] system_federated_upgrade_data = data["system_federated_upgrade"] filtered_data = underscore_to_hyphen( filter_system_federated_upgrade_data(system_federated_upgrade_data) ) return fos.set("system", "federated-upgrade", data=filtered_data, vdom=vdom)
def filter_system_federated_upgrade_data(json): option_list = [ "failure_device", "failure_reason", "next_path_index", "node_list", "status", "upgrade_id", ]

とあるので、 federated-upgrade コマンドの引数に failure_device, failure_reason, next_path_index, node_list, status, upgrade_id が候補に挙がっていそうです。このあたりにヒントがありそうな感じがします。

投稿2022/11/15 11:36

編集2022/11/15 12:39
xotaki

総合スコア49

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

riho456

2022/11/16 09:13

ありがとうございます。CLI画面追加しました。アドバイスありがとうございます、調べてみます。
xotaki

2022/11/16 14:10

https://docs.ansible.com/ansible/latest/collections/fortinet/fortios/fortios_system_federated_upgrade_module.html > This module is able to configure a FortiGate or FortiOS (FOS) device by allowing the user to set and modify system feature and federated_upgrade category. Examples include all parameters and values need to be adjusted to datasources before usage. Tested with FOS v6.0.0 もしかして、このモジュールは、 federated-upgrade を execute (実行) するのではなく、 configure (設定) する用途で使われるのではないでしょうか。 ずっと、なぜ status 等をパラメータに渡さないといけないんだろう、と疑問だったのですが、こう考えると自然です。 ちなみに、このモジュールに対応する CLI configuration command は下記と思われます。 https://docs.fortinet.com/document/fortigate/7.2.0/cli-reference/154620/config-system-federated-upgrade Fortinet.Fortios の Module List を眺めてみましたが、やりたいことが実現できそうなものはなさそうです。 https://docs.ansible.com/ansible/latest/collections/fortinet/fortios/index.html Netmiko 等、別の手段での実現をご検討ください。
riho456

2022/11/18 02:33

xotakiさん、お返事遅くなってすいません。このモジュールでのアップデートは諦めがつきました。お忙しい中、アドバイス等いただき感謝です。他方法を検討したいと思います、ありがとうございました。
guest

0

使ったことのないモジュールなので、回答はできないのですが、ドキュメント を見ると、 enable_log を指定できるようですので、 yes に指定して、何が起きているか、見てはいかがでしょうか。

それにしても、このモジュール、 failure_device とか status をパラメータとして渡すのですね。どのように使うのか、想像できません…。

あと、気になったところとしては、ソース中の versioned_schema が 7.2.2 までしかなさそうです。ただ、実行結果は成功しているようなので、的外れだとは思いますが……。

https://github.com/fortinet-ansible-dev/ansible-galaxy-fortios-collection/blob/main/plugins/modules/fortios_system_federated_upgrade.py

投稿2022/11/14 13:56

編集2022/11/14 14:05
xotaki

総合スコア49

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

riho456

2022/11/15 02:28

xotakiさん、コメントありがとうございます。 7.2.2も事前に実施したのですが、成功しませんでした。もしご存じであれば教えて頂きたいのですが、このenable_logというパラメータ初めて見ます。このlogの掃き出し場所等ご存じでしょうか?Playbook上、ansible.log上では特に気になるようなmsg等は確認出来なかったので。
riho456

2022/11/16 00:18

xotakiさん、返信ありがとうございます。出力されてました。 以下です。9:10にAnsibleでupdateかけてます。msg確認してみます。 2022-11-16 09:11:01.260522: checking system_version 2022-11-16 09:11:01.260944: send request: METHOD:[GET] URL:[/api/v2/cmdb/system/interface?vdom=root&action=schema] DATA:[], headers:[{'Accept': 'application/json'}] 2022-11-16 09:11:01.261042: login with username and password 2022-11-16 09:11:01.261175: send request: METHOD:[POST] URL:[/logincheck] DATA:[username=admin&secretkey=Password&ajax=1], headers:[{'Accept': 'application/json'}] 2022-11-16 09:11:01.358534: update_auth 2022-11-16 09:11:01.358996: update x-csrftoken: E84F73A6D7A6332AFC18B46097427656 2022-11-16 09:11:01.359059: response data: 1document.location="/prompt?viewOnly&redir=%2F"; ... 2022-11-16 09:11:01.359115: login with user: admin succeeds 2022-11-16 09:11:01.465684: update_auth 2022-11-16 09:11:01.465815: update x-csrftoken: E84F73A6D7A6332AFC18B46097427656 2022-11-16 09:11:01.465899: response data: { "http_method":"GET", "revision":"cb2685e27c7da87d9ecd172ce8ddfa1a", "results":{ "name":"interface", "category":"table", "help":"Configure interfaces.", "mkey":"name", "mkey... 2022-11-16 09:11:01.469245: system version: v7.2.0 2022-11-16 09:11:01.469299: ansible version: v6.0.0 2022-11-16 09:11:01.470976: send request: METHOD:[PUT] URL:[/api/v2/cmdb/system/federated-upgrade?vdom=root] DATA:[{"node-list": [{"device-type": "fortigate", "serial": "FGT60E4Q17034080", "timing": "immediate", "upgrade-path": "7-2-3"}], "status": "disabled", "upgrade-id": 10}], headers:[{'Accept': 'application/json'}] 2022-11-16 09:11:01.548195: update_auth 2022-11-16 09:11:01.548277: update x-csrftoken: E84F73A6D7A6332AFC18B46097427656 2022-11-16 09:11:01.548303: response data: { "http_method":"PUT", "revision":"32992616d14c9fb8c3b2e1312c796a4c", "revision_changed":true, "old_revision":"d4f6a1bd9d91c7f2e3a878bcae6d86cb", "status":"success", "http_status":200, "... 2022-11-16 09:11:01.606086: logout 2022-11-16 09:11:01.606174: send request: METHOD:[POST] URL:[/logout] DATA:[], headers:[{'Accept': 'application/json'}] 2022-11-16 09:11:01.676375: update_auth 2022-11-16 09:11:01.676505: update x-csrftoken: 0%260 2022-11-16 09:11:01.676543: response data: <script language="javascript"> top.location="/login"; </script> ...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問