我在ansible的库存文件中为我的MySQL数据库定义别名时遇到了问题。我可以使用。:
轻松地为我的EC2实例创建一个ansible_ssh_host
ansible_ssh_port
ansible_ssh_user
像这样:
[webserver]
some-hostname ansible_ssh_host=some-subdomain-of-amazon
但它不使用ssh连接到数据库实例。如何为该组创建别名
[databases]
some-hostname ansible_mysql_host=some-subdomain-of-amazon
我似乎无法在文档中找到任何内容。
// Ulrik McArdle
答案 0 :(得分:0)
DNS不知道您在ansible hosts文件中提供的名称。他们不是CNAMES。因此,您只能使用安全工具(例如ansible
和ansible-playbook
)来引用它们。
您可以使用ansible_ssh_host
,ansible_ssh_port
和ansible_ssh_user
以及Ansible关键字告诉ansible工具嘿,主持人foo
拥有此IP,您可以通过端口ansible_ssh_port
n上的ssh连接......等等。它们在ansible之外没有任何意义。
话虽如此,ansible_mysql_host
当然不是有效的关键字。
所以我真的不知道你想要在这里实现什么,但是如果你需要使用DNS名称来修改你的mysql服务器(根据你正在使用的驱动程序,我不会真的推荐你),你必须使用真正的DNS条目,可以从您的客户端解决。
选项是在客户端的/etc/hosts
文件中添加名称,或使用route53 ansible模块创建Route53条目。