Ansible adalah platform otomatisasi open source yang mencakup pengelolaan konfigurasi, penerapan aplikasi, dan orkestrasi infrastruktur. Ini adalah alat otomatisasi populer untuk engineer DevOps dan administrator sistem. Administrator sistem sering menghadapi kelelahan karier karena jam kerja yang panjang dan karena melakukan tugas yang berulang di banyak sistem, tetapi Ansible membantu membuat tugas ini lebih mudah untuk diselesaikan. Tugas seperti pembuatan pengguna, pengelolaan layanan, dan penginstalan software dapat diselesaikan menggunakan Ansible. Ansible adalah berbasis prosedur, bukan deklaratif, yang berarti Anda menulis semua langkah yang diperlukan ke dalam file YAML, lalu menjalankannya secara berurutan di semua sistem target.
[ Anda mungkin juga ingin membaca: Menggunakan playbook Ansible untuk mengelola pembaruan workstation dan server ]
Node
Dalam arsitektur Ansible, Anda memiliki node pengontrol dan node terkelola. Ansible hanya diinstal pada node pengontrol. Ini adalah alat tanpa agen dan tidak perlu diinstal pada node yang dikelola. Pengontrol dan node yang dikelola terhubung menggunakan protokol SSH. Semua tugas ditulis ke dalam "buku pedoman" menggunakan bahasa YAML. Setiap buku pedoman dapat berisi beberapa permainan, yang berisi tugas , dan tugas berisi modul . Modul adalah skrip mandiri yang dapat digunakan kembali yang mengelola beberapa aspek perilaku sistem. Modul yang memungkinkan juga dikenal sebagai plugin tugas atau plugin perpustakaan.
Peran
Buku pedoman untuk tugas-tugas kompleks bisa menjadi panjang dan karena itu sulit untuk dibaca dan dipahami. Solusi untuk masalah ini adalah peran yang Memungkinkan . Dengan menggunakan peran, Anda dapat memecah playbook panjang menjadi beberapa file sehingga setiap playbook mudah dibaca dan dipahami. Peran adalah kumpulan template, file, variabel, modul, dan tugas. Tujuan utama di balik peran adalah untuk menggunakan kembali kode Ansible. Insinyur dan sysadmin DevOps harus selalu mencoba menggunakan kembali kode mereka. Peran Ansible dapat berisi beberapa buku pedoman. Itu dapat dengan mudah menggunakan kembali kode yang ditulis oleh siapa pun jika perannya cocok untuk kasus tertentu. Misalnya, Anda dapat menulis buku pedoman untuk hosting Apache, lalu menggunakan kembali kode ini dengan mengubah konten index.html
untuk mengubah opsi untuk beberapa aplikasi atau layanan lain.
Berikut ini adalah ikhtisar dari struktur peran Ansible. Ini terdiri dari banyak subdirektori, seperti:
|-- README.md
|-- defaults
|-------main.yml
|-- files
|-- handlers
|-------main.yml
|-- meta
|-------main.yml
|-- tasks
|-------main.yml
|-- templates
|-- tests
|-------inventory
|-- vars
|-------main.yml
Awalnya, semua file dibuat kosong dengan menggunakan ansible-galaxy
memerintah. Jadi, bergantung pada tugasnya, Anda dapat menggunakan direktori ini. Misalnya, vars
direktori menyimpan variabel. Dalam tasks
direktori, Anda memiliki main.yml
, yang merupakan buku pedoman utama. templates
direktori adalah untuk menyimpan template Jinja. handlers
direktori untuk menyimpan penangan.
Keuntungan dari peran Ansible:
- Izinkan penggunaan ulang konten
- Jadikan proyek besar dapat dikelola
Peran yang memungkinkan adalah direktori terstruktur yang berisi sub-direktori.
Tapi tahukah Anda bahwa Red Hat Enterprise Linux juga menyediakan beberapa Peran Sistem yang Mungkin untuk mengelola tugas sistem operasi?
Peran sistem
rhel-system-roles
paket tersedia di saluran Extras (EPEL). rhel-system-roles
package digunakan untuk mengkonfigurasi host RHEL. Ada tujuh rhel-system-roles
default tersedia:
- rhel-system-roles.kdump - Peran ini mengonfigurasi layanan pemulihan kerusakan kdump. Kdump adalah fitur kernel Linux dan berguna saat menganalisis penyebab kerusakan kernel.
- rhel-system-roles.network - Peran ini didedikasikan untuk antarmuka jaringan. Ini membantu mengonfigurasi antarmuka jaringan di sistem Linux.
- rhel-system-roles.selinux - Peran ini mengelola SELinux. Ini membantu mengonfigurasi mode SELinux, file, konteks port, dll.
- rhel-system-roles.timesync - Peran ini digunakan untuk mengonfigurasi NTP atau PTP di sistem Linux Anda.
- rhel-system-roles.postfix - Peran ini didedikasikan untuk mengelola agen transfer email Postfix.
- rhel-system-roles.firewall - Seperti namanya, peran ini adalah tentang mengelola konfigurasi firewall sistem host.
- rhel-system-roles.tuned - Tuned adalah layanan penyetelan sistem di Linux untuk memantau perangkat yang terhubung. Jadi peran ini adalah untuk mengonfigurasi layanan yang disetel untuk kinerja sistem.
rhel-system-roles
paket berasal dari peran sistem Linux open source. Peran sistem Linux ini tersedia di Ansible Galaxy. rhel-system-roles
didukung oleh Red Hat, jadi Anda dapat menganggap ini sebagai rhel-system-roles
adalah hilir dari peran sistem Linux. Untuk menginstal rhel-system-roles
di mesin Anda, gunakan:
$ sudo yum -y install rhel-system-roles
or
$ sudo dnf -y install rhel-system-roles
Peran ini terletak di /usr/share/ansible/roles/
direktori.
Ini adalah jalur default, jadi setiap kali Anda menggunakan playbook untuk merujuk peran ini, Anda tidak perlu secara eksplisit menyertakan jalur absolut. Anda juga dapat merujuk ke dokumentasi untuk menggunakan peran Ansible. Jalur untuk dokumentasi adalah /usr/share/doc/rhel-system-roles
Direktori dokumentasi untuk setiap peran memiliki informasi rinci tentang peran itu. Misalnya, file README.md adalah contoh peran itu, dll. Dokumentasinya sudah cukup jelas.
Berikut ini adalah contoh peran.
Contoh
Jika Anda ingin mengubah mode SELinux mesin localhost atau mesin host apa pun, gunakan peran sistem. Untuk tugas ini, gunakan rhel-system-roles.selinux
Untuk tugas ini, buku pedoman yang mungkin terlihat seperti ini:
---
- name: a playbook for SELinux mode
hosts: localhost
roles:
- rhel-system-roles.selinux
vars:
- selinux_state: disabled
Setelah menjalankan playbook, Anda dapat memverifikasi apakah mode SELinux berubah atau tidak.
[ Mencari lebih banyak tentang otomatisasi sistem? Mulailah dengan The Automated Enterprise, buku gratis dari Red Hat. ]
Menutup
Pengantar singkat tentang peran Ansible ini seharusnya cukup untuk membantu Anda mulai menggunakannya di buku pedoman Anda. Ingatlah bahwa Ansible dimaksudkan untuk merampingkan dan menyederhanakan tugas-tugas berulang tersebut dan untuk membuat hidup sysadmin Anda lebih mudah.