我创建了一个在 EC2 上的 Windows 实例,并进行了 Ansible 的设置,以便进行操作

由于有机会创建适用于Windows的Playbook,所以我在EC2上创建了可通过Ansible操作的Windows实例,以便进行简便的测试。以下是创建的步骤概要。

在AWS上创建一个Windows Server实例

我已经验证了”Microsoft Windows Server 2016 Base – ami-04f188a745c1a5ecb”。

创建实例时需要注意以下三点

    • 「セキュリティグループの設定」のインバウンド設定で、RDPとWinRM-HTTPSのポートを開けておく。

 

    • キーペアの登録は必ず行う。

 

    「インスタンスの詳細設定」の「高度な詳細」>「ユーザーデータ」に次の内容をコピペしておく。これにより、インスタンス起動時にpowershellでスクリプトが実行され、AnsibleがWindowsServerと通信するために必要な、WindowsServer側のセットアップが完了する。このスクリプトは、Ansibleの公式ドキュメント Setting up a Windows Host を参考にした。
<powershell>
$url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
$file = "$env:temp\ConfigureRemotingForAnsible.ps1"
(New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
powershell.exe -ExecutionPolicy ByPass -File $file
</powershell>

顺便提一下,上述的设置并不够安全(启用了基本认证等),在正式环境中最好不要使用这样的设置。

创建库存文件

一旦实例创建成功,可以选择“操作”>“获取Windows密码”来获取公共DNS、用户名和密码。

根据此信息创建库存文件。

[windows2016]
<パブリックDNS> ansible_user=<ユーザー名> ansible_password=<パスワード> ansible_connection=winrm ansible_winrm_server_cert_validation=ignore

确认连接

$ ansible windows2016 -i ./inventory -m win_ping                                
ec2-13-231-151-252.ap-northeast-1.compute.amazonaws.com | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

创建启动模板

由于可以确认在上述设置下可以进行通信,因此我们创建了一个使用相同设置的EC2启动模板,以便随时快速创建具有相同设置的Windows Server。

广告
将在 10 秒后关闭
bannerAds