1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AnsibleからWindows Server 2022を設定自動化するまでのセットアップ手順

Posted at

はじめに

  • AnsibleからWindows Serverの自動化を行う。その際のセットアップ手順を実際に実行してみたのでまとめておく。
  • なお、筆者の環境ではAnsibleサーバは既にセットアップ済みのためAnsibleのインストール手順は割愛する。
  • また、あらかじめターゲットサーバにWindows Server 2022をインストールしておく必要がある。

公式ドキュメント

環境

  • Ansibleサーバ
    • OS: AlmaLinux 9.4
    • Ansible: 2.15.12
    • Python: 3.9.18
    • pywinrm: 0.5.0
  • ターゲットサーバ
    • OS: Windows Server 2022

WinRMの設定

  • AnsibleからWindowsホストに接続するために必要なWinRMの設定を行う。
  • 設定には公式ドキュメントに記載されているスクリプトを実行するが、筆者が実行しようとした際、$urlのリンクが404 not foundになっていた。
  • 削除された理由は不明だが、設定に必要なConfigureRemotingForAnsible.ps1が最後に存在したstable-2.112ブランチのものを使用することにする。
PS > $url = "https://raw.githubusercontent.com/ansible/ansible/stable-2.12/examples/scripts/ConfigureRemotingForAnsible.ps1"
PS > $file = "$env:temp\ConfigureRemotingForAnsible.ps1"
PS > (New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
PS > powershell.exe -ExecutionPolicy ByPass -File $file

WinRMリスナーの確認

  • 上記のスクリプトにより、HTTP経由のポート5985、HTTPS経由のポート5986で要求をリッスンしていることを確認する。
PS > winrm enumerate winrm/config/Listener
Listener
    Address = * 
    Transport = HTTP 
    Port = 5985 
    Hostname 
    Enabled = true 
    URLPrefix = wsman 
    CertificateThumbprint 
    ListeningOn = 10.0.2.15, 127.0.0.1, 192.168.56.155, ::1, fe80::5efe:10.0.2.15%6, fe80::5efe:192.168.56.155%8, fe80:ffff:ffff:fffe%2, fe80::203d:7d97:c2ed:ec78%3, fe80::e8ea:d765:2c69:7756%7

Listener
    Address = * 
    Transport = HTTPS 
    Port = 5986 
    Hostname = SERVER2016 
    Enabled = true 
    URLPrefix = wsman 
    CertificateThumbprint = E6CDAA82EEAF2ECE8546E05DB7F3E01AA47D76CE 
    ListeningOn = 10.0.2.15, 127.0.0.1, 192.168.56.155, ::1, fe80::5efe:10.0.2.15%6, fe80::5efe:192.168.56.155%8, fe80:ffff:ffff:fffe%2, fe80::203d:7d97:c2ed:ec78%3, fe80::e8ea:d765:2c69:7756%7

pywinrmのインストール

  • AnsibleサーバーにWinRMを操作するためのpywinrmをインストールする。
$ pip install pywinrm
$ grep pywinrm
pywinrm             0.5.0

インベントリファイル作成

  • インベントリファイルにWindows Serverについて定義する。
[windows]
<Windows ServerのIPアドレス> ansible_user=<Windows Serverのユーザ名> ansible_password=<Windows Serverのパスワード>

[windows:vars]
ansible_port=5985
ansible_connection=winrm
ansible_winrm_transport=ntlm
ansible_winrm_server_cert_validation=ignore

実行

$ ansible windows -i hosts -m win_ping
SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Windowsモジュール

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?