如果你跟随了我previous articles,我们一直在使用纯文本存储ssh密码来访问Windows。这是生活环境中的一大禁忌!
Ansible附带了一个名为“Ansible Vault”的加密功能来解决这一问题。在本实验中,我们将使用它来加密我们的ssh密码。
让我们继续上一篇文章Ansible Galaxy: Ping Windows Servers。我假设你已经成功地pinged通了Windows服务器。我们开始吧。
第一步。编辑清单文件(主机),位于/winservers/hosts
和的替换值ansible_ssh_pass
与{{ win_pass }}
现在我们已经包含了一个变量,Ansible将尝试在我们的星系“ping”中搜索这个变量。所有这些变量都存储在/winservers/ping/vars/main.yml
第二步。编辑变量-在终端窗口中,您会发现:
vi /winservers/ping/vars/main.yml
将此内容替换为:
win_pass: P@ssword1234
您可以在此处替换您的windows server密码。
保存文件。
步骤3:使用保管库加密您的文件-在终端窗口中,键入:
ansible-vault encrypt main.yml
它将要求新的保管库密码和确认。
每当您想要使用vault编辑或查看内容时,都会使用该密码。
第四步。使用vi查看保管库文件
vi /winservers/ping/vars/main.yml
这是的加密版本main.yml
文件。
第五步。查看保管库加密文件
ansible-vault view main.yml
Vault将在加密文件时要求您输入在步骤3中创建的密码。
第六步。编辑保管库加密文件
ansible-vault edit main.yml
您可以对文件进行更改并保存,一旦保存文件,就会对文件进行加密。
第七步。使用保管库密码执行行动手册
浏览至 /winservers/
和类型:
ansible-playbook pingservers.yml
您将得到以下错误:
既然我们使用了保险库,我们就必须使用--ask-vault-pass
用我们的剧本命令
ansible-playbook pingservers.yml --ask-vault-pass
恭喜!您已成功pinged通了您的Windows服务器,同时实现了Ansible保管库!
感谢阅读!