Sebelum mengikuti tutorial ini pastikan sudah mengistal Ansible, kemudian DEV-CLIENT sudah bisa terkoneksi ke SERVERS tanpa password untuk ini bisa mengikuti langkah simple berikut:
DEV-CLIENT ------------------------- SERVER1
--------------------------SERVER2
Dalam production tentu penggunaan root perlu dihindari, namun untuk simulasi/belajar bisa lakukan langkah berikut:
Konfigurasi SERVERS, aktifkan SSH login root di konfigurasi sshd_config nya, PermitRootLogin yes, jangan lupa simpan dan restart SSH service nya.
Login as Root juga di DEV-CLIENT, lalu generate ssh-key
ssh-keygen
ssh-copy-id root@192.168.56.100
ssh-copy-id root@192.168.56.101
masukkan password:
Setelah SSH key sudah ter copy selanjutnya seharusnya tidak perlu lagi memasukkan password ketika SSH ke Sever maupun dari Ansible karena sudah menggunakan authentication key.
Ada beberapa hal yang perlu dipelajari di Ansible seperti Inventory, Secret Vault, Module, Playbook, Roles.
Namun pada tahap awal belajar kita bisa mulai dari hal-hal yang sederhana cukup dengan beberapa file yaml dan perintah ansible.
Pastikan ansible sudah terinstal, cek ansible --version
Membuat file inventory yang berisi server yang akan dimanajemen konfigurasinya, simple nya ini berisi informasi server, IP address, variable lain seperti port, nama hostname, variable konfigurasi service juga bisa diisikan di sini.
Buat folder untuk script-script Ansible:
mkdir /data/ansible/linux
1. Buat sebuah inventory file dengan nama hosts
---
all:
hosts:
LIN1:
ansible_host: 192.168.56.100
hostname: APPS4YOU-LINUXHOST-001
LIN2:
ansible_host: 192.168.56.101
hostname: APPS4YOU-LINUXHOST-002
Perhatikan spasi karena diatas ada file format yaml yang menggunakan space sebagai identation nya.
2. Membuat playbook, playbook ini yang akan melakukan konfigurasi step by step, misalnya dalam contoh tutorial kali ini akan mengubah hostname, buat file dengan nama change-hostname.yaml
- name: Change hostname
hosts: all
gather_facts: false
vars:
hostname: "{{ hostvars[inventory_hostname].hostname }}"
tasks:
- name: Set hostname
hostname:
name: "{{ hostname }}"
Comments
Post a Comment