Di CentOS/RHEL, Anda dapat dengan mudah menjalankan mysql_secure_installation perintah untuk mengatur kata sandi root. Tetapi di Ubuntu 20.04 LTS, metode ini tidak berfungsi, karena MySQL menggunakan plugin autentikasi yang berbeda untuk akar pengguna.
Artikel ini akan menunjukkan kepada Anda cara mengatur kata sandi root MySQL di CentOS 8 dan Ubuntu 20.04 distribusi Linux LTS menggunakan modul Ansible.
Prasyarat
Jika Anda ingin mencoba contoh yang disertakan dalam artikel ini,
1) Anda harus menginstal Ansible di komputer Anda.
2) Anda harus memiliki setidaknya host CentOS/RHEL 8 atau Ubuntu 20.04 LTS host dikonfigurasi untuk otomatisasi yang memungkinkan.
Ada banyak artikel di LinuxHint yang didedikasikan untuk menginstal Ansible dan mengonfigurasi host untuk otomatisasi Ansible. Anda dapat memeriksa ini jika diperlukan.
Menyiapkan Direktori Proyek
Sebelum kita melanjutkan lebih jauh, kita akan menyiapkan direktori proyek Ansible baru, hanya untuk menjaga semuanya tetap teratur.
Untuk membuat direktori proyek mysql-root-pass/ dan semua subdirektori yang diperlukan (di direktori kerja Anda saat ini), jalankan perintah berikut:
$ mkdir -pv mysql-root-pass/playbooks,host_vars,group_vars
Setelah direktori proyek dibuat, navigasikan ke direktori proyek, sebagai berikut:
$cd mysql-root-pass/
Membuat tuan rumah berkas inventaris, sebagai berikut:
$ nano host
Tambahkan nama IP atau DNS host dari CentOS/RHEL 8 atau Ubuntu 20 . Anda.04 LTS host dalam file inventaris (satu host per baris), seperti yang ditunjukkan pada gambar di bawah.
Setelah selesai, simpan file dengan menekan
Di sini, saya telah membuat dua grup, centos8, dan ubuntu20. Itu centos8 grup memiliki nama DNS dari host CentOS 8 saya, vm3.simpul.com; dan ubuntu20 grup memiliki nama DNS Ubuntu 20 saya.04 LTS tuan rumah, vm7.simpul.com.
Buat file konfigurasi Ansible mungkin.cfg di direktori proyek Anda, sebagai berikut:
$ nano mungkin.cfg
Ketik baris berikut di mungkin.cfg mengajukan:
[default]inventaris = host
host_key_checking = Salah
Setelah selesai, simpan mungkin.cfg file dengan menekan
Coba ping semua host yang telah Anda tambahkan di tuan rumah berkas inventaris, sebagai berikut:
$ mungkin semua -u mungkin -m ping
Seperti yang Anda lihat, host CentOS 8 saya (vm3.simpul.com) dan Ubuntu 20.04 LTS tuan rumah (vm7.simpul.com) dapat diakses.
Menginstal MySQL dan Mengatur Kata Sandi Root di CentOS/RHEL 8
Bagian ini akan menunjukkan kepada Anda cara menginstal server database MySQL dan mengatur kata sandi root pada CentOS 8 menggunakan Ansible. Prosedur yang sama harus bekerja pada RHEL 8.
Buat buku pedoman Ansible baru install_mysql_centos8.yaml dalam buku pedoman/ direktori, sebagai berikut:
$ nano buku pedoman/install_mysql_centos8.yaml
Ketik baris berikut di install_mysql_centos8.yaml mengajukan:
- tuan rumah: centos8pengguna: mungkin
menjadi: Benar
tugas:
- nama: Perbarui cache repositori Paket DNF
dnf:
update_cache: Benar
- nama: Instal server MySQL di CentOS 8
dnf:
nama: mysql-server
negara: sekarang
- nama: Instal klien MySQL di CentOS 8
dnf:
nama: mysql
negara: sekarang
- nama: Pastikan layanan mysqld berjalan
layanan:
nama: mysqld
negara: mulai
diaktifkan: Benar
- nama: Instal pustaka python3-PyMySQL
dnf:
nama: python3-PyMySQL
negara: sekarang
Setelah selesai, tekan
Baris di bawah ini memberi tahu Ansible untuk menjalankan buku pedoman install_mysql_centos8.yaml pada setiap host di centos8 kelompok.
Di sini, saya telah menetapkan 5 tugas.
Tugas pertama memperbarui cache repositori paket DNF dari CentOS 8 menggunakan Ansible dnf modul.
Tugas kedua menginstal paket server MySQL mysql-server menggunakan Ansible dnf modul.
Tugas ketiga menginstal paket klien MySQL mysql menggunakan Ansible dnf modul.
Tugas keempat memastikan bahwa mysqld layanan sedang berjalan dan telah ditambahkan ke startup sistem sehingga secara otomatis dimulai saat boot.
Tugas kelima menginstal pustaka Python 3 MySQL pymysql. Ini diperlukan untuk mengakses MySQL dari Ansible.
Jalankan install_mysql_centos8.yaml buku pedoman, sebagai berikut:
$ playbook yang memungkinkan-playbook/install_mysql_centos8.yaml
Seperti yang Anda lihat, buku pedoman install_mysql_centos8.yaml berlari dengan sukses.
Di host CentOS 8 saya, saya dapat mengakses MySQL sebagai akar pengguna tanpa kata sandi, seperti yang Anda lihat pada tangkapan layar di bawah ini:
$ sudo mysql -u root
Sekarang setelah server MySQL terinstal, sekarang saatnya mengatur kata sandi root untuk server MySQL MySQL.
Buat file variabel grup baru centos8 (dalam grup_vars/ direktori) untuk centos8 kelompok, sebagai berikut:
$ nano group_vars/centos8
Tambahkan variabel baru mysql_pass dengan kata sandi root (dalam kasus saya, rahasia) yang ingin Anda atur, seperti yang ditunjukkan pada tangkapan layar di bawah ini.
Setelah selesai, tekan
Buat buku pedoman baru set_root_pass_centos8.yaml dengan perintah berikut:
$ nano buku pedoman/set_root_pass_centos8.yaml
Ketik baris berikut di set_root_pass_centos8.yaml mengajukan:
- tuan rumah: centos8pengguna: mungkin
menjadi: Benar
tugas:
- nama: Setel Kata Sandi root MySQL
mysql_user:
login_host: 'localhost'
login_user: 'root'
kata sandi masuk: "
nama: 'akar'
kata sandi: ' mysql_pass '
negara: sekarang
Setelah selesai, tekan
Buku pedoman ini menggunakan mysql_user Modul yang memungkinkan untuk mengatur kata sandi root MySQL.
Itu login_host, login_pengguna, dan kata sandi masuk pilihan dari mysql_user Modul yang memungkinkan digunakan untuk mengatur nama host login MySQL saat ini, nama pengguna, dan kata sandi, masing-masing. Secara default, nama host login MySQL (login_host) adalah localhost, nama pengguna masuk (login_pengguna) adalah akar, dan loginnya kata sandi (kata sandi masuk) kosong (”) pada CentOS 8.
Itu kata sandi pilihan dari mysql_user Modul yang memungkinkan digunakan untuk mengatur kata sandi root MySQL baru, di sini. Kata sandi root MySQL akan menjadi nilai dari mysql_pass variabel grup yang ditetapkan sebelumnya.
Jalankan buku pedoman set_root_pass_centos8.yaml dengan perintah berikut:
$ playbook yang memungkinkan-playbook/set_root_pass_centos8.yaml
Playbook berhasil dijalankan, seperti yang terlihat pada tangkapan layar di bawah ini:
Seperti yang Anda lihat, saya tidak bisa lagi masuk ke server MySQL tanpa kata sandi root.
Untuk masuk ke server MySQL sebagai akar pengguna dengan kata sandi, jalankan perintah berikut pada host CentOS 8 Anda:
$ sudo mysql -u root -p
Ketikkan kata sandi root yang telah Anda atur menggunakan Ansible, dan tekan
Anda harus masuk ke server MySQL sebagai akar pengguna.
Menginstal MySQL dan Mengatur Kata Sandi root di Ubuntu 20.04 LTS
Bagian ini akan menunjukkan kepada Anda cara menginstal server database MySQL dan mengatur kata sandi root di Ubuntu 20.04 LTS menggunakan Ansible.
Buat buku pedoman Ansible baru install_mysql_ubuntu20.yaml dalam buku pedoman/ direktori, sebagai berikut:
$ nano buku pedoman/install_mysql_ubuntu20.yaml
Ketik baris berikut di install_mysql_ubuntu20.yaml mengajukan:
- host: ubuntu20pengguna: mungkin
menjadi: Benar
tugas:
- nama: Perbarui cache repositori Paket APT
tepat:
update_cache: Benar
- nama: Instal server MySQL di Ubuntu 20.04 LTS
tepat:
nama: mysql-server
negara: sekarang
- nama: Instal klien MySQL di Ubuntu 20.04 LTS
tepat:
nama: klien mysqlcli
negara: sekarang
- nama: Pastikan layanan mysql berjalan
layanan:
nama: mysql
negara: mulai
diaktifkan: Benar
- nama: Instal pustaka python3-pymysql
tepat:
nama: python3-pymysql
negara: sekarang
Setelah selesai, tekan
Baris berikut memberi tahu Ansible untuk menjalankan buku pedoman install_mysql_ubuntu20.yaml pada setiap host di ubuntu20 kelompok:
Di sini, saya telah menetapkan 5 tugas.
Tugas pertama memperbarui cache repositori paket APT Ubuntu 20.04 LTS menggunakan Ansible tepat modul.
Tugas kedua menginstal paket server MySQL mysql-server menggunakan Ansible tepat modul.
Tugas ketiga menginstal paket klien MySQL mysql menggunakan Ansible tepat modul.
Tugas keempat memastikan bahwa mysql layanan sedang berjalan dan telah ditambahkan ke startup sistem sehingga secara otomatis dimulai saat boot.
Tugas kelima menginstal pustaka Python 3 MySQL pymysql. Ini diperlukan untuk mengakses MySQL dari Ansible.
Jalankan install_mysql_ubuntu20.yaml buku pedoman, sebagai berikut:
$ playbook yang memungkinkan-playbook/install_mysql_ubuntu20.yaml
Seperti yang Anda lihat, buku pedoman install_mysql_ubuntu20.yaml berlari dengan sukses.
Di Ubuntu 20 saya.04 LTS host, saya dapat mengakses MySQL sebagai akar pengguna tanpa kata sandi apa pun, seperti yang Anda lihat pada tangkapan layar di bawah ini.
$ sudo mysql -u root
Sekarang setelah server MySQL terinstal, sekarang saatnya mengatur kata sandi root untuk server MySQL MySQL.
Buat file variabel grup baru ubuntu20 (dalam grup_vars/ direktori) untuk ubuntu20 kelompok, sebagai berikut:
$ nano group_vars/ubuntu20
Tambahkan variabel baru, mysql_pass, dengan kata sandi root (dalam kasus saya, sangat rahasia) yang ingin Anda atur, seperti yang ditunjukkan pada tangkapan layar di bawah ini.
Setelah selesai, tekan
Buat buku pedoman baru set_root_pass_ubuntu20.yaml dengan perintah berikut:
$ nano buku pedoman/set_root_pass_ubuntu20.yaml
Ketik baris berikut di set_root_pass_ubuntu20.yaml mengajukan:
- host: ubuntu20pengguna: mungkin
menjadi: Benar
tugas:
- nama: Ubah plugin otentikasi pengguna root MySQL ke mysql_native_password
shell: mysql -u root -e 'PERBARUI mysql.pengguna SET plugin="mysql_native_password"
DIMANA pengguna="root" DAN Host="localhost"'
- nama: Flush Privileges
shell: mysql -u root -e 'HAK ISTIMEWA FLUSH'
- nama: Setel kata sandi root MySQL
mysql_user:
login_host: 'localhost'
login_user: 'root'
kata sandi masuk: "
nama: 'akar'
kata sandi: ' mysql_pass '
negara: sekarang
Setelah selesai, tekan
Di sini, saya telah menetapkan tiga tugas.
Tugas pertama mengubah plugin otentikasi MySQL akar pengguna dari auth_socket untuk mysql_native_password.
Tugas kedua memuat ulang semua hak istimewa.
Tugas ketiga menggunakan mysql_user Modul yang memungkinkan untuk mengatur kata sandi root MySQL.
Pada tugas ketiga, login_host, login_pengguna, dan kata sandi masuk pilihan dari mysql_user Modul yang memungkinkan digunakan untuk mengatur nama host login MySQL saat ini, nama pengguna, dan kata sandi, masing-masing. Secara default, nama host login MySQL (login_host) aku s localhost, nama pengguna masuk (login_pengguna) aku s akar, dan loginnya kata sandi (kata sandi masuk) kosong (”) pada sistem.
Di sini, kata sandi pilihan dari mysql_user Modul yang memungkinkan digunakan untuk mengatur kata sandi root MySQL baru. Kata sandi root MySQL akan menjadi nilai dari mysql_pass variabel grup, yang saya atur sebelumnya, di group_vars/ubuntu20 mengajukan.
Jalankan buku pedoman set_root_pass_ubuntu20.yaml dengan perintah berikut:
$ buku pedoman playbook yang memungkinkan/set_root_pass_ubuntu20.yaml
Playbook berhasil dijalankan, seperti yang Anda lihat pada tangkapan layar di bawah ini:
Seperti yang Anda lihat, saya tidak bisa lagi masuk ke server MySQL tanpa kata sandi root.
$ sudo mysql -u root
Untuk masuk ke server MySQL sebagai pengguna root dengan kata sandi yang ditetapkan, jalankan perintah berikut di Ubuntu 20 . Anda.04 LTS tuan rumah:
$ sudo mysql -u root -p
Ketik kata sandi root yang telah Anda atur menggunakan Ansible dan tekan
Anda harus masuk ke server MySQL sebagai pengguna root.
Kesimpulan
Artikel ini menunjukkan kepada Anda cara menginstal server MySQL dan mengatur kata sandi root MySQL di CentOS 8 dan Ubuntu 20.04 distribusi Linux LTS menggunakan Ansible. Artikel ini menggunakan mysql_user Modul yang memungkinkan untuk mengatur kata sandi root MySQL. Anda dapat menggunakan modul ini untuk mengubah kata sandi root MySQL, membuat pengguna MySQL baru, dan menjalankan lebih banyak fungsi manajemen pengguna.
Untuk informasi lebih lanjut tentang mysql_user modul, periksa dokumentasi resmi modul mysql_user.