Cara Mengaut Mengotor Penyebaran WordPress Serentak di Pelbagai Pelayan Linux Menggunakan Ansible - Bahagian 3

Cara Mengaut Mengotor Penyebaran WordPress Serentak di Pelbagai Pelayan Linux Menggunakan Ansible - Bahagian 3

Dalam dua artikel sebelumnya Ansible siri, kami menjelaskan cara memasang dan mengkonfigurasi Ansible untuk menjalankan arahan dan melaksanakan tugas kompleks di beberapa pelayan jauh secara serentak.

Automatikkan Pelbagai Pemasangan WordPress Menggunakan Ansible - Bahagian 3

Dalam tutorial semasa kami akan menerangkan cara menubuhkan WordPress di pelayan jauh yang sama:

Node1: 192.168.0.29 Node2: 192.168.0.30 

Di mana kami memasang, didayakan, dan memulakan Apache (anda mungkin tahu sekarang mengapa kami memilih untuk bekerja dengan pelayan web sebagai contoh awal dalam tutorial terakhir).

Saya sangat menggalakkan anda membaca Bahagian 1 dan Bahagian 2 sebelum meneruskan untuk memastikan anda biasa dengan konsep yang berkaitan dengan Ansible.

Cara Memasang dan Mengkonfigurasi Alat Automasi 'Ansible' untuk Pengurusan IT - Bahagian 1

Cara Menggunakan Buku Playble Anisble untuk mengautomasikan tugas kompleks pada Pelbagai Pelayan Jauh - Bahagian 2

Langkah 1: Memperkenalkan Peranan Ansible

Semasa anda mula menambah lebih banyak tugas untuk dimainkan, anda Buku Playbooks boleh menjadi semakin sukar untuk dikendalikan. Atas sebab itu, pendekatan yang disyorkan dalam situasi tersebut (sebenarnya, dalam semua kes) adalah menggunakan struktur direktori yang mengandungi arahan untuk setiap kumpulan tugas dalam fail yang berbeza.

Pendekatan ini membolehkan kami menggunakan semula fail konfigurasi ini dalam projek berasingan di jalan. Setiap fail ini menentukan apa yang disebut di Ekosistem ansible peranan.

Dalam kes kita, kita akan membuat dua peranan. Salah seorang daripada mereka (dipanggil WP-Dependencies) akan digunakan untuk memasang kebergantungan WordPress (Php dan Mariadb - tidak perlu memasang Apache Seperti yang sudah dipasang).

Peranan lain (dinamakan WP-Install-Config) akan memasukkan semua tugas yang diperlukan yang berkaitan dengan pemasangan dan konfigurasi WordPress.

Langkah 2: Membuat Peranan Ansible

Ansible dilengkapi dengan utiliti yang dipanggil Ansible-Galaxy yang akan membantu kita membuat struktur direktori untuk peranan kita. Kami akan melakukan ini di /etc/ansible/playbooks (Yang kami buat dalam Bahagian 2) tetapi dalam teori anda boleh menetapkannya dalam direktori lain jika anda mahu.

# cd/etc/ansible/playbooks # ansible-galaxy init wp-dependencies # ansible-galaxy init wp-install-config 
Ansible: Buat peranan WordPress

Seterusnya mengesahkan peranan yang baru dibuat.

# ls -r/etc/ansible/playbooks 
Ansible: Sahkan struktur direktori wordpress

Dalam imej di atas kita dapat melihatnya Ansible-Galaxy mencipta dua direktori dengan nama yang sama dengan peranan kami, dan subdirektori lain (lalai, fail, Pengendali, meta, tugas, templat, dan vars) dan a BACA SAYA.md fail di dalam setiap mereka.

Di samping itu, fail yaml bernama utama.yml telah dibuat di dalam semua direktori yang disenaraikan sebelum ini, kecuali fail dan templat.

Kami akan bermula dengan menyunting fail konfigurasi berikut seperti yang ditunjukkan:

1. /etc/ansible/playbooks/wp-dependencies/tugas/utama.yml. Perhatikan bahawa kita termasuk httpd Sekiranya anda tidak mengikuti bersama tutorial sebelumnya dalam siri ini.

utama.yml
--- # Tugas Fail untuk WP -Dependencies - Nama: Pakej Kemas Kini (ini bersamaan dengan yum update -y) yum: name =* state = terbaru - nama: pemasangan dependencies untuk wordpress yum: name = item state = present with_items : - HTTPD - MariaDB -Server - MariaDB - PHP - PHP -MYSQL - MySQL -PYTHON - Nama: Pastikan MariaDB sedang berjalan (dan membolehkannya di Boot) Perkhidmatan:.saya.CNF ke nod salinan: src =/root/.saya.cnf dest =/root/.saya.CNF - Nama: Buat Pangkalan Data MariaDB MySql_db: name = WP_MYSQL_DB state = present - name: create Mariadb Name dan kata laluan mysql_user: login_user = root login_password = youriadbrootwordHere =*.*:SEMUA 

2. /etc/ansible/playbooks/wp-dependencies/lalai/utama.yml

utama.yml
--- # Fail lalai untuk WP-Dependencies WP_MYSQL_DB: MYWP WP_MYSQL_USER: WPUSER WP_MYSQL_PASSWORD: WPP4SS 

3. /etc/ansible/playbooks/wp-install-config/tugas/utama.yml:

utama.yml
--- # Tugas Fail untuk WP -Install -Config -Nama: Buat Direktori Untuk Muat turun WordPress Command: Mkdir -P/Opt/Source/WordPress -Nama: Muat turun WordPress Get_url: url = https: // www.WordPress.org/terkini.tar.Gz Dest =/Opt/Source/WordPress/WordPress.tar.gz validate_certs = no - Nama: Ekstrak WordPress Command: "tar xzf/opt/source/wordpress/wordpress.tar.gz -c/var/www/html--strip-components 1 "-Nama: hantar fail config salinan: src =/root/wp-config-sample.php dest =/var/www/html/wp-config.Mod PHP = 0644 

4. WP-CONFIG-SAMPLE.php (disediakan di pastebin ini) seperti berikut dan simpannya ke mesin pengawal Ansible anda (seperti yang anda lihat dalam arahan salinan terakhir di atas, saya memuat turunnya ke direktori rumah super (/Root/WP-Config-Sample.php).

Penting: Sila ambil perhatian bahawa nilai untuk pembolehubah Db_name, Db_user, dan Db_password sama seperti di /etc/ansible/playbooks/wp-dependencies/lalai/utama.yml:

WP-CONFIG-SAMPLE.php
... / ** Nama pangkalan data untuk WordPress* / define ('db_name', 'mywp'); / ** Nama pengguna MySQL Database*/ define ('db_user', 'wpuser'); / ** kata laluan pangkalan data mysql*/ define ('db_password', 'wpp4ss'); 

5. Untuk pemasangan pelayan pangkalan data baru di mana kata laluan root kosong, seperti dalam kes ini, malangnya kita perlu menyediakan kata laluan untuk akar pengguna secara individu di setiap mesin melalui mysql_secure_installation.

Sejauh yang saya tahu, tidak ada penyelesaian yang tersedia yang membolehkan anda menyediakan kata laluan root melalui Ansible Dalam langkah yang sama di mana anda membuat akaun pangkalan data pentadbiran untuk WordPress.

Pastikan anda menggunakan kata laluan yang sama di semua tuan rumah, kemudian salin kelayakan di /root/.saya.cnf (Lokasi sebenar mungkin berbeza dalam kes anda, tetapi dalam semua keadaan, ia perlu sesuai dengan nilai SRC parameter untuk tugas Salin ~/.saya.cnf ke nod dalam /etc/ansible/playbooks/wp-dependencies/tugas/utama.yml).

Dalam fail itu (lihat di atas) kami mengandaikan bahawa kata laluan untuk root adalah Yourmariadbrootpassword.

Kata laluan pangkalan data ansible

6. Seterusnya, buku main kami (/etc/ansible/playbooks/playbook.yml) akan kelihatan lebih teratur dan mudah apabila dibandingkan dengan tutorial sebelumnya:

# Playbook Cat.yml 
Ansible WordPress Playbooks
- Hos: Peranan Webservers:-WP-Dependencies-WP-Install-Config 

Akhirnya, sudah tiba masanya untuk menjalankan tugas -tugas ini dengan menggunakan buku main kami:

# Ansible-Playbook Playbook.yml 

Sekarang mari kita periksa sama ada kami dapat mengakses halaman admin WordPress menggunakan alamat IP Node1 192.168.0.29 dan Node2 192.168.0.30:

Pemasangan WordPress Ansible

Anda boleh melihat dua langkah terakhir dalam screencast berikut:

Seperti yang anda lihat, anda boleh menyediakan pelbagai pemasangan WordPress dengan sedikit usaha menggunakan Ansible. Kemudian anda boleh menggunakan masing -masing Admin antara muka pengguna untuk mengkonfigurasi setiap laman web secara berasingan.

Pertimbangan Akhir

Sekiranya anda menggunakan pengedaran lain untuk digunakan WordPress, Nama pakej mungkin berbeza -beza, tetapi ia turun untuk memasang pelayan web Apache, pelayan pangkalan data MariaDB, dan modul Python MySQL. Sekiranya itu berlaku, gunakan sistem pengurusan perisian pengedaran anda untuk mencari nama pakej yang tepat yang perlu anda pasang.

Ringkasan

Dalam siri ini, kami telah menerangkan cara menggunakan Ansible untuk menjalankan arahan dan melaksanakan tugas kompleks dalam beberapa mesin Linux secara serentak.

Salah satu contoh sedemikian adalah menubuhkan WordPress, Seperti yang telah kita bincangkan dalam panduan ini. Sama ada anda seorang pentadbir sistem atau blogger, saya harap anda dapati konsep dan contoh dalam tutorial ini berguna.

Semoga berjaya dan jangan ragu untuk menggugurkan kami jika anda memerlukan bantuan atau mempunyai komen atau cadangan!