Na centos/rhel możesz łatwo uruchomić Mysql_Secure_Instalation polecenie do skonfigurowania hasła root. Ale na Ubuntu 20.04 LTS, ta metoda nie działa, ponieważ MySQL używa innej wtyczki uwierzytelniania dla źródło użytkownik.
W tym artykule pokaże, jak skonfigurować hasło root MySQL na Centos 8 i Ubuntu 20.04 LTS Linux Rozkłady za pomocą modułów Ansible.
Wymagania wstępne
Jeśli chcesz wypróbować przykłady zawarte w tym artykule,
1) Musisz mieć zainstalowany na komputerze Ansible.
2) Musisz mieć co najmniej hosta Centos/Rhel 8 lub Ubuntu 20.04 Host LTS skonfigurowany do automatyzacji Ansible.
Istnieje wiele artykułów na temat Linuxhint poświęconych instalacji ansible i konfiguracji hostów do automatyzacji ansible. W razie potrzeby możesz je sprawdzić.
Konfigurowanie katalogu projektów
Zanim przejdziemy dalej, skonfigurujemy nowy katalog projektu Ansible, po prostu po to, aby wszystko było nieco zorganizowane.
Aby utworzyć katalog projektu mysql-root-pass/ i wszystkie wymagane podkatalog (w bieżącym katalogu roboczym) uruchom następujące polecenie:
$ mkdir -pv mysql-root-pass/podręczniki, host_vars, grupa_varsPo utworzeniu katalogu projektu przejdź do katalogu projektu, w następujący sposób:
$ CD MySQL-Root-Pass/Stwórz zastępy niebieskie Plik zapasowy, w następujący sposób:
$ nano gospodarzeDodaj nazwy IP hosta lub DNS swojego CentOS/RHEL 8 lub Ubuntu 20.04 Hosty LTS w pliku ekwipunku (jeden host na wiersz), jak pokazano na zrzucie ekranu poniżej.
Po zakończeniu zapisz plik, naciskając + X, śledzony przez Y I .
Tutaj stworzyłem dwie grupy, Centos8, I Ubuntu20. Centos8 Grupa ma nazwę DNS mojego gospodarza Centos 8, VM3.Nodekite.com; i Ubuntu20 Grupa ma nazwę DNS mojego Ubuntu 20.04 LTS Host, VM7.Nodekite.com.
Utwórz plik konfiguracyjny Ansible Ansible.CFG W katalogu projektu, w następujący sposób:
$ nano ansible.CFGWpisz następujące wiersze w Ansible.CFG plik:
[domyślne]Po zakończeniu zapisz Ansible.CFG plik naciskając + X, śledzony przez Y I .
Spróbuj pingować wszystkich hostów dodanych w swoim zastępy niebieskie Plik zapasowy, w następujący sposób:
$ ansible all -u ansible -m ping
Jak widać, My Centos 8 Host (VM3.Nodekite.com) i Ubuntu 20.04 LTS Host (VM7.Nodekite.com) są dostępne.
Instalowanie MySQL i konfigurowanie hasła roota na CentOS/RHEL 8
W tej sekcji pokaże, jak zainstalować serwer bazy danych MySQL i skonfigurować hasło root na Centos 8 za pomocą ansible. Ta sama procedura powinna działać na RHEL 8.
Utwórz nowy poradnik Ansible instalt_mysql_centos8.Yaml w podręczniki/ katalog, jak następuje:
$ Nano Playbooks/instalt_mysql_centos8.YamlWpisz następujące wiersze w instalt_mysql_centos8.Yaml plik:
- Gospodarze: Centos8Po zakończeniu naciśnij + X, śledzony przez Y I , Aby uratować instalt_mysql_centos8.Yaml plik.
Poniższa linia mówi Ansible, aby uruchomił podręcznik instalt_mysql_centos8.Yaml na każdym gospodarze w Centos8 Grupa.
Tutaj zdefiniowałem 5 zadań.
Pierwsze zadanie aktualizuje pamięć podręczną repozytorium pakietów DNF Centos 8 za pomocą Ansible DNF moduł.
Drugie zadanie instaluje pakiet serwera MySQL MySQL-Server Korzystanie z Ansible DNF moduł.
Trzecie zadanie instaluje pakiet klienta MySQL Mysql Korzystanie z Ansible DNF moduł.
Czwarte zadanie zapewnia, że Mysqld Usługa działa i została dodana do uruchamiania systemu, aby automatycznie uruchamia się w rozruchu.
Piąte zadanie instaluje bibliotekę Python 3 Mysql Pymysql. Jest to wymagane do uzyskania dostępu do MySQL z Ansible.
Uruchom instalt_mysql_centos8.Yaml Playbook, w następujący sposób:
$ Ansible-Playbook Playbooks/Instalt_Mysql_Centos8.YamlJak widać, podręcznik instalt_mysql_centos8.Yaml działał pomyślnie.
Na moim hoście Centos 8 mogę uzyskać dostęp do MySQL jako źródło Użytkownik bez hasła, jak widać na zrzucie ekranu poniżej:
$ sudo mysql -u rootTeraz, gdy jest zainstalowany serwer MySQL, nadszedł czas, aby skonfigurować hasło rootowe dla serwera MySQL.
Utwórz nowy plik zmiennej grupy Centos8 (w grupa_vars/ katalog) dla Centos8 grupa, jak następuje:
$ Nano Group_Vars/Centos8Dodaj nową zmienną mysql_pass z hasłem root (w moim przypadku, sekret) Chcesz ustawić, jak pokazano na zrzucie ekranu poniżej.
Po zakończeniu naciśnij + X, śledzony przez Y I
Utwórz nowy podręcznik set_root_pass_centos8.Yaml Z następującym poleceniem:
$ Nano Playbooks/set_root_pass_centos8.YamlWpisz następujące wiersze w set_root_pass_centos8.Yaml plik:
- Gospodarze: Centos8Po zakończeniu naciśnij + X, śledzony przez Y I , Aby uratować set_root_pass_centos8.Yaml plik.
Ten podręcznik używa mysql_user Moduł ansible do ustawienia hasła root MySQL.
login_host, login_user, I Login Hasło Opcje mysql_user Moduł ansible służy odpowiednio do ustawienia bieżącej nazwy hosta logowania MySQL, nazwy użytkownika i hasła. Domyślnie nazwa hosta logowania MySQL (login_host) jest Lokalny Gospodarz, nazwa użytkownika logowania (login_user) jest źródło, i login hasło (Login Hasło) jest pusty (") na Centos 8.
hasło opcja mysql_user Moduł ansible służy do ustawienia nowego hasła MySQL Root, tutaj. Hasło root MySQL będzie wartością mysql_pass Zmienna grupowa, która została ustalona wcześniej.
Uruchom podręcznik set_root_pass_centos8.Yaml Z następującym poleceniem:
$ Ansible-Playbook Playbooks/set_root_pass_centos8.YamlPoradnik działał pomyślnie, jak widać na zrzucie ekranu poniżej:
Jak widać, nie mogę już zalogować się na serwerze MySQL bez hasła root.
Aby zalogować się do serwera MySQL jako źródło Użytkownik z hasłem, uruchom następujące polecenie na hoście CentOS 8:
$ sudo mysql -u root -p
Wpisz hasło roota, które ustawiłeś za pomocą ansible, i naciśnij .
Powinieneś zostać zalogowany na serwerze MySQL jako źródło użytkownik.
Instalowanie MySQL i konfigurowanie hasła roota na Ubuntu 20.04 LTS
W tej sekcji pokaże, jak zainstalować serwer bazy danych MySQL i skonfigurować hasło root na Ubuntu 20.04 LTS za pomocą ansible.
Utwórz nowy poradnik Ansible instalt_mysql_ubuntu20.Yaml w podręczniki/ katalog, jak następuje:
$ Nano Playbooks/install_mysql_ubuntu20.YamlWpisz następujące wiersze w instalt_mysql_ubuntu20.Yaml plik:
- Gospodarze: Ubuntu20Po zakończeniu naciśnij + X, śledzony przez Y I , Aby uratować instalt_mysql_ubuntu20.Yaml plik.
Poniższy wiersz mówi Ansible, aby uruchomił podręcznik instalt_mysql_ubuntu20.Yaml na każdym gospodarze w Ubuntu20 Grupa:
Tutaj zdefiniowałem 5 zadań.
Pierwsze zadanie aktualizuje pamięć podręczną repozytorium pakietów Apt Ubuntu 20.04 LTS za pomocą Ansible trafny moduł.
Drugie zadanie instaluje pakiet serwera MySQL MySQL-Server Korzystanie z Ansible trafny moduł.
Trzecie zadanie instaluje pakiet klienta MySQL Mysql Korzystanie z Ansible trafny moduł.
Czwarte zadanie zapewnia, że Mysql Usługa działa i została dodana do uruchamiania systemu, aby automatycznie uruchamia się w rozruchu.
Piąte zadanie instaluje bibliotekę Python 3 Mysql Pymysql. Jest to wymagane, aby uzyskać dostęp do MySQL z Ansible.
Uruchom instalt_mysql_ubuntu20.Yaml Playbook, w następujący sposób:
$ Ansible-Playbook Playbooks/Instalt_Mysql_ubuntu20.YamlJak widać, podręcznik instalt_mysql_ubuntu20.Yaml działał pomyślnie.
Na moim Ubuntu 20.04 LTS Host, mogę uzyskać dostęp do MySQL jako źródło użytkownik bez hasła, jak widać na zrzucie ekranu poniżej.
$ sudo mysql -u rootTeraz, gdy jest zainstalowany serwer MySQL, nadszedł czas, aby skonfigurować hasło rootowe dla serwera MySQL.
Utwórz nowy plik zmiennej grupy Ubuntu20 (w grupa_vars/ katalog) dla Ubuntu20 grupa, jak następuje:
$ Nano Group_Vars/Ubuntu20Dodaj nową zmienną, mysql_pass, z hasłem root (w moim przypadku, bardzo sext) że chciałbyś ustawić, jak pokazano na zrzucie ekranu poniżej.
Po zakończeniu naciśnij + X, śledzony przez Y I , Aby zapisać plik.
Utwórz nowy podręcznik set_root_pass_ubuntu20.Yaml Z następującym poleceniem:
$ Nano Playbooks/set_root_pass_ubuntu20.YamlWpisz następujące wiersze w set_root_pass_ubuntu20.Yaml plik:
- Gospodarze: Ubuntu20Po zakończeniu naciśnij + X, śledzony przez Y I , Aby uratować set_root_pass_ubuntu20.Yaml plik.
Tutaj zdefiniowałem trzy zadania.
Pierwsze zadanie zmienia wtyczkę uwierzytelniania MySQL źródło użytkownik z Auth_socket Do mysql_native_password.
Drugie zadanie przeładowuje wszystkie uprawnienia.
Trzecie zadanie używa mysql_user Moduł ansible do ustawienia hasła root MySQL.
W trzecim zadaniu login_host, login_user, I Login Hasło Opcje mysql_user Moduł ansible służy odpowiednio do ustawienia bieżącej nazwy hosta logowania MySQL, nazwy użytkownika i hasła. Domyślnie nazwa hosta logowania MySQL (login_host) Jest Lokalny Gospodarz, nazwa użytkownika logowania (login_user) Jest źródło, i login hasło (Login Hasło) jest pusty (") w systemie.
Tutaj hasło opcja mysql_user Moduł ansible służy do ustawienia nowego hasła MySQL Root. Hasło root MySQL będzie wartością mysql_pass zmienna grupowa, którą ustawiłem wcześniej, w Group_vars/Ubuntu20 plik.
Uruchom podręcznik set_root_pass_ubuntu20.Yaml Z następującym poleceniem:
$ Ansible-Playbook Playbooks/set_root_pass_ubuntu20.YamlPoradnik działał pomyślnie, jak widać na zrzucie ekranu poniżej:
Jak widać, nie mogę już zalogować się na serwerze MySQL bez hasła root.
$ sudo mysql -u rootAby zalogować się na serwerze MySQL jako użytkownik root z hasłem ustawionym, uruchom następujące polecenie na Ubuntu 20.04 LTS Host:
$ sudo mysql -u root -pWpisz hasło roota, które ustawiłeś za pomocą ansible i naciśnij .
Powinieneś zostać zalogowany na serwerze MySQL jako użytkownik root.
Wniosek
W tym artykule pokazano, jak zainstalować serwer MySQL i ustawić hasło root MySQL na Centos 8 i Ubuntu 20.04 LTS Linux Rozkłady za pomocą Ansible. W tym artykule wykorzystano mysql_user Moduł ansible do konfigurowania hasła root MySQL. Możesz użyć tego modułu, aby zmienić hasło root MySQL, utworzyć nowych użytkowników MySQL i przeglądać wiele innych funkcji zarządzania użytkownikami.
Aby uzyskać więcej informacji na temat mysql_user Moduł, sprawdź oficjalną dokumentację modułu MySQL_User.