Windows端配置
(本文使用Ubuntu或CentOS作为管理机,Windows作为被管理机)
- 配置Windows Ansible 官方文档 。
- 跟着文档走一遍即可,关键部分在WinRM安装和设置以及
Win32-OpenSSH
的安装。 - 注意"设置WinRM侦听器"部分,
CertificateThumbprint
要设置成自己powershell运行winrm enumerate winrm/config/Listener
输出内容中的CertificateThumbprint
字段。 - 其中的
Win32-OpenSSH
我选择的是官方github wiki中的安装教程,使用的安装包链接。
Linux端配置Ansible测试
-
注意:
- root用户下或sudo运行之后的命令。
- 环境:Python 2.7.5,pip install ansible==2.10.4
-
配置/etc/anshible/hosts文件:
$sudo mkdir /etc/anshible $sudo vim /etc/anshible/hosts [test] 192.168.10.9 ansible_connection=ssh ansible_shell_type=cmd ansible_ssh_user=admin ansible_ssh_pass=123456
- 注意上面行首的
ip
和ansible_ssh_user
以及ansible_ssh_pass
要改成自己Windows主机的信息。 Win32-OpenSSH
版本早于外壳类型v7.9.0.0p1-Beta
时ansible_shell_type=powershell
不起作用,否则只能设置ansible_shell_type=cmd
。- 其次,
Win32-OpenSSH
默认情况下Win32-OpenSSH
将cmd.exe
用作shell,设置方法在文档末尾。 - Windows查看openssl版本方法:
cd to sshd directory (cd e:InstallOpenSSH-Win64OpenSSH-Win64)
.ssh.exe -V
注意:这里使用了
ansible_ssh_pass
,所以后面要安装sshpass
,以及Windows对应用户要设置登录密码(开机登陆密码)。 - 注意上面行首的
-
安装sshpass:
yum/apt install sshpass
-
测试ansible,使用win_ping模块,输出如下表示配置成功:
$sudo ansible all -m win_ping 192.168.10.9 | SUCCESS => { "changed": false, "ping": "pong" }
-
Ansible Windows支持的所有模块见官方文档。
Ansible配置免密(ssh公钥)
(主机A:Windows,主机B:Linux)
- ssh免密配置正常配置即可(Windows安装OpenSSH),要注意的是主机A文件
C:ProgramDatasshsshd_config
末尾应该向下面这样注释掉
# Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
然后net stop sshd && net start ssh