Cara mengotomatisasi penyebaran wordpress simultan di beberapa server Linux menggunakan ansible - bagian 3

Cara mengotomatisasi penyebaran wordpress simultan di beberapa server Linux menggunakan ansible - bagian 3

Dalam dua artikel sebelumnya dari ini Semu seri, kami menjelaskan cara menginstal dan mengonfigurasi Semu untuk menjalankan perintah dan melakukan tugas -tugas kompleks di beberapa server jarak jauh secara bersamaan.

Otomatis beberapa instalasi WordPress menggunakan ansible - Bagian 3

Dalam tutorial saat ini kami akan menjelaskan cara mengatur WordPress di server jarak jauh yang sama:

Node1: 192.168.0.29 Node2: 192.168.0.30 

Di mana kami menginstal, diaktifkan, dan memulai Apache (Anda mungkin tahu sekarang mengapa kami memilih untuk bekerja dengan server web sebagai contoh awal di tutorial terakhir).

Saya sangat mendorong Anda untuk membaca Bagian 1 Dan Bagian 2 Sebelum melanjutkan lebih lanjut untuk memastikan Anda terbiasa dengan konsep yang terkait dengan Ansible.

Cara Menginstal dan Mengkonfigurasi Alat Otomasi 'Ansible' untuk Manajemen TI - Bagian 1

Cara menggunakan buku pedoman anisble untuk mengotomatisasi tugas kompleks di beberapa server jarak jauh - bagian 2

Langkah 1: Memperkenalkan Peran Ansible

Saat Anda mulai menambahkan lebih banyak tugas untuk bermain, Anda Buku pedoman bisa menjadi semakin sulit ditangani. Untuk alasan itu, pendekatan yang disarankan dalam situasi tersebut (sebenarnya, dalam semua kasus) adalah menggunakan struktur direktori yang berisi arahan untuk setiap kelompok tugas dalam file yang berbeda.

Pendekatan ini memungkinkan kami untuk menggunakan kembali file konfigurasi ini dalam proyek terpisah lebih jauh di jalan. Masing -masing file ini menentukan apa yang disebut di Ekosistem Ansible sebuah peran.

Dalam kasus kami, kami akan membuat dua peran. Salah satunya (dipanggil Dependensi WP) akan digunakan untuk menginstal dependensi WordPress (Php Dan Mariadb - Tidak perlu menginstal Apache karena sudah terpasang).

Peran lain (dinamai WP-Install-Config) akan mencakup semua tugas yang diperlukan yang terkait dengan instalasi dan konfigurasi WordPress.

Langkah 2: Membuat Peran Ansible

Ansible dilengkapi dengan utilitas yang disebut ansible-galaxy yang akan membantu kita membuat struktur direktori untuk peran kita. Kami akan melakukan ini /etc/ansible/playbooks (yang kami buat Bagian 2) Tetapi secara teori Anda dapat mengaturnya di direktori lain jika Anda mau.

# CD/etc/ansible/playbooks # ansible-galaxy init-dependencies WP # ansible-galaxy init wp-install-config 
Ansible: Buat peran WordPress

Berikutnya mengkonfirmasi peran yang baru dibuat.

# ls -r/etc/ansible/playbooks 
Ansible: Konfirmasi Struktur Direktori WordPress

Pada gambar di atas kita bisa melihatnya ansible-galaxy membuat dua direktori dengan nama yang sama dengan peran kita, dan subdirektori lainnya (default, file, penangan, meta, tugas, template, Dan vars) dan a Baca aku.md file di dalam masing -masing.

Selain itu, file YAML bernama utama.YML dibuat di dalam semua direktori yang tercantum sebelumnya, dengan pengecualian file dan templat.

Kami akan mulai dengan mengedit file konfigurasi berikut seperti yang ditunjukkan:

1. /etc/ansible/playbooks/wp-dependencies/tugas/main.YML. Perhatikan bahwa kami termasuk httpd Jika Anda belum mengikuti tutorial sebelumnya dari seri ini.

utama.YML
--- # Tugas File untuk Dependensi WP - Nama: Paket Perbarui (Ini setara dengan pembaruan yum -y) yum: name =* state = terbaru - nama: instal dependensi untuk wordpress yum: name = item state = present with_items : - httpd - mariadb -server - mariadb - php - php -mysql - mysql -python - Nama: Pastikan mariadb sedang berjalan (dan aktifkan di boot) Layanan: name = mariadb state = mulai diaktifkan = ya - name: copy ~//.-ku.CNF ke node salinan: src =/root/.-ku.cnf dest =/root/.-ku.CNF - NAME: Buat basis data mariadb mysql_db: name = wp_mysql_db state = present - name: buat mariadb nama pengguna dan kata sandi mysql_user: ia =*.*:SEMUA 

2. /etc/ansible/playbooks/wp-dependencies/defaults/main.YML

utama.YML
--- # File default untuk Dependensi WP WP_MYSQL_DB: mywp wp_mysql_user: wpuser wp_mysql_password: wpp4sss 

3. /etc/ansible/playbooks/wp-install-config/tugas/main.YML:

utama.YML
--- # Tugas File untuk WP -Install -Config -Nama: Buat direktori untuk mengunduh perintah WordPress: mkdir -p/opt/source/wordpress -nama: unduh wordpress get_url: url = https: // www.WordPress.org/terbaru.ter.gz dest =/opt/source/wordpress/wordpress.ter.gz validate_certs = Tidak - Nama: Ekstrak perintah WordPress: "TAR XZF/OPT/SUMBER/WordPress/WordPress.ter.gz -c/var/www/html--strip-komponen 1 "-Nama: Kirim File Konfigurasi Salin: Src =/root/wp-config-sampel.php dest =/var/www/html/wp-config.Mode PHP = 0644 

4. WP-Config-sampel.php (Disediakan dalam pastebin ini) sebagai berikut dan simpan ke mesin pengontrol ansible Anda (seperti yang dapat Anda lihat di arahan salinan terakhir di atas, saya mengunduhnya ke direktori home superuser (/root/wp-config-sampel.php).

Penting: Harap dicatat bahwa nilai variabel Db_name, Db_user, Dan Db_password sama seperti di /etc/ansible/playbooks/wp-dependencies/defaults/main.YML:

WP-Config-sampel.php
... / ** Nama database untuk WordPress* / define ('db_name', 'mywp'); / ** nama pengguna database mysql*/ define ('db_user', 'wpuser'); / ** Kata sandi database mysql*/ define ('db_password', 'wpp4ss');… 

5. Untuk instalasi server basis data baru di mana kata sandi root kosong, seperti dalam kasus ini, sayangnya kita perlu mengatur kata sandi untuk root pengguna secara individual di setiap mesin melalui mysql_secure_installation.

Sejauh yang saya tahu, tidak ada solusi yang tersedia yang akan memungkinkan Anda untuk mengatur kata sandi root melalui Semu pada langkah yang sama di mana Anda membuat akun database administrasi untuk WordPress.

Pastikan Anda menggunakan kata sandi yang sama di semua host, lalu salin kredensial /akar/.-ku.CNF (Lokasi aktual mungkin berbeda dalam kasus Anda, tetapi dalam semua kasus itu perlu sesuai dengan nilai SRC parameter untuk tugas tersebut Salin ~/.-ku.CNF ke node masuk /etc/ansible/playbooks/wp-dependencies/tugas/main.YML).

Dalam file itu (lihat di atas) kami berasumsi bahwa kata sandi untuk root adalah YourMariadbrootPassword.

Kata sandi database ansible

6. Selanjutnya, buku pedoman kami (/etc/ansible/playbook/playbook.YML) akan terlihat jauh lebih terorganisir dan sederhana jika dibandingkan dengan tutorial sebelumnya:

# Cat Playbook.YML 
Playbook WordPress Ansible
- HOSTS: Peran WebServer:-Dependensi WP-WP-Install-Config 

Akhirnya, saatnya untuk menjalankan tugas -tugas ini dengan memohon buku pedoman kami:

# Playbook Ansible-Playbook.YML 

Sekarang mari kita periksa apakah kita dapat mengakses halaman admin WordPress menggunakan alamat IP Node1 192.168.0.29 Dan Node2 192.168.0.30:

Instalasi WordPress yang tidak dapat dimengerti

Anda dapat melihat dua langkah terakhir di screencast berikut:

Seperti yang Anda lihat, Anda dapat mengatur beberapa instalasi WordPress dengan sedikit atau tanpa upaya menggunakan Semu. Maka Anda dapat menggunakan masing -masing Admin antarmuka pengguna untuk mengonfigurasi setiap situs secara terpisah.

Pertimbangan akhir

Jika Anda menggunakan distribusi lain untuk digunakan WordPress, Nama paket mungkin bervariasi, tetapi ditujukan untuk menginstal server web apache, server basis data mariadb, dan modul python mysql. Jika itu masalahnya, gunakan sistem manajemen perangkat lunak distribusi Anda untuk mencari nama paket yang tepat yang perlu Anda instal.

Ringkasan

Dalam seri ini kami telah menjelaskan cara menggunakan Semu untuk menjalankan perintah dan menjalankan tugas kompleks di beberapa mesin Linux secara bersamaan.

Salah satu contoh tersebut adalah menyiapkan WordPress, Seperti yang telah kita bahas dalam panduan ini. Apakah Anda seorang administrator sistem atau blogger, saya harap Anda telah menemukan konsep dan contoh dalam tutorial ini berguna.

Semoga sukses dan jangan ragu untuk memberi kami garis jika Anda membutuhkan bantuan atau memiliki komentar atau saran!