Pelajari tentang Playbook yang Mungkin untuk Mengotomatiskan Tugas

Pelajari tentang Playbook Ansible untuk mengotomatiskan tugas.


Sebelumnya, kami membahas pengantar yang mungkin, panduan instalasi, dan selanjutnya, mari kita bicara tentang Playbook dan blok bangunannya.

Apa itu Playbook Ansible?

Playbook adalah bahasa otomatisasi yang dimungkinkan. Ini adalah file sederhana dengan serangkaian instruksi. Itu ada di buku pedoman di mana kita mendefinisikan apa yang ingin kita lakukan. Playbook berisi permainan yang menjalankan tugas, dan tugas ini menjalankan modul. Tugas mereka dieksekusi secara berurutan.

Sebagai contoh, bisa sesederhana menjalankan serangkaian perintah pada server yang berbeda secara berurutan dan memulai kembali server tersebut secara berurutan. Atau itu bisa serumit menggunakan dan menyediakan ratusan VM di cloud publik dan pribadi termasuk penyeimbangan beban, pemantauan, pengaturan jaringan.

Bahasa Playbook

Playbook adalah file sederhana yang ditulis dalam kode YAML.

YAML adalah bahasa serialisasi data. Itu manusia dan dapat dibaca mesin. Anda tidak memerlukan keahlian pengkodean khusus untuk menulis kode YAML. Anda dapat menganggap bahasa serialisasi data sebagai penerjemah untuk memecah semua struktur data Anda dan mengurutkannya dalam urutan yang dapat direkonstruksi kembali untuk digunakan nanti. Anda dapat menggunakan struktur data yang direkonstruksi ini di lingkungan yang sama atau bahkan di lingkungan yang berbeda.

Di bawah ini adalah contoh file YAML untuk menginstal mysql:


– nama: Instal MySQL
host: geekflare-mysql-service
tugas:
– nama: Instal MySQL
action: $ ansible_pkg_mgr pkg = status mysql-server = terinstal
– nama: Tambahkan Python MySQL DB
action: $ ansible_pkg_mgr pkg = keadaan python-mysqldb = terinstal

Dasar-Dasar Playbook yang Mungkin

Bagian artikel ini mencakup konsep dasar Ansible untuk memahami lebih lanjut tentang Ansible Playbook.

Host dan Pengguna

Ansible membutuhkan mesin target dalam infrastruktur tempat permainan harus dikerahkan dari Playbook yang mungkin. Host ditambahkan ke inventaris yang dimungkinkan melalui alamat IP mereka. Host adalah daftar satu atau lebih grup atau pola host yang dipisahkan oleh tanda titik dua. Remote_user berisi nama akun pengguna.


– host: ProdServers
remote_user: geekflare

Variabel

Variabel memungkinkan Anda untuk mengubah cara bermain buku pedoman. Mereka dapat digunakan hampir di mana-mana di playbook dan dapat diwarisi dari inventaris, secara eksplisit ditetapkan pada saat runtime, ditemukan pada awal menjalankan playbook. Anda dapat mendefinisikan nama variabel menggunakan huruf, angka, dan garis bawah, tetapi harus dimulai hanya dengan huruf.

Misalnya, port_01 adalah variabel yang valid, sedangkan 01_post adalah variabel yang tidak valid. Berikut adalah contoh variabel dalam Playbook Ansible:

vars:
http_port: 80
maks_klien: 200

Persediaan

Untuk menjalankan buku pedoman, Anda memerlukan daftar target yang Anda inginkan terjadi otomasi. Inilah yang dilakukan inventaris. Daftar inventaris dapat dibangun dan disimpan dalam beberapa cara yang berbeda, termasuk file statis, mis., Host yang Mungkin. Atau dapat dihasilkan secara dinamis melalui skrip inventaris yang akan menarik daftar host untuk sumber eksternal.

Anda juga dapat menentukan variabel sebagai bagian dari daftar inventaris. Inventaris pada akhirnya adalah daftar hal-hal yang ingin Anda otomatisasi.

[webservers]
192.168.20.1
192.168.20.2
192.168.20.4
[dbservers]
172.17.1.56
172.17.1.57

Tugas

Dimainkan dalam menjalankan tugas playbook mungkin. Tugas ini bertanggung jawab untuk menjalankan modul yang mungkin. Pada suatu waktu, hanya satu tugas yang dapat dijalankan, dan tugas dieksekusi dalam urutan berurutan. Tugas mereka ditulis dalam YAML, yang cukup banyak bahasa Inggris.

Sebagai contoh: instal package_name, Perbarui software_name, dll. Di bawah ini adalah contoh tugas di Playbook yang memungkinkan untuk menginstal httpd:

tugas:
– nama: Instal Paket httpd
yum: name = httpd state = terbaru

Penangan

Penangan adalah jenis tugas khusus.

Mereka dapat dipicu oleh tugas dan dijalankan sekali pada akhir permainan. Ini digunakan untuk mengirim pemberitahuan jika ada perubahan dalam file konfigurasi, misalnya, beri tahu layanan untuk memulai apache setelah terinstal. Sintaks “notify” digunakan untuk memanggil penangan. Di bawah ini adalah contoh penangan untuk memulai kembali apache:


– host: semua
tugas:
– name: pastikan apache ada di versi terbaru
yum: name = httpd state = terbaru
memberitahukan:
– restart apache
– name: pastikan apache berjalan (dan aktifkan saat boot)
service: name = httpd state = mulai diaktifkan = ya
penangan:
– nama: restart apache
service: name = httpd state = restart

Buat dan Jalankan Playbook Ansible Pertama Anda

Biarkan saya memberi tahu Anda cara menulis buku pedoman. Setiap buku pedoman dimulai dengan tiga tanda hubung (-) di bagian atas.

Hal pertama yang Anda sebutkan dalam Ansible Playbook adalah mesin host tempat Anda ingin menjalankan playbook.

Kemudian Anda bisa menyebutkan variabel dengan mengumpulkan fakta; maka Anda dapat menyebutkan berbagai tugas yang ingin Anda lakukan. Sekarang, ingatlah bahwa tugas akan dieksekusi dalam urutan yang sama seperti yang Anda tulis. Misalnya, Anda ingin menginstal perangkat lunak A pertama dan kemudian perangkat lunak B, pastikan bahwa tugas pertama yang ditulis dalam buku pedoman adalah menginstal perangkat lunak A dan tugas berikutnya dapat menginstal perangkat lunak B.

Maka Anda punya penangan di bagian bawah. Penangan juga tugas, tetapi perbedaannya adalah untuk mengeksekusi penangan Anda perlu semacam pemicu dalam daftar tugas untuk menjalankan penangan.

Biarkan saya menunjukkan kepada Anda cara membuat buku pedoman yang memungkinkan untuk menginstal dan memulai nginx pada host dan memulainya.

Buat file .yml di mana Anda akan meletakkan kode YAML Anda untuk membuat buku pedoman yang memungkinkan.

gedit nginx.yml

Masukkan kode YAML di bawah ini dalam file ini dan simpan file tersebut.


– host: Klien
sudo: ya
vars:
– server_port: 8080

tugas:
– nama: Menginstal server web nginx
apt: pkg = status nginx = terinstal update_cache = true
memberitahukan:
– mulai nginx

penangan:
– nama: mulai nginx
layanan: nama = status nginx = dimulai

File YAML di atas dimulai dengan host, saya ingin menjalankan buku pedoman ini pada mesin klien (Klien). Alamat IP klien sudah disimpan dalam file / etc / ansible / hosts.

Baris berikutnya memungkinkan menjalankan tugas dengan hak sudo.

Kemudian saya telah mendefinisikan server_port sebagai variabel dalam buku pedoman ini.

Kemudian datang tugas pertama saya di buku pedoman yang dimungkinkan ini untuk menginstal server web Nginx. Tugas ini juga memiliki pemberitahuan parameter, yang berarti setelah tugas ini seorang pawang dengan menjalankan.

Akhirnya, saya menulis handler untuk memulai nginx di mesin klien.

Sekarang setelah Anda jelas dengan kode YAML di buku pedoman yang memungkinkan mari kita jalankan buku pedoman itu. Di bawah ini adalah sintaks untuk menjalankan buku pedoman yang mungkin:

anonim-playbook file_name.yml

Sekarang, saya akan menjalankan playbook yang memungkinkan, yang saya buat untuk menginstal dan memulai nginx.

[dilindungi email]: / home / geekflare # ansible-playbook nginx.yml

MAIN [Klien] ****************************************** ********************

TUGAS [Fakta Berkumpul] ******************************************* ************
ok: [node1]

TUGAS [Menginstal server web nginx] ***************************************** ****

berubah: [node1]

MENJALANKAN HANDLER [start nginx] ****************************************** ******
ok: [node1]

MAINKAN KEMBALI ********************************************** ***********************
node1: ok = 3 berubah = 1 tidak terjangkau = 0 gagal = 0 dilewati = 0 diselamatkan = 0 diabaikan = 0

Jalankan perintah di bawah ini untuk memeriksa apakah server nginx diinstal dan dimulai dengan benar oleh playbook yang mungkin.

[dilindungi email]: / home / geekflare # ps waux | grep nginx
root 3021 0.0 0.077676 1516? Ss 15:27 0:00 nginx: proses master / usr / sbin / nginx -g aktif; master_process on;

Kesimpulan

Itu tentang buku pedoman Ansible. Saya harap artikel ini membantu Anda mempelajari cara membuat dan menjalankan buku pedoman yang dimungkinkan. Lihat ini Tentu saja, jika Anda ingin mempelajari topik lanjutan di Ansible, termasuk Peran, Jinja2, Pencarian, Filter, Modul Kustom.

TAGS:

  • Mungkin

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map