Esta web utiliza cookies, puedes ver nuestra política de cookies, aquí Si continuas navegando estás aceptándola

Gestión de usuarios MySQL mediante Ansible


Para poder gestionar mysql mediante Ansible necesitamos instalar primero ciertas dependencias en todos los servidores a gestionar, según el sistema operativo:

emerge -av dev-python/mysql-python
apt install python-mysqldb

Creamos los directorios necesarios para Ansible:

mkdir /etc/ansible/
chown -R root:kr0m /etc/ansible/
chmod 775 /etc/ansible/

Creamos un grupo de servidores llamado test:

vi /etc/ansible/hosts
[test]
SERVER1
SERVER2

Comprobamos los usuarios actuales:

mysql> select user, host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+

Generamos un playbook que añadirá un usuario llamado bob desde la ip 1.1.1.1 con password 12345 el cual podrá realizar SELECTs sobre todas las tablas de la base de datos test:

- hosts: test
  tasks:
    - name: Set bob mysql user grants
      mysql_user:
        host: 1.1.1.1
        name: bob
        password: 12345
        priv: "test.*:SELECT"
        state: present

Aplicamos el playbook:

ansible-playbook mysqlUsers.yml

Volvemos a comprobar los usuario y los grants:

mysql> select user, host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| bob              | 1.1.1.1   |
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
mysql> show grants for bob@'1.1.1.1';
+---------------------------------------------+
| Grants for bob@1.1.1.1                      |
+---------------------------------------------+
| GRANT USAGE ON *.* TO 'bob'@'1.1.1.1'       |
| GRANT SELECT ON `test`.* TO 'bob'@'1.1.1.1' |
+---------------------------------------------+

Autor: Kr0m -- 05/08/2018 23:08:13