(小ネタ)AnsibleからWindowsへ簡単に接続する方法


概要

NTLM認証を利用すれば、手軽に接続できる。(ただし注意点あり)

環境

Ansible2.9.1
Windows2019

どんなときに使えそうか?

AnsibleからWindowsへ接続する方法はいくつかサポートされています。
Web上ではBasic認証を良く見かけます。
Basic認証は、Windows側の設定変更が必要です。
(手動ならBasic認証の有効化や、暗号化されていないhttp通信の有効化等。ConfigureRemotingForAnsible.ps1を利用する方法も。)

sample
winrm set winrm/config/service/auth @{Basic="true"}
winrm set winrm/config/service @{AllowUnencrypted="true"}

別の接続方法としてNTLM認証があります。
NTLM認証は、デフォルトで有効になっており、Windows側での設定変更が不要です。
Ansible側のインベントリは以下の通り。

inventory.yml
ansible_user=administrator
ansible_password=password
ansible_connection=winrm
ansible_winrm_transport=ntlm

例えば、初期セットアップ時に利用したり、手軽に接続を試してみたい場合などは、結構使えると思います。
ただし、ダブルホップ問題1があるため、PlaybookやPowerShellなどの書き方に注意が必要です。


  1. ターゲットのWindows(A)から、ファイルサーバのWindows(B)へ、UNCパスでアクセスする場合など。