Skip to main content
  1. Posts/

Instalasi Ansible Menggunakan Python

·3 mins·
ansible python ansible
Table of Contents

Ansible adalah alat otomatisasi tanpa agen (agentless) yang diinstal pada satu host sebagai control node. Dari control node ini, Ansible dapat mengelola banyak server lain (managed nodes) yang telah ditentukan dalam inventory melalui koneksi jarak jauh (umumnya SSH).

Catatan: Semua eksekusi pada panduan ini dilakukan sebagai user biasa. Tidak direkomendasikan menjalankan Ansible sebagai root kecuali untuk kebutuhan tertentu.

1. Memastikan pip tersedia
#

Pastikan Python 3 sudah terinstal.

python3 -m pip -V

Contoh output:

pip 23.0.1 from /usr/local/lib/python3.11/site-packages/pip (python 3.11)

Jika pip belum tersedia, instal sesuai OS Anda (misalnya melalui apt install python3-pip, dnf install python3-pip, atau brew install python3 di macOS).

2. Instalasi Ansible (User Mode)
#

Instal Ansible menggunakan pip sebagai user:

python3 -m pip install --user ansible

3. Upgrade Ansible
#

python3 -m pip install --upgrade --user ansible

4. Verifikasi Instalasi
#

ansible --version

Jika perintah di atas menghasilkan error seperti command not found, biasanya direktori bin Python user belum masuk ke PATH.

5. Perbaikan PATH (jika Ansible tidak terdeteksi)
#

Cek lokasi instalasi Ansible:

python3 -m pip show ansible

Contoh output:

Name: ansible
Version: 7.5.0
Summary: Radically simple IT automation
Home-page: https://ansible.com/
Author: Ansible, Inc.
Author-email: [email protected]
License: GPLv3+
Location: /Users/myuser/Library/Python/3.11/lib/python/site-packages
Requires: ansible-core
Required-by:

Direktori bin biasanya berada pada:

/Users/myuser/Library/Python/3.11/bin

Tambahkan ke PATH:

export PATH=$PATH:/Users/myuser/Library/Python/3.11/bin

Untuk membuatnya permanen, tambahkan baris tersebut pada file:

  • ~/.bashrc atau ~/.bash_profile (bash)
  • ~/.zshrc (zsh)

6. Membuat Inventory Dasar
#

Ansible membaca target server dari file bernama inventory (default: /etc/ansible/hosts), tetapi Anda bisa membuat file sendiri, misalnya inventory.ini.

Contoh inventory.ini:
#

[web]
192.168.1.10
192.168.1.11

[db]
192.168.1.20

[all:vars]
ansible_user=myuser
ansible_ssh_private_key_file=~/.ssh/id_rsa

Struktur dasar:
#

  • Group[web], [db], dll.
  • Host → IP atau hostname
  • Variables → autentication dan konfigurasi lainnya

Anda bisa menguji koneksi ke semua host:

ansible -i inventory.ini all -m ping

7. Menjalankan Ad-Hoc Command
#

Ad-hoc command cocok untuk tugas cepat tanpa menulis playbook.

Ping semua host
#

ansible -i inventory.ini all -m ping

Menjalankan perintah shell pada group web
#

ansible -i inventory.ini web -m command -a "uptime"

Copy file
#

ansible -i inventory.ini web -m copy -a "src=/tmp/file.txt dest=/tmp/file.txt"

Restart service
#

ansible -i inventory.ini web -m service -a "name=nginx state=restarted"

Menjalankan perintah dengan become
#

ansible -i inventory.ini db -b -m command -a "systemctl status mariadb"

8. Contoh Playbook Pertama
#

Playbook memungkinkan Anda membuat otomatisasi berurutan dalam format YAML.

Buat file first-playbook.yml:

---
- name: Install dan start Nginx
  hosts: web
  become: true

  tasks:
    - name: Install package nginx
      ansible.builtin.package:
        name: nginx
        state: present

    - name: Ensure nginx is running
      ansible.builtin.service:
        name: nginx
        state: started
        enabled: true

Menjalankan playbook:
#

ansible-playbook -i inventory.ini first-playbook.yml

Related

Install Apache dengan PHP-FPM dan Userdir
·4 mins
apache ubuntu linux php apache
Error saat Mengatur Static Route ke Windows
·1 min
windows windows
Meningkatkan Performa pada PHP-FPM
·2 mins
linux linux
Disable Notif AutoSSL di cPanel
·1 min
cpanel cpanel
Using IPvlan network in Docker
·5 mins
docker docker
Using Host Network in Docker
·1 min
docker docker