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
完整的连接行为控制变量参见官方手册: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
测试通过返回结果: