Ansible:iosアップグレードルーター:イメージをコピーする前に「spacefree_kb」を確認してください

network_stack

私は複数のスイッチのiOSアップグレード用のプレイブックを書いていますが、フラッシュフリーチェックを除いてほとんどの部分が機能しています。基本的には、画像をコピーする前に、十分なフラッシュスペースがあるかどうかを確認したいと思います。

ファクトの収集モジュールを使用しようとしましたが、期待どおりに機能しません。

事実を収集することから私はこれを見ます:

"ansible_net_filesystems_info": {
        "flash:": {
            "spacefree_kb": 37492,
            "spacetotal_kb": 56574

これは私がやりたいチェックです:

fail:
    msg: 'This device does not have enough flash memory to proceed.'
 when: "ansible_net_filesystems_info | json_query('*.spacefree_kb')|int  <  new_ios_filesize|int"

いくつかの調査を行った結果、jinja2テンプレートによって返される値はすべて文字列になるため、チェックが失敗することがわかりました。

整数型を失うことなく整数変数をタスクに渡す

リンクで提案されている解決策は、ansible2.7を使用しても機能しないようです。

次に、「dir」の結果をレジスターに格納してregex_searchを使用しようとしましたが、構文が正しくないようです。

(これに似ています:Ansible regex_findall複数の文字列

"stdout_lines": [
        [
            "Directory of flash:/",
            "",
            "    2  -rwx         785   Jul 2 2019 15:39:05 +00:00  dhcp-snooping.db",
            "    3  -rwx        1944  Jul 28 2018 20:05:20 +00:00  vlan.dat",
            "    4  -rwx        3096   Jul 2 2019 01:03:26 +00:00  multiple-fs",
            "    5  -rwx        1915   Jul 2 2019 01:03:26 +00:00  private-config.text",
            "    7  -rwx       35800   Jul 2 2019 01:03:25 +00:00  config.text",
            "    8  drwx         512  Apr 25 2015 00:03:16 +00:00  c2960s-universalk9-mz.150-2.SE7",
            "  622  drwx         512  Apr 25 2015 00:03:17 +00:00  dc_profile_dir",
            "",
            "57931776 bytes total (38391808 bytes free)"
        ]
    ]

誰かがこの一見単純なタスクにいくつかの洞察を提供できますか?上記の例(または他の提案)の整数として「38391808」が必要です。私はansibleにかなり慣れていません。

前もって感謝します。

ウラジミールボトカ

json_queryワイルドカード式はリストを返します。以下のタスク

- set_fact:
    free_space: "{{ ansible_net_filesystems_info|
                    json_query('*.spacefree_kb') }}"
- debug:
    var: free_space

リストを与える

    "free_space": [
    37492
]

これは整数に変換することも、整数と比較することもできません。これが問題の理由です。

解決策は簡単です。リストの最初の要素を取るだけで、条件が機能し始めます

- fail:
    msg: 'This device does not have enough flash memory to proceed.'
  when: ansible_net_filesystems_info|
        json_query('*.spacefree_kb')|
        first|
        int <  new_ios_filesize|int

さらに、json_queryは必要ありません。属性spacefree_kbは直接参照できます

- fail:
    msg: 'This device does not have enough flash memory to proceed.'
  when: ansible_net_filesystems_info['flash:'].spacefree_kb|
        int <  new_ios_filesize|int

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ボタンクリックでファイルをアップロードする前に、日付、地域を確認してください

分類Dev

aspを使用せずに、新しいCookieを作成する前に、クレーム(電子メール)を確認してください。aspnetコアソーシャルログインを使用したコアIDストア

分類Dev

アップロードする前にオーディオファイルの長さを確認してください

分類Dev

JavaScriptでアップロードする前に画像の幅と高さを確認してください

分類Dev

処理する前にRabbitMQメッセージシーケンスを確認してください

分類Dev

エラーメッセージ:バンドルする前に、 `gem install pg -v '0.18.1'`が成功することを確認してください

分類Dev

次のレコードがデータベースに存在することを確認してください

分類Dev

ソースファイルからデータをコピーする前に、ターゲットファイルのエントリが重複していないか確認してください

分類Dev

AWS Lambda:「詳細についてはコンソールログを確認してください。メッセージ:クォータを超えました。」

分類Dev

新規送信する前に、レコードが存在するかどうかを確認してください

分類Dev

C#WPF-システムタスクバーのアプリケーションアイコンを右クリックする場合は、アプリケーションを閉じる前にユーザーに確認してください

分類Dev

アップグレードする前に、リリースで利用可能なすべてのアップデートをインストールしてください。20.04.1から20.10にアップグレードできません

分類Dev

スケジュールされたバックアップを介してファイルをコピーする前に、外付けドライブがマウントされていることを確認する方法

分類Dev

別のアプリがファイルに書き込んでいる間にファイルを安全にコピーする方法、両方のプログラムがクラッシュしないことを確認してください

分類Dev

最後の前にメッセージを確認してください

分類Dev

データベースに追加する前に、レコードが存在するかどうかを確認してください

分類Dev

ページにアクセスする前に、ユーザーの「クリアランスレベル」を確認してください

分類Dev

コピーする前にファイルがソースに存在することを確認してください

分類Dev

更新前にレコードが存在することを確認してください

分類Dev

iOSシミュレータのタイプとバージョンを確認してください

分類Dev

ファイルが正常にアップロードされたことをユーザーに通知する前に、GoogleドライブのAndroidAPIアップロードがサーバーに保存されていることを確認してください

分類Dev

分析名-idおよびバージョン-v1のアップロードされたファイルを処理できません。Pythonanalyticを開発する方法に関するドキュメントを確認してください

分類Dev

Ubuntu 18.04LTSから20.04LTSへのアップデートエラー:-アップグレードする前に、リリースで利用可能なすべてのアップデートをインストールしてください

分類Dev

Ubuntu 18.04LTSから20.04LTSへのアップデートエラー:-アップグレードする前に、リリースで利用可能なすべてのアップデートをインストールしてください

分類Dev

インストールする前に利用可能なpipパッケージのバージョンを確認してください

分類Dev

バインディングアダプターがセッターを提供する場合は、アダプターに正しく注釈が付けられていること、およびパラメータータイプが一致していることを確認してください。

分類Dev

バックエンドでグーグルアンドロイドサブスクリプションステータスを確認してください

分類Dev

コントローラレールのredirect_toの前にurlのステータスコードを確認してください

分類Dev

QMLエラーが発生する前に、ファイル/イメージが存在するかどうかを確認してください

Related 関連記事

  1. 1

    ボタンクリックでファイルをアップロードする前に、日付、地域を確認してください

  2. 2

    aspを使用せずに、新しいCookieを作成する前に、クレーム(電子メール)を確認してください。aspnetコアソーシャルログインを使用したコアIDストア

  3. 3

    アップロードする前にオーディオファイルの長さを確認してください

  4. 4

    JavaScriptでアップロードする前に画像の幅と高さを確認してください

  5. 5

    処理する前にRabbitMQメッセージシーケンスを確認してください

  6. 6

    エラーメッセージ:バンドルする前に、 `gem install pg -v '0.18.1'`が成功することを確認してください

  7. 7

    次のレコードがデータベースに存在することを確認してください

  8. 8

    ソースファイルからデータをコピーする前に、ターゲットファイルのエントリが重複していないか確認してください

  9. 9

    AWS Lambda:「詳細についてはコンソールログを確認してください。メッセージ:クォータを超えました。」

  10. 10

    新規送信する前に、レコードが存在するかどうかを確認してください

  11. 11

    C#WPF-システムタスクバーのアプリケーションアイコンを右クリックする場合は、アプリケーションを閉じる前にユーザーに確認してください

  12. 12

    アップグレードする前に、リリースで利用可能なすべてのアップデートをインストールしてください。20.04.1から20.10にアップグレードできません

  13. 13

    スケジュールされたバックアップを介してファイルをコピーする前に、外付けドライブがマウントされていることを確認する方法

  14. 14

    別のアプリがファイルに書き込んでいる間にファイルを安全にコピーする方法、両方のプログラムがクラッシュしないことを確認してください

  15. 15

    最後の前にメッセージを確認してください

  16. 16

    データベースに追加する前に、レコードが存在するかどうかを確認してください

  17. 17

    ページにアクセスする前に、ユーザーの「クリアランスレベル」を確認してください

  18. 18

    コピーする前にファイルがソースに存在することを確認してください

  19. 19

    更新前にレコードが存在することを確認してください

  20. 20

    iOSシミュレータのタイプとバージョンを確認してください

  21. 21

    ファイルが正常にアップロードされたことをユーザーに通知する前に、GoogleドライブのAndroidAPIアップロードがサーバーに保存されていることを確認してください

  22. 22

    分析名-idおよびバージョン-v1のアップロードされたファイルを処理できません。Pythonanalyticを開発する方法に関するドキュメントを確認してください

  23. 23

    Ubuntu 18.04LTSから20.04LTSへのアップデートエラー:-アップグレードする前に、リリースで利用可能なすべてのアップデートをインストールしてください

  24. 24

    Ubuntu 18.04LTSから20.04LTSへのアップデートエラー:-アップグレードする前に、リリースで利用可能なすべてのアップデートをインストールしてください

  25. 25

    インストールする前に利用可能なpipパッケージのバージョンを確認してください

  26. 26

    バインディングアダプターがセッターを提供する場合は、アダプターに正しく注釈が付けられていること、およびパラメータータイプが一致していることを確認してください。

  27. 27

    バックエンドでグーグルアンドロイドサブスクリプションステータスを確認してください

  28. 28

    コントローラレールのredirect_toの前にurlのステータスコードを確認してください

  29. 29

    QMLエラーが発生する前に、ファイル/イメージが存在するかどうかを確認してください

ホットタグ

アーカイブ