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