ansible怎么管理windows呢?左思右想了下,
管理机 |
ubuntu 18.04 |
10.1.1.50 |
实验机 | windows 10 |
10.1.1.100 |
ubuntu安装ansible
apt-get install software-properties-common -yapt-add-repository --yes --update ppa:ansible/ansible -yapt-get install ansible -y
windows设置
要求:
Ansible支持的Windows版本通常与Microsoft当前和扩展支持下的版本相匹配。支持的桌面操作系统包括Windows 7,8.1和10,受支持的服务器操作系统包括Windows Server 2008,2008 R2,2012,2012 R2和2016。Ansible需要PowerShell 3.0或更高版本,并且至少要在Windows主机上安装.NET 4.0。应创建并激活**WinRM listener **。更多细节可以在下面找到。
检查powershell版本
注:使用ansible 要求版本不得低于4.0
若低于4.0 请执行一下操作
2. 下载并安装Microsoft .NET Framework 4.5 下载地址: https://download.microsoft.com/download/B/A/4/BA4A7E71-2906-4B2D-A0E1-80CF16844F5F/dotNetFx45_Full_setup.exe 3. 下载并安装powershell4.0(Windows Management Framework 4.0 ) 下载地址: https://download.microsoft.com/download/3/D/6/3D61D262-8549-4769-A660-230B67E15B25/Windows6.1-KB2819745-x64-MultiPkg.msu 注意:先安装.NET Framework 4.5 ,然后安装powershell4.0,安装完成之后重启windows服务器
win 配置winrm 启动powershell远程
1. 查看powershell执行策略get-executionpolicy 2. 更改powershell执行策略为remotesignedset-executionpolicy remotesigned 3. 配置winrm service并启动服务winrm quickconfig 4. 查看winrm service启动监听状态winrm enumerate winrm/config/listener 5. 修改winrm配置,启用远程连接认证winrm set winrm/config/service/auth '@{Basic="true"}'winrm set winrm/config/service '@{AllowUnencrypted="true"}'
win 防火墙配置
图片上会看到有个 port=5985 配置入站规则
一直下一步,然后起个名称,确定关闭。
ubuntu 操作
添加主机
编辑/etc/ansible/hosts,添加客户端主机信息(ansible服务端的配置) vim /etc/ansible/hosts [windows] 10.1.1.100 ansible_ssh_user="ajie" ansible_ssh_pass="123" ansible_ssh_port=5985 ansible_connection="winrm" ansible_winrm_server_cert_validation=ignore
判断是否ping通windows
ansible windows -m win_ping [WARNING]: Unhandled error in Python interpreter discovery for host 10.1.1.100: winrm or requests is not installed: No module named requests 10.1.1.100 | FAILED! => { "msg": "winrm or requests is not installed: No module named requests" }
ok 看看报错内容 它说winrm 这个模块没安装,找不到 办它
apt install python-pip -y pip install pywinrm
在ping一波
创建目录
ansible windows -m win_file -a 'path=C:\\Users\\ajie\\Desktop\\ansible state=directory'
拷贝文件
ansible windows -m win_copy -a "src=/etc/passwd dest=C:\\passwd.txt"
删除文件
ansible windows -m win_file -a "dest=C:\\passwd.txt state=absent"
删除目录
ansible windows -m win_file -a 'dest=C:\\Users\\ajie\\Desktop\\ansible state=absent'
执行cmd命令
# 查看ip ansible windows -m win_shell -a 'ipconfig' # 查看系统版本 ansible windows -m win_shell -a 'systeminfo' # 创建文件夹 ansible windows -m win_shell -a 'md C:\ajie' # 查看用户 ansible windows -m win_shell -a 'net user' 还有很多,我就不一一列举了