mungkin

Cara Mengatur Kata Sandi Root MySQL menggunakan Ansible

Cara Mengatur Kata Sandi Root MySQL menggunakan Ansible
Sebagian besar distribusi Linux, termasuk CentOS/RHEL dan Ubuntu/Debian, tidak mengatur kata sandi root MySQL secara otomatis. Karena kata sandi root MySQL tidak diatur secara otomatis, seseorang dapat masuk ke konsol MySQL sebagai root tanpa kata sandi apa pun. Ini sangat tidak baik untuk keamanan.

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 + X, diikuti oleh kamu dan .

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 + X, diikuti oleh kamu dan .

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: centos8
pengguna: 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 + X, diikuti oleh kamu dan , untuk menyelamatkan install_mysql_centos8.yaml mengajukan.

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 + X, diikuti oleh kamu dan , untuk menyimpan file.

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: centos8
pengguna: 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 + X, diikuti oleh kamu dan , untuk menyelamatkan set_root_pass_centos8.yaml mengajukan.

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: ubuntu20
pengguna: 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 + X, diikuti oleh kamu dan , untuk menyelamatkan install_mysql_ubuntu20.yaml mengajukan.

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 + X, diikuti oleh kamu dan , untuk menyimpan file.

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: ubuntu20
pengguna: 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 + X, diikuti oleh kamu dan , untuk menyelamatkan set_root_pass_ubuntu20.yaml mengajukan.

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.

Cara Mengembangkan Game di Linux
Satu dekade yang lalu, tidak banyak pengguna Linux yang memprediksi bahwa sistem operasi favorit mereka suatu hari nanti akan menjadi platform game po...
Port Sumber Terbuka dari Mesin Game Komersial
Rekreasi mesin game gratis, open source, dan lintas platform dapat digunakan untuk bermain lama serta beberapa judul game yang cukup baru. Artikel ini...
Game Baris Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar Anda saat menggunakan Linux-ini juga dapat menjadi sumber hiburan karena Anda dapat menggunakannya untuk me...