初学Ansible(管理Window主机)

PerFace

  在公司干的实施工作,由于公司缺人,我经常干系统升级部署的活,于是我了解到Jenkins,这玩意需要写脚本,我又钻进了Ansible的坑。

Ansible管理Window的前提

虚拟机ubuntu作为Ansible控制端(window不可做控制端),本机作为被控制端,还有一个centos虚拟机
对于Windows端来说,要让Ansible管理Windows,要求Windows端:

  • .PowerShell 3.0+
  • .NET 4.0+

所以,默认支持的Window系统包括:

  • Windows 7 SP1, 8, 10
  • Windows Server 2008 SP2, 2008 R2 SP1, 2012, 2012 R2, 2016, 2019

如果是更古老的系统,要求额外安装PowerShell 3.0+以及.NET 4.0+。

配置Window主机

-- inventory清单(管理机器)
sudo vim /etc/ansible/host

image

完整的连接行为控制变量参见官方手册:Connecting to hosts: behavioral inventory parameters。下面解释几个常见的行为变量。
Inventory变量名 含义
ansible_host ansible连接节点时的IP地址
ansible_port 连接对方的端口号,ssh连接时默认为22
ansible_user 连接对方主机时使用的主机名。不指定时,将使用执行ansible或ansible-playbook命令的用户
ansible_password 连接时的用户密码
ansible_connection 连接类型,有效值包括smart、ssh、paramiko、local、docker、winrm,默认为smart。smart表示智能选择ssh和paramiko,当SSH支持ControlPersist(即持久连接)时使用ssh,否则使用paramiko。local和docker是非基于ssh连接的方式,winrm是连接windows的插件
ansible_ssh_private_key_file 指定密钥认证ssh连接时的私钥文件
ansible_ssh_common_args 提供给ssh、sftp、scp命令的额外参数
ansible_become 允许进行权限提升
ansible_become_method 指定提升权限的方式,例如可使用sudo/su/runas等方式
ansible_become_user 提升为哪个用户的权限,默认提升为root
ansible_become_password 提升为指定用户权限时的密码

测试是否连接Window主机

ansible win -m win_ping
测试通过返回结果:
image

如果把成才比作登天,自学便是成才的天梯。
原文地址:https://www.cnblogs.com/Ink-kai/p/15441068.html