このページではAnsible でCentOS 8.2 から Windows 10 をリモートコントロールする環境の設定方法を紹介します。
Ansible 初体験の方でも確認できるよう、可能な限り簡単に書くつもりです。実際に自分も初めてこのときに動作確認しました。
コントロールノードはCentOS 8.2を使用しました。無料でダウンロード、インストールが可能です。管理される側はWindows 10 です。
コントロールノード(コントロールする側)として使用する CentOS 8.2 のインストールを行います。無料でダウンロード、及びインストールが可能です。
詳しくは以下の手順を参考にしてください。
参考:CentOS 8.2 及び Ansible インストール
Windows 10 インストール方法は省略します。インストール後で必要な設定をまとめます。
Windows 10にはコントロールノードからRemotePowershellでログインされるため構成が必要です。それ以外にも多くの設定変更が必要です。手動で設定してもよいのですが、一括設定が用意されています。ダウンロードした後で手動で実行します。
PS> Invoke-WebRequest -Uri https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1 -OutFile ConfigureRemotingForAnsible.ps1
PS> powershell -ExecutionPolicy RemoteSigned .\ConfigureRemotingForAnsible.ps1
このスクリプトで以下設定が実行されます。
- WinRM サービスの起動
- Enable-PSRemoting (ネットワーク経由でのPowershellアクセス機能) の有効化
- Firewall で WS-Management (WinRM HTTP , TCP 5985) の許可
- Firewall で WS-Management (WinRM HTTPS , TCP 5985) の許可
- 認証のオプションとしてCredSSP(Credential Security Support Provider)を有効化
- Basic認証の無効化
- 自己署名証明書 (Self-signed SSL certificate)の作成
結果はWindows イベントログに記録されます。
・VMware Player で Windows 10 を動作させる場合は仮想マシンのネットワーク接続設定を NAT から ブリッジへ変更します。
(*)Windows 10 側は Remote Powershell で接続されるため、OpenSSH サーバ機能は不要です。
CentOS への Ansible のコントロールノード(管理する側)をインストールします。次のページを参考にしてください。
簡単なインベントリファイルです。[ ~ ] セクションで囲われた部分がグループとして認識されます。そのセクションに記載したホスト名がそのグループに属するホストとして認識されます。
このファイルをコントロールノード側 (CentOS 8.2) 側の /ansible ディレクトリに保存します。
[windows]
192.168.11.100
[windows:vars]
ansible_user=username
#ansible_password=
ansible_connection=winrm
ansible_port=5986
ansible_winrm_server_cert_validation=ignore
コントロールノード側で実行するコマンドは以下の通りです。/ansible ディレクトリから実行します。Playbook なしで直接コマンドを実行しています。192.168.11.100 .側から PING 応答がある場合は以下のように pong が戻されます。
# ansible windows -i inventory -m win_ping --ask-pass
SSH password:
192.168.11.100 | SUCCESS => {
"changed": false,
"ping": "pong"
}