环境描述:
1、控制节点,ansible——安装pywinrm
2、被管理节点:windows节点——开启winrm
问题描述:
使用ansible管理多台windows,随着服务器的增多,经常遇到一个问题,密码过期和定期修改。导致ansible对windows的管理失效。
目标:
希望可以免密登录windows节点,或者找到一个有效管理windows的方法,请各位指教。
环境描述:
1、控制节点,ansible——安装pywinrm
2、被管理节点:windows节点——开启winrm
问题描述:
使用ansible管理多台windows,随着服务器的增多,经常遇到一个问题,密码过期和定期修改。导致ansible对windows的管理失效。
目标:
希望可以免密登录windows节点,或者找到一个有效管理windows的方法,请各位指教。
Ansible到Windows的免密登录可以通过以下步骤实现:
# 在PowerShell中运行以下命令
winrm quickconfig
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
winrm set winrm/config/service/auth '@{Basic="true"}'
# 在bash中运行以下命令
pip install "pywinrm>=0.3.0"
# 在inventory file中添加以下内容
[windows]
windows_host ansible_connection=winrm ansible_user=Administrator ansible_password=SecretPassword ansible_winrm_server_cert_validation=ignore
在这个配置中,windows_host
是你的Windows主机的主机名或IP地址,Administrator
是你的Windows主机的用户名,SecretPassword
是你的Windows主机的密码。ansible_winrm_server_cert_validation=ignore
是告诉Ansible忽略SSL证书验证,这在测试环境中是可以接受的,但在生产环境中可能会带来安全风险。
然后,你就可以使用Ansible来管理你的Windows主机了,而无需每次都输入密码。
然而,这种方法并不能完全解决你的问题,因为你仍然需要在Ansible的配置中存储密码。如果你的密码经常更改,你可能需要考虑使用一个密码管理系统,如Ansible Vault,来安全地存储和管理你的密码。