Ansible #4b – Setup ansible.cfg

Hai semuanya, apa kabar? Kali ini kita lanjutin belajar Ansible-nya. Di materi sebelumnya kita sudah bahas mengenai cara instalasi Ansible dan testing perintah dasarnya.

Membuat File Konfigurasi

Kita akan buat file konfigurasi bernama ansible.cfg. Pada pengujian kali ini, hal-hal yang berkaitan dengan Ansible saya simpan di ~/ansible-testing. Berikut ini adalah contoh isi dari file konfigurasinya:

[defaults]
inventory = inventory
private_key_file = [lokasi file key]

File konfigurasi ini digunakan untuk menyimpan pengaturan default. Dengan file ini, kita tidak perlu untuk mengetik lokasi inventory & key setiap kali menjalankan perintah Ansible.

Testing Ping

Selanjutnya, kita coba ping menggunakan perintah ansible.

ansible all -i inventory -m ping

Pada pengujian kali ini, ada error yang terjadi:

msg: "Failed to connect to the host via ssh: no such identity: /home/phantom/.ssh/ansible: No such file or directory"

Penyebabnya adalah saya salah memasukkan nama file private key-nya. Setelah nama file diedit. Penyebab lain yang dapat menimbulkan masalah seperti ini adalah Ansible belum dapat membaca file ansible.cfg (atau ada parameter di dalam file .cfg itu yang belum sesuai.

Untuk coba lagi, kita juga dapat memerintahkan Ansible untuk menggunakan parameter manual. Contohnya:

ansible all -i inventory -m ping -u root --key-file [lokasi key]

Output:

192.168.9.45 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

Output pong menandakan komunikasi antara komputer lokal kita dan server tujuan berhasil dilakukan.

Tips/Catatan: Perintah di atas bisa dibilang “cukup panjang” Hal tersebut dapat diatasi dengan cara menyimpan file ansible.cfg di direktori project utama (misalnya dalam pengujian kali ini di ~/ansible-testing). Setelah file tersebut ada/terdeteksi, kita cukup menjalankan perintah ansible all -m ping.

Manajemen Host & Inventory

Untuk mengecek server mana saja yang kita “masukkan” ke daftar-nya Ansible, kita dapat menggunakan perintah berikut:

ansible all --list-hosts
hosts (2):
    192.168.9.44
    192.168.9.45

Pada pengujian kali ini, alamat IP tersebut adalah alamat IP dari host Proxmox VE.

Sinkronisasi dengan Git

Kita juga dapat melakukan sinkronisasi perubahan yang dilakukan dengan Git. Hal ini dilakukan agar pekerjaan/progress yang kita lakukan tidak hilang dan dapat dicek/dilanjutkan juga oleh tim. Misalnya:

  • Cek status file:
      phantom@phantomint:~/ansible-testing$ git status
      On branch main
      Your branch is up to date with 'origin/main'.
      Untracked files:
      (use "git add <file>..." to include in what will be committed)
      ansible.cfg
      nothing added to commit but untracked files present (use "git add" to track)
    

    Perintah tersebut berguna untuk mengecek file apa saja yang baru atau berubah.

  • Menambahkan file untuk “dilacak” oleh Git
      phantom@phantomint:~/ansible-testing$ git add ansible.cfg 
      phantom@phantomint:~/ansible-testing$ git status
      On branch main
      Your branch is up to date with 'origin/main'.
      Changes to be committed:  (use "git restore --staged <file>..." to unstage)
      new file:   ansible.cfg
    

    Perintah git add di atas digunakan untuk menambahkan file ansible.cfg agar dilacak oleh Git.

    • Commit
      phantom@phantomint:~/ansible-testing$ git commit -m "first version of ansible.cfg"
      [main 984dc17] first version of ansible.cfg
      1 file changed, 3 insertions(+)
      create mode 100644 ansible.cfg
      

      Perintah commit digunakan untuk mengunci perubahan dengan catatan/keterangan.

  • Push
      phantom@phantomint:~/ansible-testing$ git push origin main
      Enumerating objects: 4, done.
      Counting objects: 100% (4/4), done.
      Delta compression using up to 12 threads    
      Compressing objects: 100% (3/3), done.
      Writing objects: 100% (3/3), 386 bytes | 386.00 KiB/s, done.
      Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
      To github.com-office:zaidan-99/ansible-testing.git
      5cbc06d..984dc17  main -> main
    

    Perintah push digunakan untuk mengirim file dari lokal ke GitHub.

Selanjutnya, kita coba cek di web GitHub. Gambar di bawah menampilkan perubahan yang sudah muncul.
image host

image host

Itu dulu tulisan kali ini. Sampai jumpa. Bye.

Referensi course: https://youtu.be/4REljLsOnXk?si=8iKnJuI3KODNyZYK&t=60

By Zaidan

Leave a Reply

Your email address will not be published. Required fields are marked *