Инициализация MySQL для LAMP через Ansible

Как мы знаем, для корректной работы LAMP-стека, необходимо настроить СУБД для работы с Apache и PHP. Приведу один из вариантов-аналогов mysql_secure_installation для Ansible, который работает с актуальными версиями MySQL,  и подходит для начала работы с WordPress.

YAML playbook (без создания БД, т.к. у меня она качует еще со времён FreeBSD):

---
- name: Playbook for initial installed MySQL
  hosts: "{{ HOSTS | default('test_WEB') }}"
  become: yes
  vars:
    mysql_root_password: "rootpa$$"
    mysql_dbuser_password: "dbuserpa$$"

  tasks:
  # MySQL Configuration
  - name: Sets the root password
    mysql_user: name=root host={{ item }} password={{ mysql_root_password }} login_unix_socket="/var/run/mysqld/mysqld.sock"
    with_items:
    - "{{ ansible_hostname }}"
    - 127.0.0.1
    - ::1
    - localhost
  - name: Copy .my.cnf file with root password credentials
    template: src=files/my.cnf.j2 dest=/root/.my.cnf owner=admin mode=0600
  - name: Removes all anonymous user accounts
    mysql_user:
      name: ''
      host_all: yes
      state: absent
      login_user: root
      login_password: "{{ mysql_root_password }}"
  - name: Add dbuser for WordPress to MySQL config
    mysql_user:
      name: dbuser
      password: "{{ mysql_dbuser_password }}"
      host: localhost
      priv: 'wordpressdb.*:ALL,GRANT'
      state: present
      login_user: root
      login_password: "{{ mysql_root_password }}"

Содержимое файла-шаблона my.cnf.j2:

[client]
user=root
password={{ mysql_root_password }}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *