Ansible

Как установить корневой пароль MySQL с помощью Ansible

Как установить корневой пароль MySQL с помощью Ansible
Большинство дистрибутивов Linux, включая CentOS / RHEL и Ubuntu / Debian, не устанавливают пароль root MySQL автоматически. Поскольку пароль root MySQL не устанавливается автоматически, можно войти в консоль MySQL как root без пароля. Это не очень хорошо для безопасности.

В CentOS / RHEL вы можете легко запустить mysql_secure_installation команда для установки пароля root. Но на Ubuntu 20.04 LTS, этот метод не работает, так как MySQL использует другой плагин аутентификации для корень Пользователь.

Эта статья покажет вам, как установить пароль root для MySQL в CentOS 8 и Ubuntu 20.04 Дистрибутивы LTS Linux с использованием модулей Ansible.

Предпосылки


Если вы хотите попробовать примеры, включенные в эту статью,

1) На вашем компьютере должен быть установлен Ansible.

2) У вас должен быть как минимум хост CentOS / RHEL 8 или Ubuntu 20.04 Хост LTS, настроенный для автоматизации Ansible.

На LinuxHint есть много статей, посвященных установке Ansible и настройке хостов для автоматизации Ansible. Вы можете проверить это при необходимости.

Настройка каталога проекта

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

Чтобы создать каталог проекта mysql-root-pass / и все необходимые подкаталоги (в вашем текущем рабочем каталоге), выполните следующую команду:

$ mkdir -pv mysql-root-pass / playbooks, host_vars, group_vars

После создания каталога проекта перейдите в каталог проекта, как показано ниже:

$ cd mysql-root-pass /

Создать хозяева файл инвентаризации, как показано ниже:

$ nano хосты

Добавьте IP или DNS-имена хоста вашего CentOS / RHEL 8 или Ubuntu 20.04 хоста LTS в файле инвентаризации (по одному хосту в строке), как показано на скриншоте ниже.

Как только вы закончите, сохраните файл, нажав + Икс, с последующим Y а также .

Здесь я создал две группы, centos8, а также убунту20. В centos8 группа имеет DNS-имя моего хоста CentOS 8, vm3.нодекит.ком; и убунту20 группа имеет DNS-имя моего Ubuntu 20.04 Хост LTS, vm7.нодекит.ком.

Создайте файл конфигурации Ansible анзибль.cfg в каталоге вашего проекта следующим образом:

$ нано доступный.cfg

Введите следующие строки в анзибль.cfg файл:

[по умолчанию]
inventory = hosts
host_key_checking = Ложь

Как только вы закончите, сохраните анзибль.cfg файл, нажав + Икс, с последующим Y а также .

Попробуйте проверить связь со всеми хостами, которые вы добавили в свой хозяева файл инвентаризации, как показано ниже:

$ ansible all -u ansible -m пинг

Как видите, мой хост CentOS 8 (vm3.нодекит.com) и Ubuntu 20.04 Хост LTS (vm7.нодекит.com) доступны.

Установка MySQL и настройка пароля root на CentOS / RHEL 8

В этом разделе показано, как установить сервер базы данных MySQL и настроить пароль root в CentOS 8 с помощью Ansible. Та же процедура должна работать на RHEL 8.

Создайте новую версию Ansible playbook install_mysql_centos8.ямл в пьесы / каталог, а именно:

$ nano playbooks / install_mysql_centos8.ямл

Введите следующие строки в install_mysql_centos8.ямл файл:

- хосты: centos8
пользователь: ansible
становятся истинными
задачи:
- имя: Обновить кеш репозитория пакетов DNF
dnf:
update_cache: Истина
- name: Установить сервер MySQL на CentOS 8
dnf:
имя: mysql-server
состояние: настоящее
- name: Установить клиент MySQL на CentOS 8
dnf:
имя: mysql
состояние: настоящее
- имя: Убедитесь, что служба mysqld запущена
услуга:
имя: mysqld
состояние: запущено
enabled: True

- name: Установить библиотеку python3-PyMySQL
dnf:
имя: python3-PyMySQL
состояние: настоящее

Когда вы закончите, нажмите + Икс, с последующим Y а также , чтобы спасти install_mysql_centos8.ямл файл.

Строка ниже сообщает Ansible запустить playbook install_mysql_centos8.ямл на каждом хосте в centos8 группа.

Здесь я определил 5 задач.

Первая задача обновляет кеш репозитория пакетов DNF в CentOS 8 с помощью Ansible dnf модуль.

Вторая задача устанавливает пакет сервера MySQL MySQL-сервер используя Ansible dnf модуль.

Третья задача устанавливает клиентский пакет MySQL MySQL используя Ansible dnf модуль.

Четвертая задача гарантирует, что mysqld служба запущена и была добавлена ​​при запуске системы, чтобы она автоматически запускалась при загрузке.

Пятая задача устанавливает библиотеку Python 3 MySQL pymysql. Это необходимо для доступа к MySQL из Ansible.

Запустить install_mysql_centos8.ямл playbook, как показано ниже:

плейбуки $ ansible-playbook / install_mysql_centos8.ямл

Как видите, playbook install_mysql_centos8.ямл бежал успешно.

На моем хосте CentOS 8 я могу получить доступ к MySQL как корень пользователь без пароля, как вы можете видеть на скриншоте ниже:

$ sudo mysql -u корень

Теперь, когда сервер MySQL установлен, пришло время установить пароль root для сервера MySQL.

Создайте новый файл групповой переменной centos8group_vars / каталог) для centos8 группа, а именно:

$ nano group_vars / centos8

Добавить новую переменную mysql_pass с паролем root (в моем случае, секрет) вы хотите установить, как показано на скриншоте ниже.

Когда вы закончите, нажмите + Икс, с последующим Y а также , сохранить файл.

Создать новую пьесу set_root_pass_centos8.ямл с помощью следующей команды:

$ nano playbooks / set_root_pass_centos8.ямл

Введите следующие строки в set_root_pass_centos8.ямл файл:

- хосты: centos8
пользователь: ansible
становятся истинными
задачи:
- name: установить корневой пароль MySQL
mysql_user:
логин_хост: 'локальный'
login_user: 'корень'
логин Пароль: "
имя: 'корень'
пароль: 'mysql_pass'
состояние: настоящее

Когда вы закончите, нажмите + Икс, с последующим Y а также , чтобы спасти set_root_pass_centos8.ямл файл.

В этом учебнике используется mysql_user Модуль Ansible для установки пароля root MySQL.

В login_host, login_user, а также логин Пароль варианты mysql_user Модуль Ansible используется для установки текущего имени хоста для входа в MySQL, имени пользователя и пароля соответственно. По умолчанию имя хоста для входа в MySQL (login_host) это localhost, имя пользователя для входа (login_user) это корень, и логин пароль (логин Пароль) пустой () на CentOS 8.

В пароль вариант mysql_user Модуль Ansible используется для установки нового пароля root MySQL, здесь. Пароль root MySQL будет значением mysql_pass групповая переменная, которая была установлена ​​ранее.

Запустите playbook set_root_pass_centos8.ямл с помощью следующей команды:

плейбуки $ ansible-playbook / set_root_pass_centos8.ямл

Плейбук успешно запустился, как показано на скриншоте ниже:

Как видите, я больше не могу войти на сервер MySQL без пароля root.

Чтобы войти на сервер MySQL как корень пользователя с паролем, выполните следующую команду на вашем хосте CentOS 8:

$ sudo mysql -u корень -p

Введите пароль root, который вы установили с помощью Ansible, и нажмите .

Вы должны войти на сервер MySQL как корень Пользователь.

Установка MySQL и настройка пароля root в Ubuntu 20.04 LTS

В этом разделе показано, как установить сервер базы данных MySQL и настроить пароль root в Ubuntu 20.04 LTS с использованием Ansible.

Создайте новую пьесу Ansible install_mysql_ubuntu20.ямл в пьесы / каталог, а именно:

$ nano плейбуки / install_mysql_ubuntu20.ямл

Введите следующие строки в install_mysql_ubuntu20.ямл файл:

- хосты: ubuntu20
пользователь: ansible
становятся истинными
задачи:
- name: Обновить кеш репозитория пакетов APT
apt:
update_cache: Истина
- name: Установить сервер MySQL на Ubuntu 20.04 LTS
apt:
имя: mysql-server
состояние: настоящее
- name: Установить клиент MySQL на Ubuntu 20.04 LTS
apt:
имя: mysql-client
состояние: настоящее
- имя: Убедитесь, что служба mysql запущена
услуга:
имя: mysql
состояние: запущено
enabled: True
- name: Установить библиотеку python3-pymysql
apt:
имя: python3-pymysql
состояние: настоящее

Когда вы закончите, нажмите + Икс, с последующим Y а также , чтобы спасти install_mysql_ubuntu20.ямл файл.

Следующая строка сообщает Ansible запустить playbook install_mysql_ubuntu20.ямл на каждом хосте в убунту20 группа:

Здесь я определил 5 задач.

Первая задача обновляет кеш репозитория пакетов APT Ubuntu 20.04 LTS с использованием Ansible подходящий модуль.

Вторая задача устанавливает пакет сервера MySQL MySQL-сервер используя Ansible подходящий модуль.

Третья задача устанавливает клиентский пакет MySQL MySQL используя Ansible подходящий модуль.

Четвертая задача - убедиться, что MySQL служба запущена и была добавлена ​​при запуске системы, чтобы она автоматически запускалась при загрузке.

Пятая задача устанавливает библиотеку Python 3 MySQL pymysql. Это необходимо для доступа к MySQL из Ansible.

Запустить install_mysql_ubuntu20.ямл playbook, как показано ниже:

плейбуки $ ansible-playbook / install_mysql_ubuntu20.ямл

Как видите, playbook install_mysql_ubuntu20.ямл бежал успешно.

На моем Ubuntu 20.04 Хост LTS, я могу получить доступ к MySQL как корень пользователь без пароля, как вы можете видеть на скриншоте ниже.

$ sudo mysql -u корень

Теперь, когда сервер MySQL установлен, пришло время установить пароль root для сервера MySQL.

Создайте новый файл групповой переменной убунту20group_vars / каталог) для убунту20 группа, а именно:

$ нано group_vars / ubuntu20

Добавить новую переменную, mysql_pass, с паролем root (в моем случае, очень секретный), который вы хотите установить, как показано на скриншоте ниже.

Когда вы закончите, нажмите + Икс, с последующим Y а также , сохранить файл.

Создать новую пьесу set_root_pass_ubuntu20.ямл с помощью следующей команды:

$ нано плейбуки / set_root_pass_ubuntu20.ямл

Введите следующие строки в set_root_pass_ubuntu20.ямл файл:

- хосты: ubuntu20
пользователь: ansible
становятся истинными
задачи:
- name: измените плагин аутентификации пользователя root MySQL на mysql_native_password
оболочка: mysql -u root -e 'ОБНОВЛЕНИЕ mysql.пользовательский SET plugin = "mysql_native_password"
ГДЕ user = "root" И host = "localhost" '
- name: Flush Privileges
оболочка: mysql -u root -e 'FLUSH PRIVILEGES'
- name: установить пароль root для MySQL
mysql_user:
логин_хост: 'локальный'
login_user: 'корень'
логин Пароль: "
имя: 'корень'
пароль: 'mysql_pass'
состояние: настоящее

Когда вы закончите, нажмите + Икс, с последующим Y а также , чтобы спасти set_root_pass_ubuntu20.ямл файл.

Здесь я определил три задачи.

Первая задача меняет плагин аутентификации MySQL корень пользователь из auth_socket к mysql_native_password.

Вторая задача перезагружает все привилегии.

Третья задача использует mysql_user Модуль Ansible для установки пароля root MySQL.

В третьей задаче login_host, login_user, а также логин Пароль варианты mysql_user Модуль Ansible используется для установки текущего имени хоста для входа в MySQL, имени пользователя и пароля соответственно. По умолчанию имя хоста для входа в MySQL (login_host) является localhost, имя пользователя для входа (login_user) является корень, и логин пароль (логин Пароль) пустой () в системе.

Здесь пароль вариант mysql_user Модуль Ansible используется для установки нового пароля root MySQL. Пароль root MySQL будет значением mysql_pass групповая переменная, которую я установил ранее, в group_vars / ubuntu20 файл.

Запустите playbook set_root_pass_ubuntu20.ямл с помощью следующей команды:

плейбуки $ ansible-playbook / set_root_pass_ubuntu20.ямл

Плейбук успешно запустился, как вы можете видеть на скриншоте ниже:

Как видите, я больше не могу войти на сервер MySQL без пароля root.

$ sudo mysql -u корень

Чтобы войти на сервер MySQL как пользователь root с заданным паролем, выполните следующую команду на своем Ubuntu 20.04 Хост LTS:

$ sudo mysql -u корень -p

Введите пароль root, который вы установили с помощью Ansible, и нажмите .

Вы должны войти на сервер MySQL как пользователь root.

Заключение

В этой статье показано, как установить сервер MySQL и установить пароль root MySQL в CentOS 8 и Ubuntu 20.04 Дистрибутивы LTS Linux с использованием Ansible. В этой статье использован mysql_user Модуль Ansible для установки пароля root MySQL. Вы можете использовать этот модуль для изменения пароля root MySQL, создания новых пользователей MySQL и, следовательно, для многих других функций управления пользователями.

Для получения дополнительной информации о mysql_user модуль, проверьте официальную документацию модуля mysql_user.

Обзор беспроводной мыши Microsoft Sculpt Touch
Я недавно прочитал о Microsoft Sculpt Touch беспроводная мышь и решил ее купить. Побывав некоторое время, я решил поделиться своим опытом с ним. Эта б...
Экранный трекпад и указатель мыши AppyMouse для планшетов с Windows
Пользователи планшетов часто пропускают указатель мыши, особенно когда они привыкли пользоваться ноутбуками. Смартфоны и планшеты с сенсорным экраном ...
Средняя кнопка мыши не работает в Windows 10
В средняя кнопка мыши помогает пролистывать длинные веб-страницы и экраны с большим объемом данных. Если это прекратится, вы в конечном итоге будете и...