A CentOS / RHEL-en egyszerűen futtathatja a mysql_secure_installation parancsot a root jelszó beállításához. De az Ubuntu 20-on.04 LTS, ez a módszer nem működik, mivel a MySQL egy másik hitelesítési plugint használ a gyökér felhasználó.
Ez a cikk megmutatja, hogyan állíthat be MySQL gyökér jelszót a CentOS 8 és az Ubuntu 20 rendszereken.04 LTS Linux disztribúciók Ansible modulokkal.
Előfeltételek
Ha ki szeretné próbálni a cikkben szereplő példákat,
1) A számítógépére telepítve kell lennie az Ansible programnak.
2) Legalább CentOS / RHEL 8 gazdagéppel vagy Ubuntu 20-zal kell rendelkeznie.04 LTS állomás konfigurálva az Ansible automatizáláshoz.
A LinuxHint-en számos cikk foglalkozik az Ansible telepítésével és a gazdagépek konfigurálásával az Ansible automatizáláshoz. Szükség esetén megnézheti ezeket.
Projektkönyvtár beállítása
Mielőtt továbblépnénk, létrehozunk egy új Ansible projekt könyvtárat, csak azért, hogy a dolgok kissé rendezettek legyenek.
A projekt könyvtár létrehozása mysql-root-pass / és az összes szükséges alkönyvtárat (az aktuális munkakönyvtárban), futtassa a következő parancsot:
$ mkdir -pv mysql-root-pass / playbookok, host_vars, group_vars
A projektkönyvtár létrehozása után lépjen a projektkönyvtárba az alábbiak szerint:
$ cd mysql-root-pass /
Hozzon létre egy otthont ad leltárállomány, az alábbiak szerint:
$ nano házigazdák
Adja hozzá a CentOS / RHEL 8 vagy az Ubuntu 20 gazdagépének IP- vagy DNS-nevét.04 LTS gazdagépek a készletfájlban (soronként egy gazdagép), az alábbi képernyőképen látható módon.
Ha végzett, mentse a fájlt a gombbal
Itt két csoportot hoztam létre, centos8, és ubuntu20. A centos8 csoport rendelkezik a CentOS 8 gazdagépem DNS-nevével, vm3.nodekite.com; és a ubuntu20 csoport rendelkezik az Ubuntu 20 DNS nevével.04 LTS host, vm7.nodekite.com.
Hozzon létre egy Ansible konfigurációs fájlt lehetséges.vö a projektkönyvtárban, az alábbiak szerint:
$ nano ansible.vö
Írja be a következő sorokat a lehetséges.vö fájl:
[alapértelmezések]leltár = hosztok
host_key_checking = Hamis
Ha elkészült, mentse a lehetséges.vö fájl megnyomásával
Próbálja meg pingelni az összes gazdagépet, amelyet hozzáadott a otthont ad leltárállomány, az alábbiak szerint:
$ ansible all -u ansible -m ping
Amint láthatja, a CentOS 8 gazdagépem (vm3.nodekite.com) és az Ubuntu 20.04 LTS gazdagép (vm7.nodekite.com) hozzáférhetőek.
A MySQL telepítése és a root jelszó beállítása a CentOS / RHEL 8-ra
Ez a szakasz bemutatja, hogyan kell telepíteni a MySQL adatbázis-kiszolgálót, és hogyan lehet beállítani a root jelszót a CentOS 8-on az Ansible használatával. Ugyanennek az eljárásnak működnie kell az RHEL 8 esetében is.
Hozzon létre egy új Ansible játékkönyvet install_mysql_centos8.yaml ban,-ben játékkönyvek / könyvtárat, az alábbiak szerint:
$ nano playbooks / install_mysql_centos8.yaml
Írja be a következő sorokat a install_mysql_centos8.yaml fájl:
- házigazdák: centos8felhasználó: ansible
vált: Igaz
feladatok:
- név: A DNF csomag-tárház gyorsítótárának frissítése
dnf:
update_cache: Igaz
- név: Telepítse a MySQL szervert a CentOS 8-ra
dnf:
név: mysql-server
állapot: jelen
- név: Telepítse a MySQL klienst a CentOS 8-ra
dnf:
név: mysql
állapot: jelen
- név: Ellenőrizze, hogy a mysqld szolgáltatás fut-e
szolgáltatás:
név: mysqld
állapot: kezdődött
engedélyezve: Igaz
- név: Telepítse a python3-PyMySQL könyvtárat
dnf:
név: python3-PyMySQL
állapot: jelen
Ha végzett, nyomja meg a gombot
Az alábbi sor azt mondja az Ansible számára, hogy futtassa a playbookot install_mysql_centos8.yaml a centos8 csoport.
Itt 5 feladatot definiáltam.
Az első feladat az Ansible használatával frissíti a CentOS 8 DNF csomagtárházának gyorsítótárát dnf modul.
A második feladat telepíti a MySQL szerver csomagot mysql-server az Ansible segítségével dnf modul.
A harmadik feladat telepíti a MySQL kliens csomagot mysql az Ansible segítségével dnf modul.
A negyedik feladat biztosítja, hogy a mysqld szolgáltatás fut, és hozzá lett adva a rendszer indításához, hogy automatikusan elinduljon indításkor.
Az ötödik feladat telepíti a Python 3 MySQL könyvtárat pymysql. Erre a MySQL eléréséhez van szükség az Ansible alkalmazásból.
Futtassa a install_mysql_centos8.yaml játékkönyv, az alábbiak szerint:
$ ansible-playbook playbooks / install_mysql_centos8.yaml
Mint látható, a játékkönyv install_mysql_centos8.yaml sikeresen futott.
CentOS 8 gazdagépemen elérhetem a MySQL-t mint gyökér felhasználó jelszó nélkül, amint az az alábbi képernyőképen látható:
$ sudo mysql -u gyökér
Most, hogy a MySQL szerver telepítve van, itt az ideje beállítani a MySQL szerver gyökér jelszavát.
Hozza létre az új csoportváltozó fájlt centos8 (ban,-ben group_vars / könyvtár) a centos8 csoport, az alábbiak szerint:
$ nano group_vars / centos8
Adjon hozzá egy új változót mysql_pass a root jelszóval (az én esetemben, titok), amelyet beállítani szeretne, az alábbi képernyőképen látható módon.
Ha végzett, nyomja meg a gombot
Hozzon létre egy új játékkönyvet set_root_pass_centos8.yaml a következő paranccsal:
$ nano playbooks / set_root_pass_centos8.yaml
Írja be a következő sorokat a set_root_pass_centos8.yaml fájl:
- házigazdák: centos8felhasználó: ansible
vált: Igaz
feladatok:
- név: Állítsa be a MySQL gyökér jelszavát
mysql_user:
login_host: 'localhost'
login_user: 'root'
bejelentkezési jelszó: "
név: 'gyökér'
jelszó: 'mysql_pass'
állapot: jelen
Ha végzett, nyomja meg a gombot
Ez a játékkönyv a mysql_user Lehetséges modul a MySQL root jelszó beállításához.
A login_host, login_user, és bejelentkezési jelszó lehetőségei mysql_user Egy lehetséges modult használnak az aktuális MySQL bejelentkezési gazdagép, felhasználói név és jelszó beállítására. Alapértelmezés szerint a MySQL bejelentkezési gazdagépnév (login_host) az a helyi kiszolgáló, a bejelentkezési felhasználónév (login_user) az a gyökér, és a bejelentkezés Jelszó (bejelentkezési jelszó) üres (”) a CentOS 8-on.
A Jelszó a mysql_user Egy lehetséges modult használunk egy új MySQL root jelszó beállításához. A MySQL root jelszó lesz a mysql_pass a korábban beállított csoportváltozó.
Futtassa a játékkönyvet set_root_pass_centos8.yaml a következő paranccsal:
$ ansible-playbook playbooks / set_root_pass_centos8.yaml
A játékkönyv sikeresen futott, amint az az alábbi képernyőképen látható:
Mint láthatja, root jelszó nélkül már nem tudok bejelentkezni a MySQL szerverre.
Bejelentkezés a MySQL szerverre, mint gyökér jelszóval rendelkező felhasználó esetén futtassa a következő parancsot a CentOS 8 gazdagépén:
$ sudo mysql -u root -p
Írja be az Ansible használatával beállított root jelszót, és nyomja meg a gombot
Be kell jelentkeznie a MySQL szerverre, mint gyökér felhasználó.
A MySQL telepítése és a root jelszó beállítása az Ubuntu 20-ra.04 LTS
Ez a szakasz bemutatja, hogyan kell telepíteni a MySQL adatbázis-kiszolgálót, és hogyan kell beállítani a root jelszót az Ubuntu 20-ra.04 LTS az Ansible használatával.
Hozzon létre egy új Ansible játékkönyvet install_mysql_ubuntu20.yaml ban,-ben játékkönyvek / könyvtárat, az alábbiak szerint:
$ nano playbooks / install_mysql_ubuntu20.yaml
Írja be a következő sorokat a install_mysql_ubuntu20.yaml fájl:
- házigazdák: ubuntu20felhasználó: ansible
vált: Igaz
feladatok:
- név: Frissítse az APT-csomag tárház gyorsítótárát
apt:
update_cache: Igaz
- név: Telepítse a MySQL szervert az Ubuntu 20-ra.04 LTS
apt:
név: mysql-server
állapot: jelen
- név: Telepítse a MySQL klienst az Ubuntu 20-ra.04 LTS
apt:
név: mysql-client
állapot: jelen
- név: Győződjön meg arról, hogy a mysql szolgáltatás fut
szolgáltatás:
név: mysql
állapot: kezdődött
engedélyezve: Igaz
- név: Telepítse a python3-pymysql könyvtárat
apt:
név: python3-pymysql
állapot: jelen
Ha végzett, nyomja meg a gombot
A következő sor azt mondja az Ansible-nak, hogy futtassa a játékkönyvet install_mysql_ubuntu20.yaml a ubuntu20 csoport:
Itt 5 feladatot definiáltam.
Az első feladat frissíti az Ubuntu 20 APT csomagtárának gyorsítótárát.04 LTS az Ansible segítségével találó modul.
A második feladat telepíti a MySQL szerver csomagot mysql-server az Ansible segítségével találó modul.
A harmadik feladat telepíti a MySQL kliens csomagot mysql az Ansible segítségével találó modul.
A negyedik feladat biztosítja, hogy a mysql szolgáltatás fut, és hozzá lett adva a rendszer indításához, hogy automatikusan elinduljon indításkor.
Az ötödik feladat telepíti a Python 3 MySQL könyvtárat pymysql. Erre a MySQL eléréséhez van szükség az Ansible alkalmazásból.
Futtassa a install_mysql_ubuntu20.yaml játékkönyv, az alábbiak szerint:
$ ansible-playbook playbooks / install_mysql_ubuntu20.yaml
Mint látható, a játékkönyv install_mysql_ubuntu20.yaml sikeresen futott.
Az Ubuntu 20-on.04 LTS gazdagép, a MySQL-hez hozzáférhetek gyökér felhasználó jelszó nélkül, amint az az alábbi képernyőképen látható.
$ sudo mysql -u gyökér
Most, hogy a MySQL szerver telepítve van, itt az ideje beállítani a MySQL szerver gyökér jelszavát.
Hozzon létre egy új csoportváltozó fájlt ubuntu20 (ban,-ben group_vars / könyvtár) a ubuntu20 csoport, az alábbiak szerint:
$ nano group_vars / ubuntu20
Adjon hozzá egy új változót, mysql_pass, a root jelszóval (az én esetemben, titok), amelyet beállítani szeretne, az alábbi képernyőképen látható módon.
Ha végzett, nyomja meg a gombot
Hozzon létre egy új játékkönyvet set_root_pass_ubuntu20.yaml a következő paranccsal:
$ nano playbooks / set_root_pass_ubuntu20.yaml
Írja be a következő sorokat a set_root_pass_ubuntu20.yaml fájl:
- házigazdák: ubuntu20felhasználó: ansible
vált: Igaz
feladatok:
- név: Változtassa a MySQL gyökér felhasználó hitelesítési bővítményét mysql_native_password értékre
shell: mysql -u root -e 'UPDATE mysql.felhasználói SET plugin = "mysql_native_password"
WHERE user = "root" ÉS host = "localhost" '
- név: Flush privilégiumok
shell: mysql -u gyökér -e 'FLUSH PRIVILEGES'
- név: Állítsa be a MySQL root jelszavát
mysql_user:
login_host: 'localhost'
login_user: 'root'
bejelentkezési jelszó: "
név: 'gyökér'
jelszó: 'mysql_pass'
állapot: jelen
Ha végzett, nyomja meg a gombot
Itt három feladatot határoztam meg.
Az első feladat megváltoztatja a MySQL hitelesítési bővítményét gyökér felhasználó innen: auth_socket nak nek mysql_native_password.
A második feladat újratölti az összes jogosultságot.
A harmadik feladat a mysql_user Lehetséges modul a MySQL root jelszó beállításához.
A harmadik feladatban az login_host, login_user, és bejelentkezési jelszó lehetőségei mysql_user Egy lehetséges modult használnak az aktuális MySQL bejelentkezési gazdagép, felhasználói név és jelszó beállítására. Alapértelmezés szerint a MySQL bejelentkezési gazdagépnév (login_host) van helyi kiszolgáló, a bejelentkezési felhasználónév (login_user) van gyökér, és a bejelentkezés Jelszó (bejelentkezési jelszó) üres (”) a rendszeren.
Itt a Jelszó a mysql_user Egy lehetséges modult használnak egy új MySQL root jelszó beállításához. A MySQL root jelszó lesz a mysql_pass csoport változó, amelyet korábban beállítottam a group_vars / ubuntu20 fájl.
Futtassa a játékkönyvet set_root_pass_ubuntu20.yaml a következő paranccsal:
$ ansible-playbook playbooks / set_root_pass_ubuntu20.yaml
A játékkönyv sikeresen futott, amint az az alábbi képernyőképen is látható:
Mint láthatja, root jelszó nélkül már nem tudok bejelentkezni a MySQL szerverre.
$ sudo mysql -u gyökér
Ha a beállított jelszóval root felhasználóként szeretne bejelentkezni a MySQL szerverre, futtassa a következő parancsot az Ubuntu 20-on.04 LTS host:
$ sudo mysql -u root -p
Írja be az Ansible használatával beállított root jelszót, és nyomja meg a gombot
Gyökérfelhasználóként be kell jelentkeznie a MySQL szerverre.
Következtetés
Ez a cikk bemutatta, hogyan kell telepíteni a MySQL szervert és beállítani a MySQL gyökér jelszavát a CentOS 8 és az Ubuntu 20 rendszereken.04 LTS Linux disztribúciók az Ansible használatával. Ez a cikk a mysql_user Egy lehetséges modul a MySQL root jelszó beállításához. Ezzel a modullal megváltoztathatja a MySQL gyökér jelszavát, új MySQL felhasználókat hozhat létre, és számos további felhasználókezelési funkciót igényelhet.
További információ a mysql_user modult, ellenőrizze a mysql_user modul hivatalos dokumentációját.