我有两台服务器运行相同的应用程序,需要访问一台运行 MySQL 的特定数据库服务器上的数据库。
具有应用程序的两台服务器都应使用相同的用户凭据访问 MySQL 数据库。同时,不应使用主机通配符(例如 %)创建 MySQL 用户,而应使用两台服务器的 IP。
通常,这意味着我创建了两个 MySQL 用户:
- 用户:frank,密码:topsecret,主机:10.10.0.1
- 用户:frank,密码:topsecret,主机:10.10.0.2
现在,我如何使用 MySQL Salt 状态来做到这一点?
我想我想要这样的东西:
frank:
mysql_user.present:
- host: 10.0.0.1
- host: 10.0.0.2
- password: topsecret
mysql_grants.present:
- grant: select
- database: secretdb
- user: frank
- host: 10.0.0.1
- host: 10.0.0.2
这不起作用,因为主机被多次声明。同样创建用户“坦率”两次也不起作用,因为 Salt 会抱怨用户名不唯一。我尝试通过 Pillars 解决这个问题,但在这里 Salt 抱怨同一用户名的多个定义。
任何想法如何解决这个问题?
如果您将它们添加为单独的用户,这应该可以工作。您可以像往常一样使用循环和支柱,但扩展版本如下所示:
编辑:
mysql_user.present
现在有参数- name: frank