💭

AD環境のWindowsをAnsibleで操作する

2021/11/24に公開

TL;DR

Active Directryに参加しているWindow10をWSL2のUbuntu20.04にインストールしたAnsibleで操作する環境を構築しました。複雑な手順が必要ですが、操作できることを確認しました。

手順

Windows 10

  1. WSL2を有効にし、Ubuntu20.04をインストール

  2. リモート接続を受け付けるための設定(要管理者権限)

    Invoke-WebRequest -Uri https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1 -OutFile ConfigureRemotingForAnsible.ps1
    powershell -ExecutionPolicy RemoteSigned .\ConfigureRemotingForAnsible.ps1
    

Ubuntu20.04

  1. 最新のAnsibleをインストール

    sudo apt update
    sudo apt install software-properties-common
    sudo apt-add-repository --yes --update ppa:ansible/ansible
    sudo apt install ansible
    
  2. 以下のaptパッケージのインストール

    • python3-pip
    • gcc
    • python-dev
    • libkrb5-dev
    • krb5-user
  3. pip3で以下のPythonライブラリをインストール

    • pywinrm[kerberos]
    • kerberos
    • requests_kerberos
    • pykerberos
  4. 以下の内容で/etc/krb5.confを修正

     [libdefaults]
         default_realm = EXAMPLE.COM
         kdc_timesync = 1
         ccache_type = 4
         forwardable = true
         proxiable = true
    
     [realms]
         EXAMPLE.COM = {
             kdc = dc1.example.com
         }
    
     [domain_realm]
         .example.com = EXAMPLE.COM
    
  5. /etc/hosts に以下のエントリを追加

    192.168.xxx.xxx dc1.example.com
    
  6. inventory.ymlに以下の記述を記載

     windows:
     hosts:
         192.168.yyy.yyy:
         ansible_connection: winrm
         ansible_user: user_name
         ansible_winrm_server_cert_validation: ignore
         ansible_winrm_transport: kerberos
         ansible_port: 5986
         ansible_winrm_kerberos_delegation: yes
    
  7. ansible -i inventory.yml 192.168.yyy.yyy -m win_ping が成功することを確認

GitHubで編集を提案

Discussion