Open2

Ansibleナレッジ

koma77koma77

検証環境情報

AAC側

IP Hostname OS Role
10.1.1.77 rhel9-aac24 RHEL9.3 ControlPlane
10.1.1.78 rhel9-aae24 RHEL9.3 ExecutionNode#1
10.1.1.79 rhel9-aae24-2 RHEL9.3 ExecutionNode#2
10.1.1.80 rhel9-postgresql RHEL9.3 PostgreSQL

ターゲット側

IP Hostname OS Role
10.1.1.101 win22-addc WinSV2022 ADDC
10.1.1.102 win22-gen WinSV2022 ADClient(WindowsTarget)
10.1.1.103 ubuntu22-test Ubuntu22 LinuxTarget

AAC側構築

前回のスクラップにメモ
https://zenn.dev/komakoma77/scraps/1741ec81067635

ターゲット側構築

初期構築

10.1.1.101と10.1.1.102でAD作るだけ
AD接続用ユーザ→administrator@lab-nagifans.cc
ローカルユーザ→testuser

10.1.1.103はとりあえずtestuserでssh接続できる状態にしておく

Ansible用の設定を入れる

develブランチから消えてしまっているが、「ConfigureRemotingForAnsible.ps1」を使用する

>Invoke-WebRequest -Uri "https://raw.githubusercontent.com/ansible/ansible/stable-2.12/examples/scripts/ConfigureRemotingForAnsible.ps1" -OutFile ".\ConfigureRemotingForAnsible.ps1"

>powershell.exe -ExecutionPolicy ByPass -File ".\ConfigureRemotingForAnsible.ps1"

反映確認

>winrm enumerate winrm/config/Listener
Listener
    Address = * 
    Transport = HTTP 
    Port = 5985 
    Hostname 
    Enabled = true 
    URLPrefix = wsman 
    CertificateThumbprint 
    ListeningOn = 10.1.1.102, 127.0.0.1


>winrm enumerate winrm/config/Listener
Listener
    Address = * 
    Transport = HTTP 
    Port = 5985 
    Hostname 
    Enabled = true 
    URLPrefix = wsman 
    CertificateThumbprint 
    ListeningOn = 10.1.1.102, 127.0.0.1

Listener
    Address = * 
    Transport = HTTPS 
    Port = 5986 
    Hostname = WIN22-GEN
    Enabled = true 
    URLPrefix = wsman 
    CertificateThumbprint = XXXX
    ListeningOn = 10.1.1.102, 127.0.0.1
koma77koma77

AAP側準備

実行環境準備

デフォルトの実行環境ではWinRMとKerberos認証が使用できないので、コンテナイメージをカスタムで作成してあげるところから始まる
KerberosとNTLM両方書くが、どちらもベースイメージはubi9

WinRM+Kerberos

Dockerfile
FROM registry.access.redhat.com/ubi9/ubi:latest

USER root
RUN dnf install -y python3-devel krb5-devel gcc
RUN pip3 install pywinrm pykerberos

RUN <<EOF > /etc/krb5.conf
[libdefaults]
    default_realm = lab-nagifans.cc
[realms]
    HOLTIT.INTERNAL = {
        kdc = win22-addc.lab-nagifans.cc
        admin_server = win22-addc.lab-nagifans.cc
        default_domain = lab-nagifans.cc
    }

[domain_realm]
.lab-nagifans.cc = LAB-NAGIFANS.CC
lab-nagifans.cc = LAB-NAGIFANS.CC
EOF

RUN echo -n "10.1.1.101 win22-addc.lab-nagifans.cc" >> /etc/hosts
RUN echo -n "10.1.1.102 win22-gen.lab-nagifans.cc" >> /etc/hosts

イメージビルド

ExecutionNodeでビルドしておく(複数あれば全部でやる必要がある)

[awx@rhel9-aae24 winrm-k]$ podman build --tag winrm-kerberos .

ホスト情報と実行環境を登録

ホスト情報

WinRM+Kerberos

{
  "ansible_host": "win22-gen.lab-nagifans.cc",
  "ansible_connection": "winrm",
  "ansible_user": "administrator@lab-nagifans.cc",
  "ansible_password": "P@ssw0rd",
  "ansible_winrm_server_cert_validation": "ignore",
  "ansible_winrm_transport": "kerberos"
}

実行環境