【问题标题】:How to create an alias in ansible for a mysql database如何在ansible中为mysql数据库创建别名
【发布时间】:2015-10-11 23:49:27
【问题描述】:

我在 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

我似乎在文档中找不到任何关于此的内容。

// 乌尔里克·麦卡德尔

【问题讨论】:

    标签: ansible build-script


    【解决方案1】:

    DNS 不知道您在 ansible hosts 文件中提供的名称。它们不是 CNAME。因此,您只能使用 ansible 工具(例如 ansibleansible-playbook)引用它们。

    ansible_ssh_hostansible_ssh_portansible_ssh_user 和 Ansible 关键字可以用来告诉 ansible 工具“嘿,主机 foo 有这个 ip,你可以通过端口 ansible_ssh_portn 等上的 ssh 连接...它们只是在 ansible 之外没有任何意义。

    话虽如此,ansible_mysql_host 当然不是有效的关键字。 所以我真的不知道你想在这里实现什么,但如果你需要使用 DNS 名称来寻址你的 mysql 服务器(根据你使用的驱动程序,我不会真正推荐它),你必须使用真正的 DNS 条目,可以从您的客户端解析。

    一种选择是在客户端的/etc/hosts 文件中添加一个名称,或者使用 route53 ansible 模块创建一个 Route53 条目。

    【讨论】:

    • 我知道它们不能在 Ansible 之外使用。这是因为我想使用主机名来创建 host_vars 文件夹,或者我错过了什么。 AWS 中的端点很长,最好用别名缩短它们。
    猜你喜欢
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 2023-04-11
    • 2010-10-01
    相关资源
    最近更新 更多