Отговорни

Как да зададете коренна парола на MySQL с помощта на Ansible

Как да зададете коренна парола на MySQL с помощта на Ansible
Повечето дистрибуции на Linux, включително CentOS / RHEL и Ubuntu / Debian, не задават автоматично паролата на MySQL root. Тъй като коренната парола на MySQL не се задава автоматично, човек може да влезе в конзолата на MySQL като корен без никаква парола. Това не е много добре за сигурността.

На CentOS / RHEL можете лесно да стартирате mysql_secure_installation команда за настройка на парола за корен. Но на Ubuntu 20.04 LTS, този метод не работи, тъй като MySQL използва различен плъгин за удостоверяване за корен потребител.

Тази статия ще ви покаже как да настроите корен 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, и ubuntu20. The centos8 group има DNS името на моя хост CentOS 8, vm3.нодеките.com; и ubuntu20 group има DNS името на моя Ubuntu 20.04 LTS домакин, vm7.нодеките.com.

Създайте конфигурационен файл Ansible ансибъл.cfg в директорията на вашия проект, както следва:

$ nano ansible.cfg

Въведете следните редове в ансибъл.cfg файл:

[по подразбиране]
инвентар = хостове
host_key_checking = Невярно

След като приключите, запазете ансибъл.cfg файл, като натиснете + х, следван от Y и .

Опитайте да пингнете всички хостове, които сте добавили във вашия домакини инвентарен файл, както следва:

$ ansible all -u ansible -m ping

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

Инсталиране на MySQL и настройка на root парола на CentOS / RHEL 8

Този раздел ще ви покаже как да инсталирате сървъра на базата данни MySQL и да настроите корен парола на CentOS 8 с помощта на Ansible. Същата процедура трябва да работи и за RHEL 8.

Създайте новата книга за игра Ansible install_mysql_centos8.ямъл в книги за игри / директория, както следва:

$ nano playbooks / install_mysql_centos8.ямъл

Въведете следните редове в install_mysql_centos8.ямъл файл:

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

- име: Инсталирайте библиотека python3-PyMySQL
dnf:
име: python3-PyMySQL
състояние: присъства

След като приключите, натиснете + х, следван от Y и , за да запазите install_mysql_centos8.ямъл файл.

Редът по-долу казва на Ansible да стартира книгата за игри 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 playbooks / install_mysql_centos8.ямъл

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

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

$ sudo mysql -u корен

След като сървърът MySQL е инсталиран, е време да настроите корен парола за сървъра 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
стана: Вярно
задачи:
- име: Задайте коренна парола на MySQL
mysql_user:
login_host: 'localhost'
login_user: 'root'
парола за вход: "
име: „корен“
парола: 'mysql_pass'
състояние: присъства

След като приключите, натиснете + х, следван от Y и , за да запазите set_root_pass_centos8.ямъл файл.

Тази книга за употреба използва mysql_user Ansible модул за задаване на парола за корен на MySQL.

The login_host, login_user, и парола за вход опции на mysql_user Модулът Ansible се използва за задаване на текущото име на хост за влизане в MySQL, потребителско име и парола, съответно. По подразбиране името на хоста за вход в MySQL (login_host) е localhost, потребителското име за вход (login_user) е корен, и влизането парола (парола за вход) празно е () на CentOS 8.

The парола опция на mysql_user Модулът Ansible се използва за задаване на нова парола за корен на MySQL тук. Коренната парола на MySQL ще бъде стойността на mysql_pass групова променлива, която е зададена по-рано.

Стартирайте книгата за игри set_root_pass_centos8.ямъл със следната команда:

$ ansible-playbook playbooks / set_root_pass_centos8.ямъл

Книгата за игри се изпълнява успешно, както се вижда на екранната снимка по-долу:

Както можете да видите, вече не мога да вляза в MySQL сървъра без корен парола.

За да влезете в MySQL сървъра като корен потребител с парола, изпълнете следната команда на вашия хост CentOS 8:

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

Въведете основната парола, която сте задали с помощта на Ansible, и натиснете .

Трябва да сте влезли в MySQL сървъра като корен потребител.

Инсталиране на MySQL и настройване на root парола на Ubuntu 20.04 LTS

Този раздел ще ви покаже как да инсталирате сървъра на базата данни MySQL и да настроите корен парола на Ubuntu 20.04 LTS с помощта на Ansible.

Създайте нова книга за игра Ansible install_mysql_ubuntu20.ямъл в книги за игри / директория, както следва:

$ nano playbooks / install_mysql_ubuntu20.ямъл

Въведете следните редове в install_mysql_ubuntu20.ямъл файл:

- хостове: ubuntu20
потребител: ansible
стана: Вярно
задачи:
- name: Актуализирайте кеша на хранилището на APT Package
подходящ:
update_cache: Вярно
- име: Инсталирайте MySQL сървър на Ubuntu 20.04 LTS
подходящ:
име: mysql-сървър
състояние: присъства
- име: Инсталирайте MySQL клиент на Ubuntu 20.04 LTS
подходящ:
име: mysql-клиент
състояние: присъства
- name: Уверете се, че услугата mysql работи
обслужване:
име: mysql
състояние: започнало
разрешено: Вярно
- име: Инсталирайте библиотека python3-pymysql
подходящ:
име: python3-pymysql
състояние: присъства

След като приключите, натиснете + х, следван от Y и , за да запазите install_mysql_ubuntu20.ямъл файл.

Следващият ред казва на Ansible да стартира книгата за игри install_mysql_ubuntu20.ямъл на всеки хост в ubuntu20 група:

Тук съм дефинирал 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 playbooks / install_mysql_ubuntu20.ямъл

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

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

$ sudo mysql -u корен

След като сървърът MySQL е инсталиран, е време да настроите корен парола за сървъра MySQL.

Създайте нов файл с променлива на групата ubuntu20group_vars / директория) за ubuntu20 група, както следва:

$ nano group_vars / ubuntu20

Добавете нова променлива, mysql_pass, с root паролата (в моя случай, много тайна), който искате да зададете, както е показано на екранната снимка по-долу.

След като приключите, натиснете + х, следван от Y и , за да запазите файла.

Създайте нова книга за игри set_root_pass_ubuntu20.ямъл със следната команда:

$ nano playbooks / set_root_pass_ubuntu20.ямъл

Въведете следните редове в set_root_pass_ubuntu20.ямъл файл:

- хостове: ubuntu20
потребител: ansible
стана: Вярно
задачи:
- име: Променете приставката за удостоверяване на корен MySQL потребител на mysql_native_password
черупка: mysql -u root -e 'АКТУАЛИЗИРАНЕ mysql.потребител SET плъгин = "mysql_native_password"
КЪДЕ user = "root" И host = "localhost" '
- име: Привилегии за флъш
черупка: mysql -u корен -e „ПРИВИЛЕГИИ НА FLUSH“
- име: Задайте парола за корен на MySQL
mysql_user:
login_host: 'localhost'
login_user: 'root'
парола за вход: "
име: „корен“
парола: 'mysql_pass'
състояние: присъства

След като приключите, натиснете + х, следван от Y и , за да запазите set_root_pass_ubuntu20.ямъл файл.

Тук съм дефинирал три задачи.

Първата задача променя приставката за удостоверяване на MySQL корен потребител от auth_socket да се mysql_native_password.

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

Третата задача използва mysql_user Ansible модул за задаване на парола за корен на MySQL.

В третата задача, login_host, login_user, и парола за вход опции на mysql_user Модулът Ansible се използва за задаване на текущото име на хост за влизане в MySQL, потребителско име и парола, съответно. По подразбиране името на хоста за вход в MySQL (login_host) е localhost, потребителското име за вход (login_user) е корен, и входът парола (парола за вход) празно е () в системата.

Ето, парола опция на mysql_user Модулът Ansible се използва за задаване на нова парола за корен на MySQL. Коренната парола на MySQL ще бъде стойността на mysql_pass групова променлива, която зададох по-рано, в group_vars / ubuntu20 файл.

Стартирайте книгата за игри set_root_pass_ubuntu20.ямъл със следната команда:

$ ansible-playbook playbooks / set_root_pass_ubuntu20.ямъл

Както можете да видите на екранната снимка по-долу, книгата за игра се изпълнява успешно:

Както можете да видите, вече не мога да вляза в MySQL сървъра без корен парола.

$ sudo mysql -u корен

За да влезете в MySQL сървъра като root потребител със зададената парола, изпълнете следната команда на вашия Ubuntu 20.04 LTS домакин:

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

Въведете основната парола, която сте задали с помощта на Ansible и натиснете .

Трябва да сте влезли в MySQL сървъра като корен потребител.

Заключение

Тази статия ви показа как да инсталирате MySQL сървъра и да зададете парола на MySQL root на CentOS 8 и Ubuntu 20.04 LTS Linux дистрибуции, използващи Ansible. Тази статия използва mysql_user Отговарящ модул за настройка на коренната парола на MySQL. Можете да използвате този модул за промяна на паролата на MySQL, създаване на нови потребители на MySQL и преди много други функции за управление на потребители.

За повече информация относно mysql_user модул, проверете официалната документация на модула mysql_user.

Най-добрите емулатори на игрови конзоли за Linux
Тази статия ще изброи популярния софтуер за емулация на игрова конзола, наличен за Linux. Емулацията е слой за софтуерна съвместимост, който емулира х...
Най-добрите дистрибуции на Linux за игри през 2021 г
Операционната система Linux е изминала дълъг път от първоначалния си, прост, базиран на сървъра външен вид. Тази операционна система се подобри неимов...
Как да заснемете и поточно предадете игралната си сесия на Linux
В миналото играта на игри се смяташе само за хоби, но с течение на времето игралната индустрия отбеляза огромен ръст по отношение на технологиите и бр...