tools:ansible

Ansible and Ansible Galaxy

Install Python dan venv:

sudo apt install python3 python3-venv python3-pip

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

Periksa instalasi Ansible dan Ansible Galaxy:

ansible --version
ansible-galaxy --version

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.

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.

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"
```

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.

Ansible juga dapat menjalankan perintah tanpa membuat playbook:

ansible servers -i inventory.ini -m ansible.builtin.command -a "uptime" -u username

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

Collections berisi modules, plugins, dan roles.

Buat file `requirements.yml`:

---
collections:
  - name: community.general

Install collection:

ansible-galaxy collection install -r requirements.yml

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/
  • tools/ansible.txt
  • Last modified: 2026/10/09 23:24
  • by ilyasa