ITよろづや

ITの参考になる情報を備忘録代わりに残していきます

Ansible エラー {"changed": false, "msg": "HTTP Error 401: Unauthorized"}

AnsibleでPlaybook実行時にエラー {"changed": false, "msg": "HTTP Error 401: Unauthorized"}が出力された場合の情報になります。

 

Ansibleは、VMware環境で、vCenterに対して実行しています。

 

これについてはあんまり情報がでていませんが、こちらに似たようなエラーがあります。

 

get "msg: Unable to send msg: HTTP Error 401: Unauthorized" when running role in first time · Issue #2 · GoogleCloudPlatform/google-cloud-ops-agents-ansible · GitHub

 

以下は質問の抜粋です。

 

gceインスタンスでplaybookのパークとしてロールを実行しています。

{ role: stackdriver-ansible-role, stackdriver_api_key: '{{api_key}}', stackdriver_mongodb_enabled: yes }。
mongoはすでにインストールして実行しています。
最初にロールを実行すると、以下のような例外が発生します。

NOTIFIED: [stackdriver | restart collectd] ************************************
が変更されました。[yg-test] => {"changed": true, "name": "stackdriver-agent", "state": "started"} です。

NOTIFIED: [stackdriver | restart extractor] ***********************************
が変更されました。[yg-test] => {"changed": true, "name": "stackdriver-extractor", "state": "started"} です。

NOTIFIED: [stackdriver | stackdriver updated] *********************************
失敗しました。[yg-test -> 127.0.0.1] => {"changed": false, "failed": true}.
msg: Unable to send msg: HTTP Error 401: Unauthorized

FATAL: すべてのホストがすでに失敗しています -- 中止します。

2回目の実行では、実行すべきアップデートがないのか、エラーは表示されません。

www.DeepL.com/Translator(無料版)で翻訳しました。

 

 

以下は回答内容の抜粋です。

 

このエラーは、Stackdriverゲートウェイへの接続の失敗に関するものであり、エージェントがデータを送信することもできなくなります。これは、たとえば、無効なAPIキーが原因である可能性があります。ホストにSSHで接続してを実行することにより、直接テストできsudo /opt/stackdriver/stack-config infoます。出力の最初の数行は次のようになります。

Stackdriver Host Info Dump
Resource Id: [...]
API Key: [...]
Customer ID: [...]

 

英語の出力から私の環境の場合は、変数を格納している資格情報のパスワードが間違えていたことが原因でした。

 

Ansible構築・運用ガイドブック インフラ自動化のための現場のノウハウ (Compass Books)