Skip to content

emka.web.id

writing knowledge, recording civilization

Menu
  • Home
  • Tutorial
  • Search
Menu

Tutorial Ansible: Menambahkan Variabel Ekstra dan Hosts

Posted on July 5, 2024

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

  • Fixing Windows Error 0x80070005 Hyper-V Export Access Denied Error the Right Way
  • Fixing Hyper V Export Errors and Building a Better Virtual Machine Setup (error 0x80070002, 0x80070005)
  • Fixing the Dreaded Windows Audio Service Stuck on Stopping Error
  • Windows SIM Error, Unknown error 0xc1420127
  • How I’m Building a Cat Breeding Management App with Python Qt6 + Microsoft Litebox, in 1 Week
  • Why Windows Keeps Nuking Your GPU Drivers (And How to Take Back Control)
  • Copy Prompt: A Modern Men’s Casual Fashion Studio Shoot
  • Why I Finally Ditched Mainstream Windows Cleaners (And Why I Use ‘Kudu’ Instead)
  • AI Made Everything Faster, Including Bad Decisions
  • Raspberry Pi Desktop Available of PC and Mac, Based on Debian 13
  • Why I Stopped Yelling at My PC When Error; Getting Windows 11 Voice Isolation and Access to Actually Work
  • Berobat Kanker ke Malaysia: Berapa Biayanya dan Apa Saja yang Perlu Disiapkan?
  • Stop Sending Every Prompt to the Biggest AI Model You Can Find
  • Stop Building AI Agents from Scratch: My Pick for the Best Native Windows Setup
  • Jev Is Faster and Cheaper, But I Still Recommend Clef. Here’s Why.
  • Weird XCP-NG Bug or Feature? Enable Maintenance Mode = Host Not Enough Memory
  • Vinix OS: Another OS That Want to Beat Linux, Try it!
  • Trying NVX, An Ultra-Light Micro-VM Sandbox from Microsoft
  • Learning NocoDB from Scratch: Creating a Simple Greenhouse App
  • How RHEL 10.2 Quietly Turned Into an Absolute Security Beast
  • Grab Videos from Anywhere with ReClip (Can Running Locally)
  • Jumped onto Ubuntu 26.04 LTS? Here’s How to Add a New User Account
  • Tutorial Cara Install WPS Office di Linux (Alternatif Microsoft Office)
  • Tutorial Upgrade Server Ubuntu 24.04 LTS ke Ubuntu 26.04 LTS dengan Aman
  • Inilah Alasan kenapa akun TikTok dibatasi tidak bisa klaim koin dan masalah pembatasan lainnya?
  • Apa penyebab gagal kirim SMS ke 89888 padahal pulsa masih ada?
  • Mengenal Donghua: Kenapa Animasi dari Tiongkok Ini Lagi Naik Daun Banget
  • OpenAI Bocorin Data Gambar Pengguna? Ini Kabar Terbaru Soal Insiden AI yang Bikin Heboh
  • Kenapa Postingan Instagram Kalian Sepi Like Padahal Followers Udah Banyak? Ini Rahasianya
  • Cara Menambah View Story Instagram Gratis Biar Nggak Sia-sia
  • Canonical: Ubuntu coming soon to Snapdragon X2 Series platforms
  • Finally, wolfSSL adds post-quantum algorithms!
  • How to Run Gemma Embedding Models Using Docker
  • Deploy Nginx Rootful Container with Podman
  • How to Sandboxing Browser on Linux Desktop with Flatpak
  • Trying Nemotron 3.5 Super VL: NVIDIA’s Open Multimodal Model Built for Agents That Actually See and Act
  • Pruna AI Release their Qwen-Image 2.1 LoRA Adapter, 6x Faster than Regular Qwen
  • The Rise and Fall of the Coding Holy Grail: Is Stack Overflow Just AI Fuel Now?
  • Zyphra is The Pioneer, Why Everyone is Suddenly Obsessed with AMD and Not Just Nvidia Anymore
  • Stop Trusting Your Prompts to Save Your Business Data
  • Lagi rame bahas film horor Pirunduk, ternyata ini arti aslinya dalam bahasa Banjar
  • Kabar duka, pengacara senior Kamaruddin Simanjuntak meninggal dunia, sempat berjuang lawan penyakit ginjal
  • Kabar duka dari keluarga Marsha Aruan, Bunda Lisa meninggal dunia setelah sebelumnya sempat dirawat di rumah sakit
  • Lagi rame cari Mod Drag Bike 201m Sunmori, mending pakai yang resmi atau nekat download APK modifikasi?
  • Lagi ramai bahas tugas sekolah soal lingkungan, ternyata tiap profesi punya peran penting buat jaga kota tetap sehat

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