Назад | Перейти на главную страницу

Как сделать mysql_secure_installation через ansible playbook?

Мне удалось установить Apache Mysql / Mariadb и PHP с помощью playbook. Как я могу сделать mysql_secure_installation используя анзибль?

Я новичок в Ansible. Я хочу установить новый пароль для сервера MySQL и ответить на все вопросы безопасности через playbook.

По причинам идемпотентности рекомендуется реализовать шаги по упрочнению, выполняемые mysql_secure_installation с выделенными задачами Ansible вместо выполнения mysql_secure_installation через Ansible напрямую.

mysql_secure_installation делает следующее:

  • установить пароль root
  • удалить анонимных пользователей
  • удалить удаленный доступ root
  • удалить тестовую базу данных

Эти задачи по усилению защиты можно реализовать с помощью Ansible следующим образом:

- name: test database is absent
  mysql_db: name=test state=absent
  when: mysql_remove_test_database

Проверять, выписываться Репозиторий защиты MySQL от dev-sec для полного примера, как реализовать mysql_secure_installation шаги с задачами Ansible.

Я сам реализовал это для своих установок MariaDB некоторое время назад, и прежде чем я доверял кому-либо еще делать это правильно. Вот шаги, которые я выполнил:

  # mysql_secure_installation
- name: Update MariaDB root password
  mysql_user: name=root host={{item}} password={{mysql_root_password}}
  with_items:
    - 127.0.0.1
    - ::1
    - localhost

- name: Set ~/.my.cnf file
  template: src=dotmy.cnf.j2 dest=/root/.my.cnf mode=0600

  # mysql_secure_installation
- name: Delete anonymous MySQL user
  mysql_user: name="" host={{item}} state=absent
  with_items:
    - localhost
    - "{{ansible_nodename}}"

  # mysql_secure_installation
- name: Delete Hostname based MySQL user
  mysql_user: name=root host="{{ansible_nodename}}" state=absent

  # mysql_secure_installation
- name: Remove MySQL test database
  mysql_db: name=test state=absent

Вам нужно будет решить, как создать mysql_root_password сами.