Ansible : Konfigurasi Volume LVM

Sebelumnya saya sempat menuliskan bagaimana cara untuk melakukan reset password user server Linux (Ansible : Reset Password User Linux). Kali ini saya akan menuliskan bagaimana cara untuk membuat & konfigurasi volume LVM dari HDD yang ada di server-server Linux secara sekaligus menggunakan Ansible. Hal ini cukup membantu saya dalam melakukan konfigurasi HDD beberapa server Linux sekaligus karena cukup menjalankan ansible playbook tertentu saja pada server controller.

Pada simulasi kali ini saya menggunakan 3 server dengan IP address sebagai berikut yang sudah dilengkapi 2 HDD tambahan (Kedua HDD tambahan di masing-masing server target akan digabungkan ke dalam 1 LVM pada server target tersebut).

  • Server Master Ansible (Centos 7) : 10.10.10.4/24
  • Server Target 1 (Centos 7) : 10.10.10.5/24
  • Server Target 2 (Centos 7) : 10.10.10.6/24

Berikut adalah langkah-langkah yang dilakukan untuk konfigurasi LVM di server Linux.

  • Instalasi ansible pada server master dengan perintah berikut (Cukup dilakukan di sisi server master saja, karena Ansible merupakan tools yang agentless atau dalam kata lain tidak membutuhkan agent di sisi server child yang hendak dikonfigurasi)
  • # yum install ansible -y
  • Edit file /etc/ansible/hosts lalu tambahkan baris berikut
  • target1 ansible_host=10.10.10.5
    target2 ansible_host=10.10.10.6
  • Dari server master, pastikan bisa SSH 6e server target 1 & 2 menggunakan user root
  • Jika server master belum memiliki SSH key maka rekan-rekan bisa generate dengan perintah berikut. Namun jika SSH key sudah ada, maka langkah ini bisa di skip
  • # ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): (enter) 
    Enter passphrase (empty for no passphrase): (enter)
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/key.
    Your public key has been saved in /root/.ssh/key.pub.
    The key fingerprint is:
    SHA256:2sz22XyFny/3ICUsxUEk6P/f4ThJf9w8yUA//SMn6pM root@master.raihan.net
    The key's randomart image is:
    ........
  • Konfigurasi SSH less pass dari master ke akun root server target 1 & 2 dengan perintah berikut
  • # ssh-copy-id root@10.10.10.5
    # ssh-copy-id root@10.10.10.6
  • Jalankan perintah berikut untuk memastikan server ansible master bisa SSH ke target 1 & 2 menggunakan user root
  • # ansible all -m ping --user root
    target1 | SUCCESS => {
    "ansible_facts": {
    "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
    }
    target2 | SUCCESS => {
    "ansible_facts": {
    "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
    }
    
  • Membuat dan masuk ke direktori baru khusus ansible dengan perintah berikut. Pada bagian ini sebenarnya bebas mau dilakukan atau tidak, namun saya pribadi biasanya memisahkan file-file ansible ke dalam 1 direktori khusus supaya lebih rapih
  • # mkdir ansible
    # cd ansible
  • Cek path HDD yang terpasang di server dengan menjalankan perintah berikut, dan pastikan path di setiap server sama untuk semua HDD yang terpasang. Jika ada beberapa target yang memiliki nama path yang berbeda maka rekan-rekan perlu membuat 2 atau lebih file Ansible yang isinya disesuaikan dengan kelompok server dengan path HDD yang sama.
  • # fdisk -l
    Disk /dev/sdb: 134 MB, 134217728 bytes, 262144 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    Disk /dev/sdc: 134 MB, 134217728 bytes, 262144 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
  • Membuat & edit file ansible untuk konfigurasi LVM pada server target. Ekstensi file yang digunakan adalah .yml, disini saya menggunakan nama lvm.yml
  • Menambahkan teks berikut pada file tersebut
  • -
     hosts: all
     tasks:
     - name: Install Paket LVM2
       service:
        name: lvm2
        state: latest
    
     - name: Membuat Volume Group/Menggabungkan 2 HDD
       lvg:
        vg: vg_backup
        pvs: /dev/sdb,/dev/sdc
    
     - name: Create Logical Volume - Size Gabungan Space 2 HDD
       lvol:
        vg: vg_backup
        lv: backup
        size: 268m
        pvs: /dev/sdb,/dev/sdc
    
     - name: Membuat Filesystem di Logical Volume
       filesystem:
        fstype: ext4
        dev: /dev/vg_backup/backup
    
     - name: Mounting Logical Volume
       mount:
        path: /backup
        src: /dev/vg_backup/backup
        state: mounted
        fstype: ext4
    
     - name: Supaya Logical Volume Otomatis Mounting saat Reboot
       lineinfile:
        path: /etc/fstab
        line: /dev/vg_backup/backup /backup ext4 defaults 0 0
  • Save file lvm.yml
  • Setelah membuat file konfigurasi ansible tersebut, jalankan perintah ansible berikut untuk melakukan konfigurasi LVM di server target dengan perintah berikut
  • # ansible-playbook -i inventory lvm-blog.yml 
    
    PLAY [all] *******************************************************************
    
    TASK [Gathering Facts] ***********************************************************
    ok: [target1]
    ok: [target2]
    
    TASK [Install Paket LVM2] ********************************************************
    changed: [target1]
    changed: [target2]
    
    TASK [Membuat Volume Group/Menggabungkan 2 HDD] **********************************
    changed: [target1]
    changed: [target2]
    
    TASK [Membuat Logical Volume - Size Gabungan Space 2 HDD] ************************
    changed: [target1]
    changed: [target2]
    
    TASK [Membuat Filesystem di Logical Volume] **************************************
    changed: [target1]
    changed: [target2]
    
    TASK [Mounting Logical Volume] ***************************************************
    changed: [target1]
    changed: [target2]
    
    TASK [Supaya Logical Volume Otomatis Mounting saat Reboot] ***********************
    ok: [target1]
    ok: [target2]
    
    PLAY RECAP ***********************************************************************
    target1 : ok=7 changed=5 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0   
    target2 : ok=7 changed=5 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
  • Cek partisi & logical volume yang termounting di server target dengan perintah-perintah berikut.
  • # df -h
    Filesystem                    Size  Used Avail Use% Mounted on
    devtmpfs                      481M     0  481M   0% /dev
    tmpfs                         496M     0  496M   0% /dev/shm
    tmpfs                         496M  7.2M  489M   2% /run
    tmpfs                         496M     0  496M   0% /sys/fs/cgroup
    /dev/sda2                     236G  4.5G  232G   2% /
    /dev/sda5                     255G   40M  255G   1% /home
    /dev/sda1                    1014M  218M  797M  22% /boot
    /dev/mapper/vg_backup-backup  237M  2.1M  218M   1% /backup
    tmpfs                         100M     0  100M   0% /run/user/0
    
    # vgs
      VG        #PV #LV #SN Attr   VSize   VFree
      vg_backup   2   1   0 wz--n- 248.00m    0 
    
    # lvs
      LV     VG        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      backup vg_backup -wi-ao---- 248.00m 

Leave a Reply

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