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

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

Dalam artikel sebelumnya dari serial ansible ini, kami menjelaskan bahwa Ansible adalah alat tanpa agen yang memungkinkan Anda untuk mengelola banyak mesin dengan cepat dan efisien (juga dikenal sebagai node - dan melakukan penyebaran juga) dari satu sistem dari satu sistem.

Gunakan buku pedoman ansible untuk mengotomatiskan tugas kompleks di Linux - Bagian 2

Setelah menginstal perangkat lunak di mesin pengontrol, membuat tombol untuk login tanpa kata sandi dan menyalinnya ke node, sekarang saatnya untuk mempelajari cara mengoptimalkan proses mengelola sistem jarak jauh tersebut menggunakan Semu.

Lingkungan pengujian yang tidak mungkin

Sepanjang artikel ini, serta yang berikutnya, kami akan menggunakan lingkungan pengujian berikut. Semua host adalah Centos 7 Kotak:

Mesin pengontrol (di mana ansible diinstal): 192.168.0.19 Node1: 192.168.0.29 Node2: 192.168.0.30 

Selain itu, harap dicatat bahwa kedua node telah ditambahkan di bagian WebServers di Lokal /etc/ansible/host mengajukan:

File host ansible

Yang mengatakan, mari kita mulai dengan topik yang ada.

Memperkenalkan buku pedoman ansible

Seperti yang dijelaskan dalam panduan sebelumnya, Anda dapat menggunakan semu utilitas untuk menjalankan perintah di node jarak jauh sebagai berikut:

# Ansible -a "/bin/hostnamectl --static" WebServer 
Ansible: Jalankan perintah di Linux jarak jauh

Dalam contoh di atas, kami berlari HOSTNAMECTL --STATIC pada node1 Dan node2. Tidak butuh waktu lama bagi seseorang untuk menyadari bahwa metode menjalankan tugas pada komputer jarak jauh ini berfungsi dengan baik untuk perintah pendek tetapi dapat dengan cepat menjadi memberatkan atau berantakan untuk tugas yang lebih kompleks yang memerlukan parameter konfigurasi yang terstruktur dengan baik atau interaksi dengan layanan lain

Misalnya, mengatur dan mengonfigurasi WordPress pada beberapa host - yang akan kami bahas di artikel berikutnya dari seri ini). Di sinilah Buku pedoman datang ke tempat kejadian.

Sederhananya, Buku pedoman adalah file teks biasa yang ditulis di Yaml format, dan berisi daftar dengan item dengan satu atau lebih pasangan kunci/nilai (juga dikenal sebagai "hash"Atau"kamus").

Di dalam setiap buku pedoman Anda akan menemukan satu atau lebih kelompok host (masing -masing kelompok ini juga disebut a bermain) di mana tugas yang diinginkan harus dilakukan.

Contoh dari dokumen resmi akan membantu kami untuk mengilustrasikan:

1. tuan rumah: Ini adalah daftar mesin (sesuai /etc/ansible/host) di mana tugas -tugas berikut akan dilakukan.

2. remote_user: Akun jarak jauh yang akan digunakan untuk melakukan tugas.

3. vars: Variabel yang digunakan untuk memodifikasi perilaku sistem jarak jauh.

4. tugas dieksekusi secara berurutan, satu per satu, melawan semua mesin yang cocok dengan host. Dalam sebuah drama, semua host akan mendapatkan arahan tugas yang sama.

Jika Anda perlu menjalankan serangkaian tugas terkait yang berbeda untuk host tertentu, buat permainan lain di saat ini Buku pedoman (Dengan kata lain, tujuan dari suatu permainan adalah untuk memetakan pilihan host tertentu untuk tugas yang terdefinisi dengan baik).

Dalam hal ini, mulailah permainan baru dengan menambahkan arahan host di bagian bawah dan mulai lagi:

--- - hosts: webservers remote_user: root vars: variable1: value1 variable2: value2 remote_user: root tasks: - name: description for task1 task1: parameter1=value_for_parameter1 parameter2=value_for_parameter2 - name: description for task1 task2: parameter1=value_for_parameter1 parameter2=value_for_parameter2 handlers: - Nama: Deskripsi untuk penangan 1 Layanan: name = name_of_service state = service_status - Hosts: dbserver remote_user: root vars: variabel1: value1 variabel2: value2… 

5. Penangan adalah tindakan yang dipicu di bagian akhir tugas di setiap permainan, dan sebagian besar digunakan untuk memulai kembali layanan atau memicu reboot dalam sistem jarak jauh.

# mkdir/etc/ansible/playbooks 

Dan file bernama Apache.YML Di dalam sana dengan konten berikut:

--- - HOSTS: WebServer VARS: http_port: 80 max_clients: 200 remote_user: root tugas: - Nama: Pastikan Apache ada pada versi terbaru YUM: pkg = httpd state = terbaru - nama: ganti indeks default:.HTML File Copy: src =/static_files/index.html dest =/var/www/html/mode = 0644 Notify: - Restart Apache - Name: Pastikan Apache sedang berjalan (dan aktifkan di boot) Layanan: Nama = httpd status = mulai diaktifkan = ya penangan: - Nama: Restart Apache Layanan: Nama = status httpd = restart 

Kedua, buat direktori /static_files:

# mkdir /static_files 

dimana Anda akan menyimpan kebiasaan indeks.html mengajukan:

       

Apache dimulai di host ini melalui ansible


Dibawa kepada Anda oleh Tecmint.com

Yang mengatakan, sekarang saatnya menggunakan buku pedoman ini untuk melakukan tugas yang disebutkan sebelumnya. Anda akan mencatat bahwa Ansible akan melalui setiap tugas oleh host, satu per satu, dan akan melaporkan status tugas tersebut:

# ansible-playbook/etc/ansible/playbooks/apache.YML 
Ansible: Tugas Otomatis di Linux

Sekarang mari kita lihat apa yang terjadi ketika kita membuka browser dan arahkan ke 192.168.0.29 Dan 192.168.0.30:

Ansible: Konfirmasi tugas otomatis

Mari kita selangkah lebih maju dan berhenti secara manual dan nonaktifkan Apache node1 Dan node2:

# systemctl stop httpd # systemctl nonaktifkan httpd # systemctl is-active httpd # systemctl IS-Enabled httpd 
Berhenti dan Nonaktifkan Layanan Apache

Lalu jalankan lagi,

# ansible-playbook/etc/ansible/playbooks/apache.YML 

Kali ini, tugas melaporkan bahwa server web Apache telah dimulai dan diaktifkan pada setiap host:

Ansible: Mulai server web

Harap pertimbangkan contoh di atas sebagai sekilas kekuatan ansible. Meskipun ini adalah tugas yang relatif mudah ketika dilakukan pada sejumlah kecil server, itu bisa menjadi sangat membosankan dan memakan waktu jika Anda perlu melakukan hal yang sama di beberapa (mungkin ratusan) mesin.

Ringkasan

Dalam artikel ini kami telah menggambarkan cara menjalankan perintah dan menjalankan tugas kompleks pada beberapa host jarak jauh secara bersamaan menggunakan ansible. Dokumentasi resmi dan repositori GitHub memberikan banyak contoh dan panduan tentang cara menggunakan ansible untuk mencapai hampir semua tugas yang bisa dibayangkan.

Saat Anda mulai belajar cara mengotomatisasi tugas pada host Linux jarak jauh menggunakan Ansible, kami ingin mendengar pikiran Anda. Pertanyaan, komentar, dan saran juga selalu diterima, jadi jangan ragu untuk menghubungi kami menggunakan formulir di bawah ini kapan saja.