介绍:
Ansible 是一个开源自动化工具,用于管理各种配置和应用程序部署。它既可以配置类 Unix 系统,也可以配置 Windows 系统。
主服务器要求:
- python3-pip
- pywinrm(python 包)
Windows 要求:
- Powershell 3.0 或更高版本
- 至少安装.NET 4.0
配置过程:
环境介绍:
角色 | 发行版 | IP地址 |
---|---|---|
Ansible control | RHEL 9.1 | 192.168.0.201 |
Windows Node | Windows10 Enterprise | 192.168.0.203 |
将受控Windows计算机以管理员身份打开 Windows 中的“PowerShell”配置WinRM服务 ,配置服务参考 Windows WinRM服务配置 一文。
注意:
- 生产环境中不推荐使用未加密通信,应配置HTTPS并安装适当的证书。
- 确保防火墙允许来自Ansible主控端的WinRM通信,通常需要开放TCP 5985(HTTP)或5986(HTTPS)端口。
在Ansible inventory文件中定义Windows主机,更新或创建 inventory
正确的配置如下:
[windows]
192.168.0.203 ansible_user="nnkin" ansible_password="Windows1@#" ansible_port=5985 ansible_connection="winrm" ansible_winrm_server_cert_validation=ignore
其中 "nnkin" 为 node计算机用户名,"Windows1@#" 为node计算机密码,ansible_connection设置为winrm表明使用WinRM进行连接,ansible_winrm_transport可以设置为basic(基本身份验证)或其他认证方式,如credssp。
验证:
编写一个Ansible Playbook来管理Windows主机,例如一个简单的ping测试任务:
play book剧本如下:
---
- name: test ping
hosts: windows
gather_facts: yes
tasks:
- name: test connection
win_ping:
执行Playbook剧本:
ansible-playbook win_ping.yml -i inventory
或者直接使用shell模块来验证:
ansible -i inventory windows -m win_ping