Tiga Langkah untuk Menginstal dan Mengkonfigurasi Ansible di CentOS7

Seiring dengan berkembangnya bisnis, kebutuhan server pasti akan meningkat. Maka dari itu, bisnis juga membutuhkan sistem manajemen konfigurasi (configuration management system) untuk memudahkan para administrator dan tim operasional (operations team) mengelola server dalam jumlah besar.

Salah satu sistem manajemen konfigurasi yang dapat dipilih ialah Ansible, sebuah engine otomatisasi yang mengotomatisasi cloud provisioning, manajemen konfigurasi, pengembangan aplikasi dan kebutuhan TI lainnya. Dengan Ansible, komputer klien tidak perlu diinstal software tambahan. Hal ini tentunya menyederhanakan administrasi server. Terlebih lagi, modul Ansible dapat ditulis dalam bahasa apapun dan berkomunikasi dengan standar JSON.

Untuk memanfaatkan Ansible, ikutilah tiga langkah berikut untuk menginstal dan mengkonfigurasi Ansible di CentOS 7:

Langkah Pertama – Menginstal Ansible

Untuk mendapatkan Ansible untuk CentOS 7, pastikan terlebih dahulu kalau repository CentOS 7 telah terinstal dengan memasukan perintah berikut:

$ sudo yum install epel-release

Setelah repository terinstal, installah Ansible dengan yum:

$ sudo yum install ansible

Seusai langkah di atas, berarti Anda telah memiliki semua software yang dibutuhkan untuk mengelola server menggunakan Ansible.

Langkah Kedua – Mengkonfigurasi Host Ansible

Ansible akan mencari semua server yang ia ketahui melalui “hosts” file. Maka, Anda perlu mengatur file tersebut terlebih dahulu sebelum memulai berkomunikasi dengan komputer yang lain (klien).

Bukalah file dengan hak akses root dengan memasukkan perintah berikut:

$ sudo vi /etc/ansible/hosts

Anda akan melihat banyak contoh konfigurasi. Simpanlah contoh-contoh yang ada ke dalam file agar Anda dapat mempelajari konfigurasi Ansible apabila Anda ingin mengimplementasikan skenario yang lebih kompleks di masa mendatang.

Hosts file yang ada sangatlah fleksibel dan dapat dikonfigurasi dengan beberapa cara berbeda. Namun, di artikel ini syntax yang digunakan adalah yang di bawah ini:

[group_name]
alias ansible_ssh_host=your_server_ip

group_name adalah tag organisasi yang memungkinkan Anda untuk merujuk kepada server apapun dengan satu kata. Alias tersebut hanyalah nama untuk merujuk kepada server yang ada.

Mari asumsikan bahwa Anda memiliki server dengan alamat IP sebagai berikut:

– 192.168.1.1 – 192.168.2.1 – 192.168.3.1

Aturlah agar alamat IP di atas dapat dirujuk secara individual sebagai host1, host2 dan host3, atau sebagai sekelompok server. Untuk mengkonfigurasi hal ini, Anda akan menambahkan blok perintah ini ke hosts file Anda.

/etc/ansible/hosts
[servers]
host1 ansible_ssh_host=192.168.1.1
host2 ansible_ssh_host=192.168.2.1
host3 ansible_ssh_host=192.168.3.1

Ansible akan secara default mencoba untuk terhubung dengan remote hosts menggunakan username Anda saat ini. Apabila user tidak ada di sistem remote, maka upaya koneksi akan menghasilkan eror sebagai berikut:

Ansible connection error
host1 | UNREACHABLE! => {
“changed”: false,
“msg”: “Failed to connect to the host via ssh.”,
“unreachable”: true
}

Perintah Ansible untuk terhubung dengan server yang ada di dalam kelompok “server” melalui seorang user. Pada arikel ini, user diberi nama Antonio. Buatlah direktori di dalam struktur konfigurasi Ansible bernama group_vars.

$ sudo mkdir /etc/ansible/group_vars

Di dalam folder, Anda dapat membuat file yang berformatkan YAML Ain’t Markup Language (YAML) untuk setiap kelompok yang akan dikonfigurasi dengan memasukkan perintah berikut:

$ sudo nano /etc/ansible/group_vars/servers

Tambahkan kode berikut ke file:

etc/ansible/group_vars/servers

ansible_ssh_user: Antonio

Langkah Ketiga – Gunakan Perintah (Command) Ansible yang Simpel

Setelah semua host telah disiapkan dan dikonfigurasi agar semuanya terhubung, Anda dapat mencoba perintah pertama, seperti ping semua server yang telah dikonfigurasi dengan mengetik hal berikut:

$ ansible -m ping all

Setelah mengetik perintah di atas, Ansible akan mengeluarkan output seperti di bawah ini:

Output
host1 | SUCCESS => {
“changed”: false,
“ping”: “pong”
}

Host2 | SUCCESS => {
“changed”: false,
“ping”: “pong”
}

Host3 | SUCCESS => {
“changed”: false,
“ping”: “pong”
}

Dengan modul shell, Anda dapat mengirim perintah terminal (terminal command) kepada remote hosts dan mendapatkan hasilnya. Sebagai contoh, untuk mengetahui pemakaian memori pada host1, Anda dapat memasukkan perintah berikut:

$ ansible -m shell -a ‘free -m’ host1

Memasukkan perintah tersebut akan menghasilkan output seperti yang di bawah ini:

host1 | SUCCESS | rc=0 >>
Total used        free shared buffers     cached
Mem:         15600 589        15009 0 114         193
-/+ buffers/cache:      415 6855
Swap:            0 0      0

Setelah mengikuti langkah-langkah di atas,  server Ansible Anda telah dikonfigurasi agar dapat berkomunikasi dengan server yang ingin Anda kelola. Anda dapat memverifikasi kemampuan Ansible dalam berkomunikasi dengan setiap host melalui perintah Ansible untuk mengeksekusi tugas yang simpel.

Tentang i3

Inovasi Informatika Indonesia (i3) dikenal sebagai perusahaan penyedia solusi dan layanan TI yang berfokus pada Open Source, Security, Big Data dan Cloud bagi bisnis. i3 menyediakan layanan TI yang komprehensif, meliputi konsultasi, migrasi dan implementasi, pelatihan, troubleshooting, dan managed services. Untuk informasi lebih lanjut perihal layanan dan solusi yang ditawarkan, Anda dapat menghubungi kami melalui info@i-3.co.id.