Ansible and Ansible Galaxy
Instalasi
Dependencies
Install Python dan venv:
sudo apt install python3 python3-venv python3-pip
Install Ansible
Buat virtual environment dan aktifkan:
python3 -m venv .venv source .venv/bin/activate
Buat file `requirements.txt`:
ansible
Install Ansible:
pip install -r requirements.txt
Verifikasi
Periksa instalasi Ansible dan Ansible Galaxy:
ansible --version ansible-galaxy --version
Penggunaan Dasar
1. Membuat Inventory
Inventory digunakan untuk menentukan server yang dikelola Ansible. Buat file `inventory.ini`:
[servers]
192.168.1.10
192.168.1.11
Ganti alamat IP sesuai server tujuan.
2. Menguji Koneksi
Gunakan modul `ping` untuk menguji koneksi ke server:
ansible servers -i inventory.ini -m ansible.builtin.ping -u username
Ganti `username` dengan akun SSH pada server tujuan.
3. Membuat Playbook
Playbook digunakan untuk menjalankan sekumpulan task secara berurutan. Buat file `playbook.yml`:
--- - name: Basic Ansible Playbook hosts: servers become: true tasks: - name: Check server uptime ansible.builtin.command: uptime changed_when: false ``` - name: Display message ansible.builtin.debug: msg: "Ansible is working" ```
4. Menjalankan Playbook
Periksa sintaks playbook:
ansible-playbook -i inventory.ini playbook.yml --syntax-check
Jalankan playbook:
ansible-playbook -i inventory.ini playbook.yml -u username
Gunakan `–ask-become-pass` jika diperlukan untuk memasukkan password sudo.
5. Menjalankan Perintah Langsung
Ansible juga dapat menjalankan perintah tanpa membuat playbook:
ansible servers -i inventory.ini -m ansible.builtin.command -a "uptime" -u username
Ansible Galaxy Roles
Roles digunakan untuk mengelompokkan task agar dapat digunakan kembali.
Install role:
ansible-galaxy role install geerlingguy.docker
Buat role sendiri:
ansible-galaxy role init docker_setup
Ansible Galaxy Collections
Collections berisi modules, plugins, dan roles.
Buat file `requirements.yml`:
--- collections: - name: community.general
Install collection:
ansible-galaxy collection install -r requirements.yml
Menggunakan Kembali Dependencies
Ketika menggunakan proyek di environment baru:
python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ansible-galaxy role install -r requirements.yml
Agar roles dan collections sama-sama terinstal, tambahkan keduanya ke `requirements.yml` jika diperlukan.
Contoh `.gitignore`:
.venv/