使用Ansible进行远程管理Windows服务器的第一步(Ansible适用于Windows)
这是关于 Ansible for Windows 的第二部分。
上一次我们总结了关于 Ansible 的安装。这次,作为服务器管理的第一步,我们将使 Windows Server 2016 服务器可以通过 Ansible 进行连接。
前一篇文章:在Windows10上从头开始安装Ansible
下一篇文章:添加一个网站到IIS的playbook示例
被管理的服务器端设置
-
- Windows Server 2016 Std.
-
- PowerShell 5.1
-
- ActiveDirectory ドメインに属する
- ホスト名をw16srvとします
执行设置脚本
有一种名为ConfigureRemotingForAnsible.ps1的PowerShell脚本可执行各种设置。请下载并保存该脚本。
在w16test上以管理员模式启动PowerShell,并运行ConfigureRemotingForAnsible.ps1。
此脚本的详细信息将在另一篇文章中总结。
PS> .\ConfigureRemotingForAnsible.ps1 -Verbose -CertValidityDays 3650
詳細: Verifying WinRM service.
詳細: Enabling PS Remoting.
詳細: Enabled PS Remoting.
詳細: Setting LocalAccountTOkenFilterPolicy to 1
Self-signed SSL certificate generated; thumbprint: *********************************
詳細: Enabling SSL listener.
wxf : http://schemas.xmlsoap.org/ws/2004/09/transfer
a : http://schemas.xmlsoap.org/ws/2004/08/addressing
w : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
lang : ja-JP
Address : http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
ReferenceParameters : ReferenceParameters
詳細: Enabling basic auth support.
詳細: Adding firewall rule to allow WinRM HTTPS.
OK
詳細: HTTP: Enabled | HTTPS: Enabled
詳細: PS Remoting has been successfully configured for Ansible.
这次是关于使用基本认证进行连接的配置。虽然官方文档中也有说明,但在实际运行时,应该采用更安全的配置进行操作。
确认联系
我们将通过以下步骤确认能够使用Ansible从先前设置的Ansible主机连接到w16srv。
创建连接用户
本次将在服务器w16svr上作为本地用户准备Ansible连接用户。
账户名:AnsibleAdmin
本地组:Administrators
准备库存文件。
在中国这里,我们将在“D:\Projects\SRE\Ansible\MyData”目录下创建一个名为“hosts”的文件,该文件是一个文本文件,用于定义管理的节点(例如服务器和数据库)。
在Docker启动时,“D:\Projects\SRE\Ansible\MyData”目录会被挂载到Docker内部的“/mydata”路径下。
[w16svr]
192.168.0.2
[w16svr:vars]
ansible_user=AnsibleAdmin
ansible_password=****************
ansible_port=5986
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
执行ping命令
使用上次总结中提到的步骤,从管理员模式的PowerShell命令提示符连接到Ansible主机。
PS> docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
899225e6b593 my-ansible "/bin/bash" About a minute ago Up About a minute sad_shannon
PS> docker exec -it 899225e6b593 /bin/bash
[root@899225e6b593 /]#
我們將使用 Ansible 進行對 w16svr 的連通檢查。之前創建的庫存檔案「hosts」在 Docker 內可通過「/mydata/hosts」進行訪問。
[root@899225e6b593 /]# ansible w16svr -i /mydata/hosts -m win_ping
192.168.0.2 | SUCCESS => {
"changed": false,
"ping": "pong"
}
只要收到「成功」的返回信息,通信确认就可以了。