zoukankan      html  css  js  c++  java
  • Ansible批量远程管理Windows主机(部署与配置)

    一、测试环境介绍

    Ansible管理主机:

    系统:   CentOS6.8

    IP Addr: 172.16.10.22

    Linux管理服务器需安装pip、pywinrm插件

    Windows客户端主机:

            系统:   Server2008R2 SP1

            IP Addr: 172.16.10.23

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

    (经测试安装powershell3.0版本并不能正常支持Ansible,因此选择升级至4.0版本)

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

    二、Windows Server 2008R2客户端升级至powershell4.0

    配置winrm之前检查系统版本,以及powershell版本,如果是Server2008R2版本,则需要升级powershell至4.0版本。Server2012R2以上的版本不需要升级powershell

    升级powershell4.0步骤:

    1. 检查powershell版本

    未升级前显示的是2.0版本

    图片.png

    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服务器

    4. 升级完powershell4.0后检查

    查看powershell版本

    打开运行--->输入powershell启动powershell

    图片.png

    在powershell终端上执行get-host命令可以查看powershell版本

    图片.png

    三、Windows客户端配置winrm,启用powershell远程管理

    打开powershell终端,按以下步骤执行命令(正常情况不会报错,如果有报错,请检查输入的命令是否正确,或者手动输入命令进行配置)

    1. 查看powershell执行策略

    get-executionpolicy

    2. 更改powershell执行策略为remotesigned

    set-executionpolicy remotesigned

    图片.png

    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"}'

    四、Windows客户端防火墙配置

    通过命令winrm enumerate winrm/config/listener检查winrm服务正确启动之后

    添加防火墙信任规则,允许5985端口通过

    打开防火墙高级配置,选择入站规则,在点击新建规则

    图片.png

    填写信任端口5985

    图片.png

    填写新建规则名称

    图片.png

    五、Ansible服务端配置和测试管理Windows服务器(服务端操作)

    1. 添加windows客户端连接信息

    编辑/etc/ansible/hosts,添加客户端主机信息(ansible服务端的配置)

    [windows]

    172.16.10.23 ansible_ssh_user="Administrator" ansible_ssh_pass="zteict123" ansible_ssh_port=5985 ansible_connection="winrm" ansible_winrm_server_cert_validation=ignore

    2. 测试ping探测windows客户主机是否存活

    执行命令

    # ansible 172.16.10.23 -m win_ping

    图片.png

    3. 测试文件管理

    测试在windows主机执行远程创建目录

    # ansible 172.16.10.23 -m win_file -a 'dest=c:config_dir state=directory'

    图片.png

    测试将ansible主机上的/etc/hosts文件同步到windows主机的指定目录下

    # ansible 172.16.10.23 -m win_copy -a 'src=/etc/hosts dest=c:config_dirhosts.txt'

    图片.png

    图片.png

    删除文件

    # ansible 172.16.10.23 -m win_file -a 'dest=c:config_dirhosts.txt state=absent'

    删除目录

    # ansible 172.16.10.23 -m win_file -a 'dest=c:config_dir2 state=absent'

    3. 测试远程执行cmd命令

    # ansible 172.16.10.23 -m win_shell -a 'ipconfig'

    图片.png

    4. 远程重启windows服务器

    # ansible 172.16.10.23 -m win_reboot

    # ansible 172.16.10.23 -m win_shell -a 'shutdown -r -t 0'

    5. 测试创建用户(远程在windows客户端上创建用户)

    # ansible 172.16.10.23 -m win_user -a "name=testuser1 passwd=123456"

    图片.png

    6. Windows服务管理

    Ansible命令格式:

    ansible [远程主机IP地址] -m win_shell -a “net stop|start 服务名”

    示例:启动与停止Windows服务器的Spooler服务

    图片.png

    此外,Ansible还可以远程管理Windows的IIS服务、Apache等Web服务,利用Ansible实现批量更新Web应用,如代码发布、版本更新等。

  • 相关阅读:
    $.ajax
    es6--之箭头函数
    vuex相关知识点
    grunt---grunt_test 测试用例
    git2--常用命令
    git命令
    百万程序员的苦恼-选择VB.NET还是C#
    在Linux上运行C#
    C#中的cookie编程
    C#编程让Outlook乖乖交出帐户密码
  • 原文地址:https://www.cnblogs.com/navysummer/p/11127906.html
Copyright © 2011-2022 走看看