Hi,

I'm having problems with a playbook for setting up MariaDB, using Ansible
1.9.1 against a Centos 7.1.1503 host. I'll try and go step by step with the
playbook, which starts thusly:

- name: Install MariaDB
  yum:
    name: "{{ item }}"
    state: present
  with_items:
  - mariadb
  - mariadb-server
  - MySQL-python

- name: Enable MariaDB
  service:
    name: mariadb
    enabled: yes
    state: started


Running the above will correctly install MariaDB and start running the
service. Now, from the actual MariaDB host, if I connect to the service
using the mysql client I can get:

MariaDB [mysql]> select User,Host,Password from user;
+------+---------------------+----------+
| User | Host                | Password |
+------+---------------------+----------+
| root | localhost           |          |
| root | mariadb.example.com |          |
| root | 127.0.0.1           |          |
| root | ::1                 |          |
|      | localhost           |          |
|      | mariadb.example.com |          |
+------+---------------------+----------+
6 rows in set (0.00 sec)


Which is expected in a default unattended install: root password is blank
and there are a couple of anonymous credentials. Note, however, that there
are credentials for the host FQDN, so I'm inclined to use ansible_fqdn in
the following.

Now comes the part of the playbook that's giving me problems, when setting
up the credentials:

- name: Privileged credentials
  mysql_user:
    name: root
    host: "{{ item }}"
    password: "{{ mariadb.password }}"
  with_items:
  - "{{ ansible_fqdn }}"
  - 127.0.0.1
  - ::1
  - localhost

- name: Privileged credentials console access
  template:
    src: root/my.cnf.j2
    dest: /root/.my.cnf
    owner: root
    group: root
    mode: 0600


(Obviously, mariadb.password, above, is a variable which is also used on
the .my.cnf template.) The above was taken from several sources online; I
only changed the use of ansible_host to ansible_fqdn. Running the playbook
will fail in that task:

failed: [mariadb.example.com] =>
  (item=mariadb.example.com) =>
  {"failed": true, "item": "mariadb.example.com"}
msg: (1133, "Can't find any matching row in the user table")
changed: [mariadb.example.com] => (item=127.0.0.1)
changed: [mariadb.example.com] => (item=::1)
changed: [mariadb.example.com] => (item=localhost)


If I run the previous MariaDB command I get:

MariaDB [mysql]> select User,Host,Password from user;
+------+---------------------+------------------+
| User | Host                | Password         |
+------+---------------------+------------------+
| root | localhost           | *1018BCB9A91D... |
| root | mariadb.example.com |                  |
| root | 127.0.0.1           | *1018BCB9A91D... |
| root | ::1                 | *1018BCB9A91D... |
|      | localhost           |                  |
|      | mariadb.example.com |                  |
+------+--------------------+-------------------+
6 rows in set (0.01 sec)


Which shows that all the credentials were changed except the one with the
FQDN host part. So, my question is: what am I doing wrong?

TIA.

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAPjvz2%3DymOj%2Byng%2BFCKqJUHzUT4jZyd0BQsdMxYdKqezitg1zw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to