Memahami Komponen Inti Ansible - Bagian 1


Ujian Red Hat Certified Specialist in Ansible Automation (EX407) adalah program sertifikasi baru dari Red Hat yang menguji keterampilan Anda dalam menggunakan Ansible untuk mengotomatisasi konfigurasi sistem dan aplikasi.

Seri ini akan diberi judul “Ujian Red Hat Certified Specialist in Ansible Automation (EX407)” dan mencakup tujuan ujian berikut berdasarkan Red Hat Enterprise Linux 7.5 dan Ansible 2.7, yang akan kita bahas dalam seri Ansible ini:

Untuk melihat biaya dan mendaftar ujian di negara Anda, periksa halaman ujian Ansible Automation.

Dalam Bagian 1 dari seri Ansible ini, kita akan membahas beberapa ikhtisar dasar komponen inti di Ansible.

Pahami Komponen Inti dari Ansible

Ansible adalah platform otomatisasi sumber terbuka dan gratis dari RedHat yang memungkinkan Anda mengelola dan mengontrol beberapa server dari satu lokasi terpusat. Ini sangat ideal ketika Anda memiliki banyak tugas dan berulang yang perlu dilakukan. Jadi, alih-alih masuk ke masing-masing node jarak jauh ini dan menjalankan tugas Anda, Anda dapat melakukannya dengan nyaman dari lokasi pusat dan mengelola server Anda dengan nyaman.

Hal ini bermanfaat ketika Anda ingin menjaga konsistensi dalam penerapan aplikasi, mengurangi kesalahan manusia, dan mengotomatiskan tugas-tugas yang berulang dan biasa-biasa saja.

Tentu saja, ada alternatif lain selain Ansible seperti Puppet, Chef, dan Salt. Namun, Ansible lebih disukai karena mudah digunakan dan dipelajari.

Mengapa mudah dipelajari, Anda mungkin bertanya? Hal ini karena Ansible menggunakan YAML (Yet Another Markup Language) dalam tugas konfigurasi dan otomatisasinya yang dapat dibaca manusia dan cukup mudah diikuti. YAML menggunakan protokol SSH untuk berkomunikasi dengan server jarak jauh, tidak seperti platform otomatisasi lainnya yang mengharuskan Anda menginstal agen pada node jarak jauh untuk berkomunikasi dengan server tersebut.

Sebelum kita memulai dengan Ansible, penting bagi Anda untuk memahami beberapa terminologi dasar agar Anda tidak tersesat atau bingung seiring berjalannya waktu.

Inventaris

Inventaris adalah file teks yang berisi daftar server atau node yang Anda kelola dan konfigurasikan. Biasanya, server dicantumkan berdasarkan nama host atau alamat IP-nya.

File inventaris dapat berisi sistem jarak jauh yang ditentukan berdasarkan alamat IP-nya seperti yang ditunjukkan:

10.200.50.50
10.200.50.51
10.200.50.52

Sebagai alternatif, mereka dapat didaftar menurut kelompok. Pada contoh di bawah, kami menempatkan server dalam 2 grup – server web dan database. Dengan cara ini mereka dapat direferensikan berdasarkan nama grupnya dan bukan alamat IP-nya. Ini semakin menyederhanakan proses operasi.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

Anda dapat memiliki beberapa grup dengan beberapa server jika Anda berada di lingkungan produksi yang besar.

Buku pedoman

Playbook adalah sekumpulan skrip manajemen konfigurasi yang menentukan bagaimana tugas dijalankan pada host jarak jauh atau sekelompok mesin host. Skrip atau instruksi ditulis dalam format YAML.

Misalnya, Anda dapat memiliki file playbook untuk menginstal server web Apache di CentOS 7 dan menyebutnya httpd.yml.

Untuk membuat playbook jalankan perintah.

touch playbook_name.yml

Misalnya untuk membuat playbook bernama httpd, jalankan perintah.

touch httpd.yml

File YAML dimulai dengan 3 tanda hubung seperti yang ditunjukkan. Di dalam file, tambahkan instruksi berikut.

---
- name: This installs and starts Apache webserver
  hosts: webservers

  tasks:
  - name: Install Apache Webserver 
    yum:   name=httpd  state=latest

 - name: check httpd status
    service:   name=httpd  state=started

Pedoman di atas memasang server web Apache pada sistem jarak jauh yang didefinisikan sebagai server web dalam file inventaris. Setelah instalasi server web, Ansible kemudian memeriksa apakah server web Apache dimulai dan berjalan.

Modul

Modul adalah unit kode terpisah yang digunakan dalam buku pedoman untuk menjalankan perintah pada host atau server jarak jauh. Setiap modul diikuti oleh argumen.

Format dasar modul adalah kunci: nilai.

- name: Install apache packages 
    yum:   name=httpd  state=present

Dalam cuplikan kode YAML di atas, -name dan yum adalah modul.

Dimainkan

pemain yang mungkin adalah skrip atau instruksi yang mendefinisikan tugas yang akan dilakukan di server. Kumpulan drama merupakan buku pedoman. Dengan kata lain, playbook adalah kumpulan beberapa permainan, yang masing-masing dengan jelas menetapkan tugas yang akan dilakukan di server. Pemutaran ada dalam format YAML.

Variabel

Jika Anda memiliki latar belakang pemrograman, kemungkinan besar Anda pernah menggunakan variabel. Pada dasarnya, variabel mewakili suatu nilai. Variabel dapat berisi huruf, angka, dan garis bawah, namun HARUS selalu diawali dengan huruf.

Variabel digunakan ketika instruksi berbeda dari satu sistem ke sistem lainnya. Hal ini terutama berlaku selama konfigurasi atau berbagai layanan dan fitur.

Ada 3 jenis variabel utama:

  • Variabel pedoman
  • Variabel inventaris
  • Variabel khusus

Di Ansible, variabel didefinisikan terlebih dahulu menggunakan vars k, lalu diikuti dengan nama variabel dan nilainya.

Sintaksnya seperti yang ditunjukkan:

vars:
Var name1: ‘My first variable’
	Var name2:  ‘My second variable’

Perhatikan kode di bawah ini.

- hosts: webservers
  vars: 
    - web_directory:/var/www/html/

Pada contoh di atas, variabel di sini adalah web_directory dan memerintahkan kemungkinan untuk membuat direktori di jalur /var/www/html/.

Fakta

Fakta adalah properti sistem yang dikumpulkan oleh Ansible saat menjalankan pedoman pada sistem host. Properti ini mencakup nama host, keluarga OS, jenis CPU, dan inti CPU, dan masih banyak lagi.

Untuk melihat sekilas jumlah fakta yang tersedia untuk digunakan, berikan perintah.

ansible localhost -m setup

Seperti yang Anda lihat, sejumlah besar fakta telah ditampilkan secara default. Anda selanjutnya dapat mempersempit hasil menggunakan parameter filter seperti yang ditunjukkan.

ansible localhost -m setup -a "filter=*ipv4"

File Konfigurasi

Di Ansible, file konfigurasi adalah file yang berisi pengaturan parameter berbeda yang menentukan cara Ansible berjalan. File konfigurasi default adalah file ansible.cfg yang terletak di direktori /etc/ansible/.

Anda dapat melihat file konfigurasi dengan menjalankan:

cat /etc/ansible/ansible.cfg

Seperti yang dapat Anda amati, beberapa parameter disertakan seperti jalur file inventaris dan perpustakaan, pengguna sudo, filter plugin, modul, dll. Parameter ini dapat disesuaikan hanya dengan memberi komentar pada parameter tersebut keluar dan mengubah nilai-nilai di dalamnya.

Selain itu, Anda dapat memiliki beberapa file konfigurasi yang berfungsi dengan Ansible selain dari file konfigurasi default Anda.

Ringkasan

Setelah melihat komponen inti di Ansible, kami harap Anda dapat menyimpannya di ujung jari Anda dan memilihnya seiring berjalannya waktu. Bergabunglah dengan kami di topik Anda berikutnya.