====== 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/