From 4fcba7f246df2a8db6c5371c66847a98323bc4e4 Mon Sep 17 00:00:00 2001 From: Olivier Bourdon Date: Tue, 2 Oct 2018 21:46:08 +0200 Subject: [PATCH] Fix deployment when using Ansible 2.6.5 Due to a change of lower MySQL module from MySQLdb to pymsql, Ansible calls to mysql_db and mysql_user modules fail. See https://askubuntu.com/questions/\ 766334/cant-login-as-mysql-user-root-from-normal-\ user-account-in-ubuntu-16-04 link for more information. Change-Id: Iceb04d5285aa4fa7b2cff371ab22b0a011369028 --- playbooks/roles/bifrost-ironic-install/tasks/bootstrap.yml | 7 +++++++ .../bifrost-ironic-install/tasks/inspector_bootstrap.yml | 7 +++++++ .../roles/bifrost-keystone-install/tasks/bootstrap.yml | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/playbooks/roles/bifrost-ironic-install/tasks/bootstrap.yml b/playbooks/roles/bifrost-ironic-install/tasks/bootstrap.yml index b10cce400..d12d6d27a 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/bootstrap.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/bootstrap.yml @@ -90,8 +90,14 @@ when: lookup('env', 'mysql_pass') | length > 0 no_log: true +- name: Setting MySQL socket fact + set_fact: + mysql_socket_path: "/var/run/{% if ansible_distribution | lower is search('suse') %}mysql/mysql.sock{% else %}mysqld/mysqld.sock{% endif %}" + when: ansible_version.full is version_compare('2.6.5', '>=') + - name: "MySQL - Creating DB" mysql_db: + login_unix_socket: "{{ mysql_socket_path | default(omit) }}" name: "{{ ironic.database.name }}" state: present encoding: utf8 @@ -102,6 +108,7 @@ - name: "MySQL - Creating user for Ironic" mysql_user: + login_unix_socket: "{{ mysql_socket_path | default(omit) }}" name: "{{ ironic.database.username }}" password: "{{ ironic.database.password }}" priv: "{{ ironic.database.name }}.*:ALL" diff --git a/playbooks/roles/bifrost-ironic-install/tasks/inspector_bootstrap.yml b/playbooks/roles/bifrost-ironic-install/tasks/inspector_bootstrap.yml index 0334bc4ae..a625764f7 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/inspector_bootstrap.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/inspector_bootstrap.yml @@ -13,8 +13,14 @@ # See the License for the specific language governing permissions and # limitations under the License. --- +- name: Setting MySQL socket fact + set_fact: + mysql_socket_path: "/var/run/{% if ansible_distribution | lower is search('suse') %}mysql/mysql.sock{% else %}mysqld/mysqld.sock{% endif %}" + when: ansible_version.full is version_compare('2.6.5', '>=') + - name: "MySQL - Create database" mysql_db: + login_unix_socket: "{{ mysql_socket_path | default(omit) }}" login_user: "{{ mysql_username }}" login_password: "{{ mysql_password }}" name: "{{ ironic_inspector.database.name }}" @@ -24,6 +30,7 @@ - name: "MySQL - Create user for inspector" mysql_user: + login_unix_socket: "{{ mysql_socket_path | default(omit) }}" login_user: "{{ mysql_username }}" login_password: "{{ mysql_password }}" name: "{{ ironic_inspector.database.username }}" diff --git a/playbooks/roles/bifrost-keystone-install/tasks/bootstrap.yml b/playbooks/roles/bifrost-keystone-install/tasks/bootstrap.yml index d186a7812..ed397d73c 100644 --- a/playbooks/roles/bifrost-keystone-install/tasks/bootstrap.yml +++ b/playbooks/roles/bifrost-keystone-install/tasks/bootstrap.yml @@ -71,8 +71,14 @@ when: lookup('env', 'mysql_pass') | length > 0 no_log: true +- name: Setting MySQL socket fact + set_fact: + mysql_socket_path: "/var/run/{% if ansible_distribution | lower is search('suse') %}mysql/mysql.sock{% else %}mysqld/mysqld.sock{% endif %}" + when: ansible_version.full is version_compare('2.6.5', '>=') + - name: "MySQL - Creating DB" mysql_db: + login_unix_socket: "{{ mysql_socket_path | default(omit) }}" name: "{{ keystone.database.name }}" state: present encoding: utf8 @@ -83,6 +89,7 @@ - name: "MySQL - Creating user for keystone" mysql_user: + login_unix_socket: "{{ mysql_socket_path | default(omit) }}" name: "{{ keystone.database.username }}" password: "{{ keystone.database.password }}" priv: "{{ keystone.database.name }}.*:ALL"