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

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

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

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

Q&A

解決済

1回答

279閲覧

Ansibeにてwusaコマンド実行で”rc”:1641のエラーになる

tom0219

総合スコア1

Ansible

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

0グッド

0クリップ

投稿2024/01/06 22:01

編集2024/01/08 22:23

実現したいこと

AnsibeでWindowsのセキュリティパッチ適応を下記ymlでwusaコマンドで実行したいと思っています。

発生している問題・分からないこと

パッチは適応されるのですが、 "rc": 1641,のエラーが返ってくる。このエラーを回避したいです

エラーメッセージ

error

1{ 2 "stderr_lines": [], 3 "changed": true, 4 "end": "2024-01-06 09:38:43.763944", 5 "_ansible_no_log": false, 6 "stdout": "", 7 "cmd": "wusa C:\\temp\\winpatch\\windows10.0-kb5033118-x64_36f66ea73d4ae0bf20ebac39d3b15696c197f220.msu /quiet /forcerestart /log:C:\\temp\\winpatch\\log", 8 "delta": "0:08:28.082822", 9 "stderr": "", 10 "rc": 1641, 11 "msg": "non-zero return code", 12 "stdout_lines": [], 13 "start": "2024-01-06 09:30:15.681122" 14}

該当のソースコード

yml

1 1 - name: Install hotfix job 2 2 hosts: AD_Servers_Target 3 3 serial: 1 4 4 gather_facts: no 5 5 vars_files: 6 6 - ./variables.yml 7 7 vars: 8 8 - ansible_become_password: xxxxx 9 9 become: yes 10 10 become_method: runas 11 11 become_user: xxxxx 12 12 tasks: 13 23 - name: Install hotfix 14 24 win_command: wusa C:\temp\winpatch\{{ hotfix_filename_LCU }} /quiet /forcerestart /log:C:\temp\winpatch\log 15 28 - name: Wait for SSH port down 16 29 become: no 17 30 wait_for: 18 31 host: "{{ inventory_hostname }}" 19 32 port: 22 20 33 state: stopped 21 34 delegate_to: 127.0.0.1 22 35 - name: Wait for SSH port up 23 36 become: no 24 37 wait_for: 25 38 host: "{{ inventory_hostname }}" 26 39 port: 22 27 40 state: started 28 41 delegate_to: 127.0.0.1

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

現在は試すべき調査がわからず、ネット上で関係しそうな記事を探しているのみです。
解決につながる記事がありませんでした。

補足

特になし

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

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

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

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

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

tom0219

2024/01/08 22:25

現在は試すべき調査がわからず、ネット上で関係ありそうな記事を探しているのみです
guest

回答1

0

ベストアンサー

https://learn.microsoft.com/en-us/windows/win32/msi/error-codes

wusaコマンドの戻り値は調べてもでてきませんでしたので関連性があるかわかりませんが、msiのインストールにおいては、戻り値1641は、インストール成功したものの再起動が必要な状態のようです。

win_commandモジュールの特性上、戻り値が0以外の場合、処理を終了してしまいますので、以下のようにfailed_whenを使って、戻り値1641の場合でも処理がエラー終了しないようにしてはいかがでしょうか。

- name: Install hotfix win_command: wusa C:\temp\winpatch\{{ hotfix_filename_LCU }} /quiet /forcerestart /log:C:\temp\winpatch\log register: res_win_command failed_when: res_win_command.rc != 1641

※冪等性はありませんw

投稿2024/01/09 02:27

hgjiro

総合スコア9

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

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

tom0219

2024/01/09 10:31

ご回答ありがとうございます。 その後、私も同じサイトで1641の意味を見つけ、ご教示いただいたコードと同じコードで実行しAnsibleで実行成功するようにしました。
tom0219

2024/01/09 10:38

再起動が必要な状態への対応は、wusaコマンドに/forcerestartオプションをつけて、必ず再起動するようにしています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問