Cara Menggunakan Ansible Playbook untuk mengautomasikan tugas kompleks pada Pelbagai Pelayan Jauh - Bahagian 2

Cara Menggunakan Ansible Playbook untuk mengautomasikan tugas kompleks pada Pelbagai Pelayan Jauh - Bahagian 2

Dalam artikel sebelumnya siri Ansible ini, kami menjelaskan bahawa Ansible adalah alat yang kurang ejen yang membolehkan anda menguruskan beberapa mesin dengan cepat dan cekap (juga dikenali sebagai nod - dan melakukan penyebaran kepada mereka juga) dari satu sistem.

Gunakan buku main ansible untuk mengautomasikan tugas kompleks di Linux - Bahagian 2

Setelah memasang perisian di mesin pengawal, membuat kunci untuk log masuk tanpa kata laluan dan menyalinnya ke nod, sudah tiba masanya untuk mempelajari cara mengoptimumkan proses menguruskan sistem jauh tersebut menggunakan Ansible.

Persekitaran ujian ansible

Sepanjang artikel ini, dan juga yang seterusnya, kami akan menggunakan persekitaran ujian berikut. Semua tuan rumah adalah Centos 7 Kotak:

Mesin pengawal (di mana Ansible dipasang): 192.168.0.19 Node1: 192.168.0.29 Node2: 192.168.0.30 

Di samping itu, sila ambil perhatian bahawa kedua -dua nod telah ditambah di bahagian webservers di tempatan /etc/ansible/host Fail:

Fail hos ansible

Yang berkata, mari kita mulakan dengan topik yang ada.

Memperkenalkan Ansible Playbooks

Seperti yang diterangkan dalam panduan sebelumnya, anda boleh menggunakan ansible Utiliti untuk menjalankan arahan dalam nod jauh seperti berikut:

# ansible -a "/bin/hostnamectl --static" Webservers 
Ansible: Jalankan arahan di Linux Jauh

Dalam contoh di atas, kami berlari Hostnamectl -Static pada node1 dan node2. Ia tidak mengambil masa yang lama untuk menyedari bahawa kaedah menjalankan tugas di komputer jauh berfungsi dengan baik untuk arahan pendek tetapi dengan cepat boleh menjadi membebankan atau tidak kemas untuk tugas yang lebih kompleks yang memerlukan parameter konfigurasi yang lebih baik atau interaksi dengan perkhidmatan lain dengan perkhidmatan lain

Contohnya, menubuhkan dan mengkonfigurasi WordPress Pada pelbagai tuan rumah - yang akan kami sampaikan dalam artikel seterusnya dalam siri ini). Di sinilah dimana Buku Playbooks masuk ke tempat kejadian.

Hanya meletakkan, Buku Playbooks adalah fail teks biasa yang ditulis di Yaml format, dan mengandungi senarai dengan item dengan satu atau lebih pasangan kunci/nilai (juga dikenali sebagai "hash"Atau"Kamus").

Di dalam setiap buku main anda akan menemui satu atau lebih kumpulan tuan rumah (setiap kumpulan ini juga dipanggil bermain) di mana tugas yang dikehendaki dilakukan.

Contoh dari dokumen rasmi akan membantu kami menggambarkan:

1. tuan rumah: ini adalah senarai mesin (seperti /etc/ansible/host) di mana tugas berikut akan dilakukan.

2. REMOTE_USER: akaun jauh yang akan digunakan untuk melaksanakan tugas.

3. vars: Pembolehubah yang digunakan untuk mengubah suai tingkah laku sistem jauh.

4. tugas dilaksanakan dengan teratur, satu demi satu, terhadap semua mesin yang sesuai dengan tuan rumah. Dalam permainan, semua tuan rumah akan mendapat arahan tugas yang sama.

Sekiranya anda perlu melaksanakan satu set tugas yang berbeza untuk tuan rumah tertentu, buat permainan lain dalam semasa Playbook (Dengan kata lain, tujuan permainan adalah untuk memetakan pemilihan tuan rumah khusus untuk tugas yang jelas).

Dalam kes itu, mulakan permainan baru dengan menambahkan arahan tuan rumah di bahagian bawah dan bermula:

--- - Hos: WebServers REMOTE_USER: Root Vars: Variable1: Value1 Variable2: Value2 Remote_USER: Root Tasks: - Nama: Penerangan untuk Task1: Parameter1 = Value_For_Parameter1 Parameter2 Nama: Penerangan untuk Pengendali 1 Perkhidmatan: Name = Name_of_Service State = Service_Status - Hosts: DBServers Remote_USER: Root Vars: Variable1: Value1 Variable2: Value2 .. 

5. Pengendali adalah tindakan yang dicetuskan pada akhir bahagian tugas dalam setiap permainan, dan kebanyakannya digunakan untuk memulakan semula perkhidmatan atau mencetuskan reboot dalam sistem jauh.

# mkdir/etc/ansible/playbooks 

Dan fail yang dinamakan Apache.yml Di dalamnya dengan kandungan berikut:

--- - Hos: WebServers Vars: http_port: 80 max_clients: 200 remote_user: Tugas root: - Nama: Pastikan Apache berada pada versi terkini yum: pkg = httpd state = terkini - Nama: Ganti indeks lalai.Salinan fail html: src =/static_files/index.html dest =/var/www/html/mod = 0644 NOTIFI Perkhidmatan: Nama = httpd state = dimulakan semula 

Kedua, buat direktori /statik_files:

# mkdir /static_files 

di mana anda akan menyimpan adatnya indeks.html Fail:

       

Apache dimulakan dalam tuan rumah ini melalui Ansible


Dibawa kepada anda oleh Tecmint.com

Yang mengatakan, kini sudah tiba masanya untuk menggunakan buku main ini untuk melaksanakan tugas -tugas yang disebutkan sebelumnya. Anda akan perhatikan bahawa Ansible akan melalui setiap tugas oleh tuan rumah, satu demi satu, dan akan melaporkan status tugas tersebut:

# Ansible-Playbook/etc/Ansible/Playbooks/Apache.yml 
Ansible: Automatikkan tugas di Linux

Sekarang mari kita lihat apa yang berlaku apabila kita membuka penyemak imbas dan tunjukkannya 192.168.0.29 dan 192.168.0.30:

Ansible: Sahkan tugas automatik

Mari pergi satu langkah lebih jauh dan berhenti secara manual dan lumpuhkan Apache node1 dan node2:

# Systemctl Stop Httpd # Systemctl Disable Httpd # Systemctl IS-Active Httpd # Systemctl IS-Enabled Httpd 
Berhenti dan Lumpuhkan Perkhidmatan Apache

Kemudian lari lagi,

# Ansible-Playbook/etc/Ansible/Playbooks/Apache.yml 

Kali ini, tugas melaporkan bahawa pelayan web Apache telah dimulakan dan didayakan pada setiap hos:

Ansible: Mula pelayan web

Sila pertimbangkan contoh di atas sebagai gambaran kuasa Ansible. Walaupun ini adalah tugas yang agak mudah apabila dilakukan pada sebilangan kecil pelayan, ia boleh menjadi sangat membosankan dan memakan masa jika anda perlu melakukan perkara yang sama dalam beberapa (mungkin beratus-ratus) mesin.

Ringkasan

Dalam artikel ini, kami telah menerangkan cara menjalankan arahan dan melaksanakan tugas -tugas kompleks pada beberapa tuan rumah jauh secara serentak menggunakan Ansible. Dokumentasi rasmi dan repositori GitHub memberikan banyak contoh dan panduan mengenai cara menggunakan Ansible untuk mencapai hampir semua tugas yang boleh dibayangkan.

Semasa anda mula belajar bagaimana untuk mengautomasikan tugas pada tuan rumah Linux jauh menggunakan Ansible, kami ingin mendengar pendapat anda. Soalan, komen, dan cadangan juga sentiasa dialu -alukan, jadi jangan ragu untuk menghubungi kami menggunakan borang di bawah pada bila -bila masa.