ansible批处理windows机器

一、 前提

1.1、windows机器开启winrm服务,并设置成允许远程连接状态

具体操作命令如下

set-executionpolicy remotesigned
winrm quickconfig
#配置auth
winrm set winrm/config/service/auth '@{Basic="true"}'
#为winrm service 配置加密方式为允许非加密
winrm set winrm/config/service '@{AllowUnencrypted="true"}'

 1.2、准备条件

  1. 管理终端必须为linux,且需要安装 Python的winrm模块

  2. 底层通讯基于 powershell,版本需要在4.0以上  $PSVersionTable.PSVersion获取版本号  或者  get-host | findstr version   

  3. 远程windows机器开启winrm

二、ansible 管理机安装部署

2.1、linux管理主机系统为 centos 7.5版本

安装ansible:

yum -y install ansible


如果没有安装pip, 请先安装对应于你的Python版本的pip:

easy_install pip

以下的Python模块也需要安装:

pip install PyYAML

配置hosts文件:

cat /etc/ansible/hosts
[windows]
10.0.0.1 ansible_ssh_user="Administrator" ansible_ssh_pass="123456" ansible_ssh_port=5985 ansible_connection="winrm" ansible_winrm_server_cert_validation=ignore

10.0.0.1 是windows服务器的IP。
/etc/ansible/hosts 中看可添加多个windows服务器的信息 ,可集体一次性管理,分发任务。
至此,ansible服务端配置完毕。

 2.2、windows 机器为 win10

开启winrm功能,用来做ansible连接,前提准备条件中已经用powershell命令开启

2.3、关闭防火墙,并确保5985端口开启

netstat -ano | findstr 5985

 三、使用ansible远程管理windows机器

windows下可用调试模块 win_ping
bash
ansible -i hosts all -m win_ping
显示连接成功
 SUCCESS => {
    "changed": false,
    "ping": "pong"

windows下可用传送文件模块  win_copy
bash
ansible -i hosts all -m win_copy -a 'src=/etc/passwd dest=D:\passwd'

windows下 文件管理模块 win_file
bash
删除D:\passwd
ansible -i hosts all -m win_file -a "path=D:\passwd state=absent"

获取ip地址
ansible -i hosts all -m raw -a "ipconfig"

获取window主机信息:
ansible -i hosts all -m setup

创建文件夹:
ansible -i hosts all -m raw -a 'md D:\dir'

移动文件:
ansible -i hosts all -m raw -a "cmd /c 'move /y D:\Software\wmi_export.exe D:\wmi_export.exe'"

 至此,已完成初步管理

 

posted @ 2022-03-10 18:33  Security  阅读(571)  评论(0编辑  收藏  举报