我相信你可以使用mysql_user模块来实现这个功能:
- mysql_user: name=bob password=12345 append_privs=*.*:REQUIRESSL
通过使用 "append_privs",您只需将 "REQUIRE SSL" 添加到 bob 的现有权限中即可。
如果您想手动执行此操作,则可能会变得有些麻烦,但您始终可以通过 command 模块调用 mysql 客户端。假设您已为 mysql 用户和主机定义了变量:
- command: mysql -u {{ myslq_user }} -h {{ mysql_host }} -p{{ mysql_password }} "GRANT ALL PRIVILEGES ON *.* TO ‘ssluser’@’%’ IDENTIFIED BY ‘pass’ REQUIRE SSL;"
更新:在确保安装了正确的Python库后,我进行了一些测试,并成功地使其正常工作:
- hosts: myhost
name: test
user: my-user
tasks:
- local_action: mysql_user
user=foo
host='%'
password=bar
state=present
append_privs=yes
login_host=<my_database_host>
login_user=<my_database_root_user>
login_password=<my_database_root_password>
priv='*.*:REQUIRESSL'
以上导致了以下结果:
mysql> show grants for 'foo'@'%';
+----------------------------------------------------------------------------------------------------------------+
| Grants for foo@% |
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'foo'@'%' IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB' REQUIRE SSL |
+----------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
127.0.0.1
上,并使用SSH隧道进行远程管理,而不是将其暴露在互联网上(即使已经启用了SSL)。 - Mxx