使用Ansible更新服务器组的SSH密钥

时间:2019-01-02 18:40:07

标签: ansible

我真的很喜欢ansible,我想用它来帮助我管理ssh密钥。我使用了小的代码示例作为测试,并证明了基本软件可以按预期运行。

我的服务器位于hosts文件中,组名称类似<application><servertype><environment>。例如:AlfrescoAppProd,AlfrescoDBDev等。然后将它们分为更多逻辑组,例如Prod(所有生产服务器),DB(所有数据库服务器)等。

最终,我想运行一个“ AddSSHKeys.yml”剧本,让它提示我输入组(Prod,App等),让它提示我添加公钥的位置,然后提示该密钥将应用于与输入匹配的所有服务器。

我认为我走的路正确,但想与您确认一下好人。让我知道我在为所有服务器编写代码之前是用错误的方式还是使它变得比必要的复杂。

谢谢

-斯科特

1 个答案:

答案 0 :(得分:0)

Ansible并不是真正的交互式工具。您应该避免在用户交互中使用模式。

尽管如此,您仍可以在命令行中传递所需的所有内容。最简单的方法是使用-e选项(如果需要,可以重复几次)。它将变量设置为指定值。 F.e. ansible-playbook -i myinventory play.yaml -e "ssh_key=AAAA...."。对于更高级的功能,您可以使用查找插件(它们可以从localhost读取文件),并且可以将文件名作为变量传递。

对于非常宏大的数据集,您可以使用include_vars