来自 MySQL 数据库的 Ansible 库存

Posted

技术标签:

【中文标题】来自 MySQL 数据库的 Ansible 库存【英文标题】:Ansible inventory from MySQL DB 【发布时间】:2015-05-26 13:47:41 【问题描述】:

我有一个关于 Ansible 库存的查询。是否可以从 mysql 数据库加载库存而不是从文件加载?我正在寻找在调用剧本时指定存储在 My SQL DB 中的主机 ssh 密钥。这种方法的原因是,根据我的理解,为了通过 ansible 配置主机,应该将 ssh 密钥添加到已知的主机文件中,以避免密码提示并启用基于密钥的登录。在完全自动化的环境中,我想避免输入密码并将密码存储在文件中存在明显的安全问题。

【问题讨论】:

【参考方案1】:

是的,您可以使用 Ansible 的 dynamic inventory 从任何地方加载库存数据。查看 AWS 清单脚本,了解为实例列表调用 API 的示例。

这种方法的原因是,据我了解,为了通过 ansible 配置主机,应将 ssh 密钥添加到已知主机文件中,以避免密码提示并启用基于密钥的登录。

不一定。如果您在 AWS 之类的实例频繁出入的地方,您可以使用 host_key_checking=False 在您的 Ansible 配置中关闭主机密钥检查。这具有您应该注意的安全隐患,但在使用诸如您在 AWS 上看到的短期实例时很常见。

在完全自动化的环境中,我想避免输入密码并将密码存储在文件中存在明显的安全问题。

需要注意的是,Ansible 有一个encrypted vault 可以用作密码。不过,基于密钥的身份验证通常是可行的方法。

【讨论】:

以上是关于来自 MySQL 数据库的 Ansible 库存的主要内容,如果未能解决你的问题,请参考以下文章

如何在Ansible中使用静态和动态库存

如何在库存文件中使用ansible-vault加密密码?

Ansible - 在播放期间切换到新的库存文件

为啥 Ansible 无法解析我的 azure 动态库存配置文件?

python 流动的ansible动态库存

python 流动的ansible动态库存