Ansible エラー winrm or requests is not installed: No module named winrmが出た場合の参考になる情報です。
以下は引用です。
Windows ホストに対して Ansible Playbook を実行しようとすると、次のような結果が得られたとします。
fatal: [server1.example.com]: FAILED! => {"msg": "winrm or requests is not installed: No module named winrm"}
ansible --versionコマンドを使用して、Ansible で使用されている Python のバージョンを確認します。
ansible 2.4.2.0
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/home/your_username/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible playbook module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, mm dd yyyy, hh:mm:ss) [GCC 4.8.5 yyyymmdd (Red Hat 4.8.5-39)]
pip --version コマンドを使用して、pip で使用されている Python のバージョンを確認します。
~]$ pip --version
pip 21.3.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
Ansible と pip で使用されている Python のバージョンが同じ場合は、pip installコマンドを使用して pywimrm とリクエストをインストールします。
pip install pywinrm
pip install requests
Ansible と pip で使用されている Python のバージョンが異なる場合は、python --versionコマンドを使用して、/usr/bin/python で使用されている Python のバージョンを確認します。この例では、 python --version コマンドは Ansible (2.7.5) で使用されているのと同じバージョンの Python を使用しているため、winrm モジュールを使用して Python をセットアップできるはずです。
~]# python --version
Python 2.7.5
pywinrm およびxmltodict tar アーカイブをダウンロードし 、tar アーカイブを抽出します。たとえば、pywinrm-0.4.3.tar.gz を Ansible サーバーの /tmp ディレクトリにダウンロードするとします。tar アーカイブを抽出するには、tar extract コマンドを使用します。
tar -zxpf /tmp/pywinrm-0.4.3.tar.gz --directory /tmp
この例では、/tmp/pywinrm-0.4.3 という名前のディレクトリが作成されます。このディレクトリに移動し、setup.py を実行して pywimrm をインストールします。この例では、「python」コマンドを使用して、Python バージョン 2.7.5 に wimrm をインストールします。
cd /tmp/pywinrm-0.4.3
sudo python setup.py install
次に、XML に対して同じことを行って辞書を作成します。
tar -zxpf /tmp/xmltodict-0.13.0.tar.gz --directory /tmp
cd /tmp/xmltodict-0.13.0
sudo python setup.py install
「参考」
FreeKB - Ansible Resolve "winrm or requests is not installed: No module named winrm"