ansible 远程Windows主机

  • 1、ansible 安装(必须在linux 环境下安装)

linux环境:

pip install ansible

pip install pywinrm

  • 2、Windows客户端主机:

    系统:   Windows 7 SP1

Windows机器需要安装或升级powershell4.0以上版本,win7 默认的版本是2.0,对于Server2012及以上的版本默认是4.0版本,不需要升级。

注意:升级powershell需要重启服务器才能生效。

  运行powershell,执行get-host检查版本信息 ,2.0就需要升级

ansible 远程Windows主机_第1张图片

升级步骤:

2.1 下载并安装Microsoft .NET Framework 4.5

https://download.microsoft.com/download/B/A/4/BA4A7E71-2906-4B2D-A0E1-80CF16844F5F/dotNetFx45_Full_setup.exe

2.2 下载并安装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

注意: 安装完成之后重启windows

2.3 配置客户端winrm

         管理员身份运行powershell

         1. 查看powershell执行策略
         get-executionpolicy

         2. 更改powershell执行策略为remotesigned
         set-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"}'
         6、关闭防火墙或者添加防火墙信任规则,允许5985端口通过
         这里我直接关闭防火墙

  • 3、测试ansible 连接windows
mkdir /etc/ansible
vim /etc/ansible/hosts  #添加如下 windows 机器配置 ip, user pwd信息
[windows]
192.168.11.149 ansible_ssh_user="admin" ansible_ssh_pass="123456" ansible_ssh_port=5985 ansible_connection="winrm" ansible_winrm_server_cert_validation=ignore
ansible 192.168.11.149 -m win_ping #测试是否ping通
192.168.11.149 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

出现 如上所示,说明测试成功

其他常用命令参考:

# 创建文件夹
ansible 192.168.11.149 -m win_file -a 'dest=C:/test state=directory'
# 传输文件到windows
ansible 192.168.11.149 -m win_copy -a 'src=/etc/hosts dest=c:\test\hosts.txt'
# 删除文件
ansible 192.168.11.149  -m win_file -a 'dest=c:\test\hosts.txt state=absent'
# 删除目录
ansible 192.168.11.149  -m win_file -a 'dest=c:\test state=absent'
# 远程执行cmd 命令
ansible 192.168.11.149  -m win_shell -a 'ipconfig'
# 重启 
ansible 192.168.11.149  -m win_reboot
ansible 192.168.11.149  -m win_shell -a 'shutdown -r -t 0'
# 创建用户
ansible 192.168.11.149 -m win_user -a "name=user1 passwd=123456"

enjoy

你可能感兴趣的:(ansible)