一,ansible配置

1、简介
Ansible 从1.7+版本开始支持Windows,但管理机必须为Linux系统,远程主机的通信方式也由Linux下的SSH变为PowerShell,管理机需要安装Python的pywinrm模块,但PowerShell需3.0+版本且Management Framework 3.0+版本,实测Windows 7 SP1和Windows Server 2008 R2及以上版本系统经简单配置可正常与Ansible通信。
2、环境准备
以下配置在CentOS7.4_x64下
安装pip及相关依赖

下载pip
#wget  
#python get-pip.py
安装依赖
#pip install pywinrm paramiko PyYAML Jinja2 httplib2 six

3、安装ansible

#yum -y install ansible

4,配置ansible文件

#vim /etc/ansible/hosts

[win7]

172.16.70.80 ansible_ssh_user="administrator" ansible_ssh_pass="root" ansible_ssh_port=5985 ansible_connection="winrm"

注意上信息在一行;以空格隔开,[win7] 是这台主机的标题;下面的是ip和连接信息等;

二、被管理端win7配置

1、环境简介
和Linux稍有区别,被管理端系统如果是Windows系列时;需预先有以下配置:
安装Framework 3.0+ (有可能需要下载)
配置powershell策略为remotesigned (需要修改)
升级PowerShell至3.0+(win7默认是2.0)
设置Windows远端管理,英文全称WS-Management(WinRM)

2、环境配置
a、升级或安装Framework 4.5
如果Framework版不满足请至微软官方下载
b、修改powershell策略为remotesigned 打开powershell终端

PS C:\Users\Administrator>set-executionpolicy remotesigned


查看powershell 

PS C:\Users\Administrator>get-executionpolicy 


设置Windows远端管理(WS-Management,WinRM)服务
winrm 服务默认都是未启用的状态;注意以下操作在cmd中执行,而非powershell中
对winrm服务进行基础配置:

C:\Users\Administrator>winrm quickconfig


C:\Users\Administrator>winrm e winrm/config/listener


C:\Users\Administrator>winrm set winrm/config/service/auth @{Basic="true"}


C:\Users\Administrator>winrm set winrm/config/service @{AllowUnencrypted="true"}

在ansible服务器上ping远程windows服务器

 #ansible win7 -m win_ping 


可以用ansible-playbook添加用户,将用户加入到对应的组里

#vim  adduser.yml 

- name: Add a group and user

  hosts: all

  gather_facts: false

  tasks:

    - name: Add User

      win_user:

        name: ops

        password: "A123456"

        state: present

        groups:

          - "Remote Desktop Users"

          - Users


执行playbook文件,登陆服务器查看用户状态

#ansible-playbook adduser.yml