Study Case: Ansible dengan ad Hoc Command

Artikel ini akan memberikan sedikit pencerahan atau gambaran bagi anda tentang bagaimana menggunakan Ansible (IT Otomation Tools) di server atau node Linux. Menggunakan ansible juga sangatlah efisien selain dia tools gratis dia juga punya keuntungan lain untuk mendokumentasikan konfigurasi kita supaya saat tim lain melihat / melakukan pengecekan konfigurasi apa yang telah dilakukan dari awal sampai akhir konfigurasi terlihat history / syntax jika menggunakan tools ansible, dan ini lah contoh study case Ansible dengan ad Hoc Command.

Hal – hal yang perlu disiapkan adalah sebagai berikut :

  • Linux Ubuntu Desktop (16.04/18.04) / install WSL ubuntu jika kalian menggunakan windows
  • SSH Client, secara umum sudah terinstall. Jika belum tersinstall jalankan perintah ini $ sudo apt-get install openssh-client
  • SSH Key (Private & Public)Login SSH Server tanpa Password
  • Buat file inventory hosts-nya menggunakan YAML

Topologi

Inventory Hosts

all:
  children:
    web:
      hosts:
        server1:
          ansible_host: 192.168.56.10
          ansible_user: gunawan
          ansible_ssd_private_key_file: ~/.ssh/id.rsa
          ansible_ssh_common_args: '-o StrictHostKeyChecking=no'
        server2:
          ansible_host: 192.168.56.20
          ansible_user: gunawan
          ansible_ssd_private_key_file: ~/.ssh/id.rsa
          ansible_ssh_common_args: '-o StrictHostKeyChecking=no'

Study Case: Ansible dengan ad Hoc Command seperti berikut :

  1. Create 2 user dengan menggunakan command ansible

a. 1 user dengan home directory (/home/bismillah)

$apt install whois  
$mkpasswd --method=des
Password: 123456 --> password asli
SQtTiosUe9NO6 --> password yang di generate
$ansible web -i /etc/ansible/lab-2.yml -m user -a "name=bismillah password=4x/lcI4qyKej2"  --> done bisa ssh tanpa password

Check file yang telah dibuat :

root@DESKTOP-KFCM1IQ:/home/gunawan# ssh bismillah@192.168.56.10 --> Server-1
bismillah@192.168.56.10's password: isikan password yang anda buat

$ pwd
/home/bismillah

root@DESKTOP-KFCM1IQ:/home/gunawan# ssh bismillah@192.168.56.20 --> Server-2
bismillah@192.168.56.20's password: isikan password yang anda buat

$ pwd
/home/bismillah

b. 1 user tanpa home directory

$ mkpasswd --method=des  --> generate password
$Password: 123 --> password asli
9Bb.hiEv6TDe6 --> password yang di generate
$ansible web -i /etc/ansible/lab-2.yml -m user -a "name=alhamdullillah create_home=no password=9Bb.hiEv6TDe6"

kenapa kita menggunakan mkpasswd? karena disini merubah variable password yang contohnya biasanya password kita "123" bisa di convert menjadi "SQtTiosUe9NO6" misalnya, jadi supaya server kita lebih secure.

Check file yang telah dibuat :

$Could not chdir to home directory /home/didi: No such file or directory --> membuat user yang tidak ada file directorynya di /home

root@DESKTOP-KFCM1IQ:/home/gunawan# ssh alhamdullillah@192.168.56.10
alhamdullillah@192.168.56.10's password: --> isikan password yang anda buat

 pwd
/

root@DESKTOP-KFCM1IQ:/home/gunawan# ssh alhamdullillah@192.168.56.20
alhamdullillah@192.168.56.10's password: --> isikan password yang anda buat
$
$ pwd
/

2. Transfer Public key ke hanya server-A dari WSL(with command ansible)

a. Transfer pub key ke node

root@DESKTOP-KFCM1IQ:/home/gunawan# ansible web -i /etc/ansible/lab-2.yml -m authorized_key -a "user=bismillah key={{ lookup('file', '~/.ssh/id_rsa.pub') }}"

‘authorized_key’ adalah module option & dengan Arguments “-a” user=dada dan keynya adalah lookup file dilokasi public key kita di WSL.

b. Test remote menggunakan user "bismillah" seharusnya dia bisa di SSH tanpa memasukan password.

root@DESKTOP-KFCM1IQ:/home/gunawan# ssh bismillah@192.168.56.20
$pwd
/home/bismillah

c. Test remote menggunakan useralhamdullillah” seharusnya dia tidak bisa SSH tanpa memasukan password dikarenakan kita hanya mentransfer public kenya si user bismillah

root@DESKTOP-KFCM1IQ:/home/gunawan# ssh alhamdullillah@192.168.56.20
alhamdullillah@192.168.56.20's password:

root@DESKTOP-KFCM1IQ:/home/gunawan# ssh alhamdullillah@192.168.56.10
alhamdullillah@192.168.56.10's password:

Dua-duanya masih menggunakan password, berhasil.

3. Copy file dari laptop ke di directory /home/bismillah dengan nama file Biodata.txt

source file ada dilaptop saya, yang sudah saya kasih/isi keterangan didalam file txt tersebut.

Syntax/command nya adalah

root@DESKTOP-KFCM1IQ:/home/gunawan# ansible web -i /etc/ansible/lab-2.yml -m copy -a "src=/mnt/d/Biodata.txt dest=/home/bismillah"

Penjelasan : dengan menggunakan module optioncopysource filenya ada dilaptop saya di partisi D:/Biodata.txt dan tujuanya adalah file directory /home/bismillah.

Kemudian lihat isi file yang sudah di copy tadi lewat cat dari server-A maupun server-B:

Hasilnya : 
$ cat Biodata.txt
Nama : Gunawan
Isti : 3
Anak : 10
Hobi : sepakbola
TTL  : 19-10-1998
Alamat : Kebon jeruk
$

Semoga bermanfaat, refrensi by docs.ansible.

Leave a Reply

Your email address will not be published. Required fields are marked *