在SaltStack中添加不同主机的MySQL用户

我有两台服务器运行相同的应用程序,需要访问运行MySQL的特定数据库服务器上的数据库。

包含应用程序的两台服务器都应该使用相同的用户凭据访问MySQL数据库。 同时,不应该使用主机通配符(例如%)创buildMySQL用户,而是使用两个服务器的IP。

通常这意味着我创build了两个MySQL用户:

  • 用户:坦率地说,通过:topsecret,主机:10.10.0.1
  • 用户:坦率地说,通过:topsecret,主机:10.10.0.2

现在,我怎样才能用MySQL的盐状态呢?

我想我想要这样的东西:

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 

由于主机被多次声明,这是行不通的。 同时创build用户“坦率”两次不起作用,因为盐会抱怨一个非唯一的用户名。 我试图通过支柱解决这个问题,但是在这里Salt也抱怨同一用户名的多个定义。

任何想法如何解决这个问题?

这应该工作,如果你作为单独的用户添加他们。 像往常一样,您可以使用循环和支柱,但扩展版本将如下所示:

编辑mysql_user.present现在有参数- name: frank

 frank_10.0.0.1: mysql_user.present: - name: frank - host: 10.0.0.1 - password: topsecret mysql_grants.present: - grant: select - database: secretdb.* - user: frank - host: 10.0.0.1 frank_10.0.0.2: mysql_user.present: - name: frank - host: 10.0.0.2 - password: topsecret mysql_grants.present: - grant: select - database: secretdb.* - user: frank - host: 10.0.0.2