Windows server へ Ansibleから設定する準備

Overview

Windows serverへの設定をAnsibleから

設定対象サーバでの事前作業

PowerShellにて

>Enable-PSRemoting
>winrm quickconfig
>winrm set winrm/config/service/auth '@{Basic="true"}'
>winrm set winrm/config/service '@{AllowUnencrypted="true"}'

認証方法によってこの辺りのコマンドは変わります。

今回はローカルでのキッティング作業想定で色々試していたためbasic認証です。

Ansible作業後

>Disable-PSRemoting
>winrm set winrm/config/service/auth '@{Basic="false"}'
>winrm set winrm/config/service '@{AllowUnencrypted="false"}'

WinRMが動いてるかの確認

何かしらのWindowsマシンから、

>winrs -r:http://\<IP address>:5985/wsman -u:\<user name> -p:<password> ipconfig

アドレスなどが見れればwinrmが動作しています。

インベントリファイルサンプル

認証周りはこちら参照

https://docs.ansible.com/ansible/latest/user_guide/windows_winrm.html#authentication-options

https://docs.ansible.com/ansible/latest/plugins/connection/winrm.html

下の例では何も設定が入っていない、ワークグループ設定を前提にしています。(なのでbasic)

あるいは、ローカルはNTLM, ADアカウントを使うならkerberos、あるいは証明書なんかが使える。

[windows]
<target-ip-address-1>
<target-ip-address-2>
<target-ip-address-3>...

[windows:vars]
ansible_user=<local-administrator>
ansible_password=<password>
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
ansible_winrm_transport=basic
ansible_winrm_port=5985
ansible_winrm_scheme=http

コマンド

単発コマンド

ansible all -i hosts -m win_command -a ipconfig

playbook実行

ansible-playbook -i hosts <hogehoge.yml>

その他

ansible直接関係ないけどPowerShellのリモートセッション試してみました。便利。

Enter-PSSession -ComputerName \<computer name or ip address> -Credential \<user>


Ansible初めて触ってる所ですがplaybookよくわからないです。

適当にLinux相手に試していったほうが身につくの早いかも……。

comments powered by Disqus