Ansible:更改 SSH 密钥

Ansible: Change SSH key

我有多个服务器的清单。使用 PEM 密钥文件保护对这些服务器的 SSH 访问。我想定期更改我的服务器使用的 PEM 密钥。所以,我想使用 Ansible 来做以下事情:

  1. 生成新的 PEM 密钥文件
  2. 对于我清单中的每台服务器,使用旧 PEM 密钥文件连接到服务器
  3. 安装新的 PEM 密钥文件
  4. 测试以确保使用新密钥的 SSH 有效而旧密钥有效

通过 Ansible 执行此操作的最佳方法是什么?

你应该把它分成三本剧本。

第一个生成新的PEM密钥。这将在本地 运行。参见:https://docs.ansible.com/ansible/playbooks_delegation.html#local-playbooks

第二个将进行部署。因此它将密钥复制到所有服务器。您可以根据您的首选工作流程使用 authorized_key or copy。但那是另一个问题。

然后第三步是测试剧本,可能使用断言语句或仅使用 ping 来确保连接正常。

当您拥有所有这些剧本后,将它们组合成一个剧本,并以正确的顺序将这三个剧本包含或添加到一个剧本中。参见:https://docs.ansible.com/ansible/playbooks_intro.html