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