Ansible "winrm or requests is not installed: cannot import name certs"メッセージ

Ansible  "winrm or requests is not installed: cannot import name certs"メッセージが出た場合に参考になる情報です。

 

以下は引用です。

 

Ansible の win_ping モジュールを使用して、Linux 制御マシンから Windows ホストに ping を実行しようとしています。

 

問題:
「hosts」ファイルと同じディレクトリから次のコマンドを実行すると、「"hosts" file and run into "winrm or requests is not installed: cannot import name certs」エラーが発生します。

 

$> ansible win -i ./hosts -m win_ping
dev-app1 | FAILED! => {
    "msg": "winrm or requests is not installed: cannot import name certs"
}

 

[win]
dev-app1 ansible_host=10.123.456.78

[win:vars]
ansible_user=admin
ansible_password=adminspassword
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore

 

Linux マシンにインストールされているすべてのバージョン:
* ansible 2.7.2
* Python バージョン = 2.7.5 (デフォルト、2018 年 9 月 12 日、05:31:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
* Winrm: python2-winrm-0.3.0-1.el7.noarch
* リクエスト:
python-requests-2.6.0-1.el7_1.noarch
python2-requests_ntlm-1.1.0-1.el7.noarch

エラーの原因は何かわかりますか? バージョンの非互換性またはその他の不足しているモジュールが原因でしょうか?

 

 

私の環境では別エラーですが、以下のコマンドで改善しました。

 

いくつかのチェックを行った結果、ansible が Python バージョンを 3.11 に更新したようです。

そこで、次のように実行しました。

 

$ head -1 `which ansible`
#!/usr/bin/python3.11

$ sudo yum install python3.11-pip python3.11-winrm

 

そして完了しました。今は再び動作します:)

 

> yum install python3.11-pip python3.11-winrm

 

「参考」

python - Ansible msg: "winrm or requests is not installed: cannot import name certs" - Stack Overflow

 

【2023改良型】 イヤホン 有線イヤホン 3.5mmジャック ノイズキャンセリング マイク付き 通話可能 ハイレゾ クリア通話 音量調節 ステレオイヤフォン ヘッドホン 全ての3.5mmインターフェース機器に対応できます