Ansible mysql8根密码和本机用户

Ansible mysql8根密码和本机用户,ansible,mysql-8.0,Ansible,Mysql 8.0,我是ansible的新手,花了很长时间寻找,我觉得好像我错过了一些显而易见的东西 问题 在Ubuntu20.04服务器上使用ansible安装MySql8后,我不能做任何与MySql相关的事情,因为MySql“root”用户的密码设置为随机密码,并保存在错误日志中。我找到的唯一解决办法是检索密码并更改它。然而,这只会起作用一次。稍后再次运行同一剧本将导致错误,因为密码已被更改 在创建由MySQL本机密码标识的用户时,我也遇到了类似的问题。我已经找到了这样的解决方案:首先创建一个用户,然后使用sh

我是ansible的新手,花了很长时间寻找,我觉得好像我错过了一些显而易见的东西

问题

在Ubuntu20.04服务器上使用ansible安装MySql8后,我不能做任何与MySql相关的事情,因为MySql“root”用户的密码设置为随机密码,并保存在错误日志中。我找到的唯一解决办法是检索密码并更改它。然而,这只会起作用一次。稍后再次运行同一剧本将导致错误,因为密码已被更改

在创建由MySQL本机密码标识的用户时,我也遇到了类似的问题。我已经找到了这样的解决方案:首先创建一个用户,然后使用shell命令将该用户转换为本机密码标识的用户。但我真的不希望每次剧本都是这样。我想要的是,仅当用户不存在时才创建该用户

如果我手动执行此操作,我会使用
sudomysql
或者使用mysql\u secure\u安装脚本设置根密码

问题

  • 有没有办法从ansible设置根MySQL帐户密码 在不知道当前密码的情况下使用sudo密码,如 在上面

  • 是否可以创建由本机密码标识的用户 不使用shell命令,因此仅在以下情况下创建用户 它还不存在


  • 这似乎是mysql8.0的一个问题
    我当时的解决方案如下


  • 获取root用户的临时密码
    sudo grep“临时密码”/var/log/mysqld.log | cut-d'-f 11
  • 更新根密码(可能使用mysql\u用户模块)
    “sudo mysqladmin-u root密码'{{new\u mysql\u root\u password}}'-p'{{{password\u from_1}}}'”
  • 我使用shell模块使用2个sudo命令实现了这一点,但我认为理想的方法是\ 使用shell模块执行1 使用1对mysql进行连接检查,并将其注册到变量root\u检查中 仅当根检查未引发错误时才执行2

    在我的例子中,如果第一次更改密码时错误发生在2,我将忽略该错误


    我确信有更好的解决方案。

    这似乎是mysql8.0的一个问题
    我当时的解决方案如下


  • 获取root用户的临时密码
    sudo grep“临时密码”/var/log/mysqld.log | cut-d'-f 11
  • 更新根密码(可能使用mysql\u用户模块)
    “sudo mysqladmin-u root密码'{{new\u mysql\u root\u password}}'-p'{{{password\u from_1}}}'”
  • 我使用shell模块使用2个sudo命令实现了这一点,但我认为理想的方法是\ 使用shell模块执行1 使用1对mysql进行连接检查,并将其注册到变量root\u检查中 仅当根检查未引发错误时才执行2

    在我的例子中,如果第一次更改密码时错误发生在2,我将忽略该错误

    我相信有更好的解决办法