På Centos/RHEL kan du enkelt kjøre mysql_secure_installation Kommando for å sette opp et rotpassord. Men på Ubuntu 20.04 LTS, denne metoden fungerer ikke, ettersom MySQL bruker en annen autentiseringsplugin for rot bruker.
Denne artikkelen vil vise deg hvordan du setter opp et MySQL Root -passord på Centos 8 og Ubuntu 20.04 LTS Linux -distribusjoner ved hjelp av Ansible Modules.
Forutsetninger
Hvis du vil prøve eksemplene som er inkludert i denne artikkelen,
1) Du må ha Ansible installert på datamaskinen din.
2) Du må ha minst en Centos/RHEL 8 -vert eller en Ubuntu 20.04 LTS -vert konfigurert for ansettbar automatisering.
Det er mange artikler om Linuxhint dedikert til å installere Ansible og konfigurere verter for Ansible Automation. Du kan sjekke ut disse om nødvendig.
Sette opp en prosjektkatalog
Før vi går videre, vil vi sette opp en ny Ansible Project Directory, bare for å holde ting litt organisert.
For å opprette prosjektkatalogen mysql-root-pass/ Og alle nødvendige underkataloger (i din nåværende arbeidskatalog), kjør følgende kommando:
$ mkdir -pv mysql-root-pass/playbooks, host_vars, group_varsNår prosjektkatalogen er opprettet, navigerer du til prosjektkatalogen, som følger:
$ CD mysql-root-pass/Lage en verter Lagerfil, som følger:
$ Nano -verterLegg til verten IP eller DNS -navn på Centos/RHEL 8 eller Ubuntu 20.04 LTS -verter i inventarfilen (en vert per linje), som vist på skjermbildet nedenfor.
Når du er ferdig, lagre filen ved å trykke på + X, etterfulgt av Y og .
Her har jeg opprettet to grupper, centos8, og Ubuntu20. De centos8 Group har DNS -navnet på min centos 8 -vert, VM3.Nodekite.com; og Ubuntu20 Group har DNS -navnet på Ubuntu 20.04 LTS -vert, VM7.Nodekite.com.
Opprett en Ansible konfigurasjonsfil Ansible.CFG I prosjektkatalogen din, som følger:
$ Nano Ansible.CFGSkriv inn følgende linjer i Ansible.CFG fil:
[standardverdier]Når du er ferdig, kan du lagre Ansible.CFG fil ved å trykke på + X, etterfulgt av Y og .
Prøv å pinge alle vertene du har lagt til i din verter Lagerfil, som følger:
$ ansible all -u ansible -m ping
Som du kan se, My Centos 8 -verten (VM3.Nodekite.com) og Ubuntu 20.04 LTS -vert (VM7.Nodekite.com) er tilgjengelig.
Installere MySQL og sette opp rotpassord på centOS/RHEL 8
Denne delen vil vise deg hvordan du installerer MySQL -databaseserveren og setter opp et rotpassord på CentOS 8 ved hjelp av Ansible. Den samme prosedyren skal fungere på RHEL 8.
Lag den nye Ansible Playbook install_mysql_centos8.Yaml i Playbooks/ Katalog, som følger:
$ nano playbooks/install_mysql_centos8.YamlSkriv inn følgende linjer i install_mysql_centos8.Yaml fil:
- Verter: Centos8Når du er ferdig, trykk + X, etterfulgt av Y og , For å redde install_mysql_centos8.Yaml fil.
Linjen nedenfor ber Ansible om å kjøre spillboken install_mysql_centos8.Yaml på hver vert i centos8 gruppe.
Her har jeg definert 5 oppgaver.
Den første oppgaven oppdaterer DNF -pakkelagdebufferen til CentOS 8 ved hjelp av Ansible dnf modul.
Den andre oppgaven installerer MySQL -serverpakken mysql-server Bruke Ansible dnf modul.
Den tredje oppgaven installerer MySQL -klientpakken mysql Bruke Ansible dnf modul.
Den fjerde oppgaven sikrer at mysqld Tjenesten kjører og at den er lagt til systemoppstarten slik at den automatisk starter på oppstart.
Den femte oppgaven installerer Python 3 MySQL -biblioteket Pymysql. Dette er nødvendig for å få tilgang til MySQL fra Ansible.
Kjør install_mysql_centos8.Yaml Playbook, som følger:
$ ansible-playbook playbooks/install_mysql_centos8.YamlSom du ser, spillboken install_mysql_centos8.Yaml løp vellykket.
På min centos 8 -vert kan jeg få tilgang til mysql som rot Bruker uten passord, som du kan se på skjermbildet nedenfor:
$ sudo mysql -u rootNå som MySQL -serveren er installert, er det på tide å sette opp et rotpassord for MySQL -serveren.
Opprett den nye gruppevariablefilen centos8 (I gruppe_vars/ katalog) for centos8 gruppe, som følger:
$ nano group_vars/centos8Legg til en ny variabel mysql_pass med rotpassordet (i mitt tilfelle, hemmelig) Du vil angi, som vist på skjermbildet nedenfor.
Når du er ferdig, trykk + X, etterfulgt av Y og
Lag en ny spillbok set_root_pass_centos8.Yaml med følgende kommando:
$ nano playbooks/set_root_pass_centos8.YamlSkriv inn følgende linjer i set_root_pass_centos8.Yaml fil:
- Verter: Centos8Når du er ferdig, trykk + X, etterfulgt av Y og , For å redde set_root_pass_centos8.Yaml fil.
Denne spillboken bruker mysql_user Ansible -modul for å angi et MySQL Root -passord.
De login_host, LOGIN_USER, og innloggings passord Alternativer for mysql_user Ansible -modul brukes til å angi henholdsvis gjeldende MySQL -innloggingsvertsnavn, brukernavn og passord. Som standard MySQL Login Hostname (login_host) er den lokal vert, Innloggingsbrukernavnet (LOGIN_USER) er den rot, og påloggingen passord (innloggings passord) er tom (”) på centos 8.
De passord Alternativ for mysql_user Ansible -modul brukes til å angi et nytt MySQL Root -passord, her. MySQL Root -passordet vil være verdien av mysql_pass Gruppevariabel som ble satt tidligere.
Kjør lekeboken set_root_pass_centos8.Yaml med følgende kommando:
$ Ansible-Playbook Playbooks/set_root_pass_centos8.YamlPlaybook kjørte vellykket, som sett på skjermdumpen nedenfor:
Som du kan se, kan jeg ikke lenger logge inn på MySQL -serveren uten rootpassord.
For å logge på MySQL -serveren som rot Bruker med et passord, kjør følgende kommando på CentOS 8 -verten din:
$ sudo mysql -u root -p
Skriv inn rotpassordet du har angitt ved hjelp av Ansible, og trykk .
Du bør være logget på MySQL -serveren som rot bruker.
Installere mysql og sette opp rotpassord på Ubuntu 20.04 LTS
Denne delen vil vise deg hvordan du installerer MySQL -databaseserveren og setter opp et rotpassord på Ubuntu 20.04 LTS ved hjelp av Ansible.
Lag en ny Ansible Playbook install_mysql_ubuntu20.Yaml i Playbooks/ Katalog, som følger:
$ nano playbooks/install_mysql_ubuntu20.YamlSkriv inn følgende linjer i install_mysql_ubuntu20.Yaml fil:
- Verter: Ubuntu20Når du er ferdig, trykk + X, etterfulgt av Y og , For å redde install_mysql_ubuntu20.Yaml fil.
Følgende linje ber Ansible om å kjøre spillboken install_mysql_ubuntu20.Yaml på hver vert i Ubuntu20 gruppe:
Her har jeg definert 5 oppgaver.
Den første oppgaven oppdaterer Apt Package Repository Cache of Ubuntu 20.04 LTS ved hjelp av Ansible Apt modul.
Den andre oppgaven installerer MySQL -serverpakken mysql-server Bruke Ansible Apt modul.
Den tredje oppgaven installerer MySQL -klientpakken mysql Bruke Ansible Apt modul.
Den fjerde oppgaven sørger for at mysql Tjenesten kjører og at den er lagt til systemoppstarten slik at den automatisk starter på oppstart.
Den femte oppgaven installerer Python 3 MySQL -biblioteket Pymysql. Dette er nødvendig for å få tilgang til mysql fra Ansible.
Kjør install_mysql_ubuntu20.Yaml Playbook, som følger:
$ ansible-playbook playbooks/install_mysql_ubuntu20.YamlSom du ser, spillboken install_mysql_ubuntu20.Yaml løp vellykket.
På min Ubuntu 20.04 LTS -vert, jeg har tilgang til mysql som rot Bruker uten passord, som du kan se på skjermbildet nedenfor.
$ sudo mysql -u rootNå som MySQL -serveren er installert, er det på tide å sette opp et rotpassord for MySQL -serveren.
Opprett en ny gruppevariabel fil Ubuntu20 (I gruppe_vars/ katalog) for Ubuntu20 gruppe, som følger:
$ nano group_vars/ubuntu20Legg til en ny variabel, mysql_pass, med rotpassordet (i mitt tilfelle, Verysecret) At du vil angi, som vist på skjermdumpen nedenfor.
Når du er ferdig, trykk + X, etterfulgt av Y og , For å lagre filen.
Lag en ny spillbok set_root_pass_ubuntu20.Yaml med følgende kommando:
$ nano playbooks/set_root_pass_ubuntu20.YamlSkriv inn følgende linjer i set_root_pass_ubuntu20.Yaml fil:
- Verter: Ubuntu20Når du er ferdig, trykk + X, etterfulgt av Y og , For å redde set_root_pass_ubuntu20.Yaml fil.
Her har jeg definert tre oppgaver.
Den første oppgaven endrer autentiseringspluginen til MySQL rot bruker fra Auth_socket til mysql_native_password.
Den andre oppgaven laster inn alle privilegiene på nytt.
Den tredje oppgaven bruker mysql_user Ansible -modul for å angi et MySQL Root -passord.
I den tredje oppgaven, login_host, LOGIN_USER, og innloggings passord Alternativer for mysql_user Ansible -modul brukes til å angi henholdsvis gjeldende MySQL -innloggingsvertsnavn, brukernavn og passord. Som standard MySQL Login Hostname (login_host) er lokal vert, Innloggingsbrukernavnet (LOGIN_USER) er rot, og påloggingen passord (innloggings passord) er tom (”) på systemet.
Her, The passord Alternativ for mysql_user Ansible -modul brukes til å angi et nytt MySQL Root -passord. MySQL Root -passordet vil være verdien av mysql_pass gruppevariabel, som jeg satte tidligere, i group_vars/ubuntu20 fil.
Kjør lekeboken set_root_pass_ubuntu20.Yaml med følgende kommando:
$ Ansible-Playbook Playbooks/set_root_pass_ubuntu20.YamlPlaybook kjørte vellykket, som du kan se på skjermdumpen nedenfor:
Som du kan se, kan jeg ikke lenger logge inn på MySQL -serveren uten rootpassord.
$ sudo mysql -u rootFor å logge på MySQL -serveren som rotbruker med det angitte passordet, kjører du følgende kommando på Ubuntu 20.04 LTS -vert:
$ sudo mysql -u root -pSkriv inn rotpassordet du har angitt ved hjelp av Ansible og trykk .
Du bør være logget på MySQL -serveren som rotbruker.
Konklusjon
Denne artikkelen viste deg hvordan du installerer MySQL -serveren og angir et MySQL Root -passord på Centos 8 og Ubuntu 20.04 LTS Linux -distribusjoner ved hjelp av Ansible. Denne artikkelen brukte mysql_user Ansible -modul for å sette opp MySQL Root -passordet. Du kan bruke denne modulen til å endre MySQL Root Password.
For mer informasjon om mysql_user Modul, sjekk den offisielle dokumentasjonen av MySQL_USER -modulen.