🔥

Ansible 2.8に移行した時mysql_userでハマったエラー

2020/09/22に公開

回避策を記載しておきます。

2.8へ移行したのが原因かの詳しい調査はしていません。

Before

--checkしたところ、パラメータを変えていないのにchangedになっていてなんでかなーと思って実行したら以下のエラー。

"msg": "(1144, 'Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used')"

playbookは以下のとおり。

- name: create user
  mysql_user:
    name: user01
    password: password01
    host: "%"
    priv: >-
      db01.*:SELECT,INSERT,UPDATE,DELETE,LOCK TABLES/
      FUNCTION db01.*:EXECUTE,ALTER ROUTINE

After

FUNCTIONを`で囲ってあげれば回避可能。

- name: create user
  mysql_user:
    name: user01
    password: password01
    host: "%"
    priv: >-
      db01.*:SELECT,INSERT,UPDATE,DELETE,LOCK TABLES/
      `FUNCTION db01`.*:EXECUTE,ALTER ROUTINE

Discussion