Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Makalah
  • Ke-NU-an
  • Kabar
  • Search
Menu

Tutorial Ansible: Menambahkan Variabel Ekstra dan Hosts

Posted on July 5, 2024 by syauqi wiryahasana

Ansible dikenal sebagai tool automation powerful untuk infrastruktur IT. Salah satu fiturnya yang berguna adalah manajemen inventory. Inventory berisi daftar host yang akan dikonfigurasi oleh Ansible playbook. Namun, bagaimana jika daftar host tersebut bersifat dinamis dan tidak bisa ditentukan secara manual di awal? Tenang, Ansible menawarkan solusi! Artikel ini akan membahas dua metode ampuh untuk mengelola inventory dinamis di Ansible.

Metode 1: Memanfaatkan Variabel Ekstra dan hostvars

Metode pertama ini menggunakan kombinasi variabel ekstra dan fitur hostvars untuk mengakses informasi host secara dinamis.

Langkah 1: Siapkan Inventory File

Buat sebuah inventory file sederhana (misalnya: hosts) dengan grup bernama all. Grup ini akan menampung host-host yang ingin Anda target secara dinamis.

[all]

Langkah 2: Rancang Playbook

Selanjutnya, buat playbook Anda (misalnya: playbook.yml) dengan task yang memanfaatkan variabel ekstra dan hostvars.

YAML

---
- hosts: all
  tasks:
    - name: Task menggunakan hostvars
      debug:
        msg: "Hostname: {{ hostvars[inventory_hostname].name }}"

Penjelasan Playbook:

  • hosts: all: Baris ini menentukan target playbook, yaitu grup all yang didefinisikan di inventory file.
  • tasks: Blok ini berisi task-task yang akan dijalankan pada host-host target.
  • name: Task menggunakan hostvars: Baris ini memberi nama pada task untuk memudahkan identifikasi.
  • debug: Modul ini digunakan untuk menampilkan informasi pada saat playbook dijalankan.
    • msg: Opsi ini menentukan pesan yang akan ditampilkan. Perhatikan penggunaan {{ hostvars[inventory_hostname].name }}.
      • hostvars: Fitur ini memungkinkan Anda mengakses variabel spesifik untuk setiap host.
      • inventory_hostname: Variabel ekstra yang akan kita tentukan nanti.
      • .name: Operator titik digunakan untuk mengakses atribut spesifik dari variabel host, dalam hal ini nama host.

Langkah 3: Tentukan Variabel Ekstra

Variabel ekstra inventory_hostname belum didefinisikan. Anda bisa menetapkannya dengan beberapa cara, misalnya:

  • Melalui Command Line:
ansible-playbook playbook.yml -e inventory_hostname=server1,server2

Di sini, inventory_hostname diset menjadi string berisi nama host yang dipisahkan koma. Ansible akan secara otomatis membaginya menjadi list dan menggunakannya untuk menjalankan playbook pada masing-masing host.

  • Melalui Group Vars:

Buat file bernama group_vars/all dan tambahkan baris berikut:

YAML

inventory_hostname: ["server1", "server2"]

Metode 2: Menggunakan Inventory Plugin

Metode kedua melibatkan penggunaan inventory plugin khusus untuk Ansible. Plugin ini bertugas secara mandiri untuk mengambil dan menyediakan daftar host dinamis.

Langkah 1: Instal Inventory Plugin

Beberapa inventory plugin populer yang bisa digunakan antara lain:

  • community.kubernetes.yaml: untuk mengelola host Kubernetes.
  • cloud.aws.ec2: untuk mengelola host Amazon EC2.
  • community.azure.azure_rm: untuk mengelola host Microsoft Azure.

Cara instalasi plugin bervariasi tergantung pada plugin yang dipilih. Umumnya, Anda bisa menggunakan package manager sistem operasi Anda.

Langkah 2: Konfigurasi Inventory File

Sesuaikan inventory file Anda untuk merujuk ke plugin yang digunakan. Konsultasikan dokumentasi plugin terkait untuk mengetahui format konfigurasi yang tepat.

Langkah 3: Jalankan Playbook

Jalankan playbook Anda seperti biasa tanpa perlu menentukan host secara eksplisit. Plugin yang terinstal akan mengambil daftar host dinamis dan menyediakannya ke Ansible.

Tips Keamanan

  • Gunakan metode ini dengan hati-hati, terutama saat menjalankan task yang berpotensi mengubah konfigurasi host.
  • Pastikan Anda memiliki kontrol dan akses terhadap host-host yang terdaftar secara dinamis.

Kesimpulan

Dengan memanfaatkan variabel ekstra dan hostvars atau menggunakan inventory plugin, Anda dapat mengelola inventory secara dinamis di Ansible. Metode ini memudahkan Anda dalam mengotomatisasi pengelolaan infrastruktur yang skalabel dan fleksibel.

Pelajari Lebih Lanjut

  • Dokumentasi Ansible: https://docs.ansible.com/
  • Koleksi Plugin Ansible: https://galaxy.ansible.com/

Yuk, maksimalkan otomatisasi infrastruktur Anda dengan Ansible!

Terbaru

  • Apa itu Cryptobiosis dan Contohnya
  • 5 Laptop Paling Produktif: Multitasking Lancar, Baterai Awet!
  • Apa itu Kepulauan Chagos? (Milik Inggris atau Mauritius?)
  • Apa itu Kiwano atau Melon Berduri (Cucumis Metuliferus)?
  • Apakah Paganisme itu Agama?
  • Perbaiki Kebodohannya, Pemerintah Buka Lagi Akses Ke Situs archive.org
  • Kenapa Disebut Ilmuwan Muslim, Bukan Ilmuwan Arab atau Ilmuwan Persia?
  • Indonesia Prasejarah, Benarkah Se-kaya itu?
  • Apa itu Bilangan Aleph ?
  • Jejak Aneh Nisan Makam Gaya Aceh di Pangkep Sulawesi Selatan
  • Rasa’il Ikhwan al-Shafa Fondasi Matematika dalam Filsafat Islam
  • Review Aplikasi Melolo, Saingan Berat Dramabox!
  • Review Game Dislyte: Petualangan Urban Myth yang Seru!
  • Microsoft Resmikan Cloud Region Pertama di Indonesia, Pacu Pertumbuhan AI
  • Bagaimana Bisa Xiaomi Jadi Raja dibanyak Sektor?
  • Sejarah Tokoh Judi Negara: Robby Sumampow
  • Kenapa Hongkong Mulai Kehilangan Anak Mudanya?
  • Apakah China ada Peternakan Panda?
  • Kebohongan Ajudan Bung Karno Soal Letkol Untung Habisi Para Jenderal?
  • Apakah Harga Minyak Dunia Turun Bikin OPEC Bangkrut?
RSS Error: WP HTTP Error: cURL error 35: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to blog.emka.web.id:443
  • Apa itu Cryptobiosis dan Contohnya
  • 5 Laptop Paling Produktif: Multitasking Lancar, Baterai Awet!
  • Apa itu Kepulauan Chagos? (Milik Inggris atau Mauritius?)

©2025 emka.web.id | Design: Newspaperly WordPress Theme