---
# System prepended metadata

title: Ihsan - Bab 3

---

# Ihsan - Bab 3

## 3.1.2
1. Apa hubungan DevOps dengan server?
`Seluruh kegiatan DevOps berlangsung di dalam server`
2. Sebutkan layanan-layanan server yang anda ketahui?
`AWS, GCP, dan Azure menyediakan layanan untuk menggunakan server mereka, sehingga perusahaan tidak perlu membeli dan maintain server sendiri`

## 3.2.9
1. Jelaskan kembali perbedaan Linux, GNU, sistem operasi, dan Distro?
`Linux: Kernel`
`GNU: Software pelengkap untuk sistem operasi`
`Sistem operasi: Perantara untuk membuat hardware pada komputer bekerja`
`Distro: Sistem operasi GNU/Linux yang sudah dimodifikasi untuk tujuan tertentu`
2. Kenapa Linux lebih cocok untuk server dibandingkan sistem operasi lain?
`Source code Linux bebas untuk diakses dan dimodifikasi, sehingga bisa lebih stabil, tersedia banyak tools untuk kebutuhan server, dan dokumentasi yang tersebar di internet`

## 3.3
### 3.3.1 & 3.3.2 Instalasi Virtualbox dan Vagrant pada Ubuntu

![](https://i.imgur.com/OiWOfJz.png)

Hasil instalasi Virtualbox dan Vagrant

### 3.3.3 Instalasi box Vagrant
Command `vagrant box add user/box` akan mengunduh box terkait ke lokal user dan siap digunakan oleh Vagrant. Di sini saya akan menggunakan box ubuntu/xenial64

![](https://i.imgur.com/3GgZabZ.png)

### 3.3.4 Membuat project
Inisiasi project dengan membuat direktori khusus untuk project tersebut
![](https://i.imgur.com/EScmuNm.png)

Masuk ke dalam direktori yang sudah dibuat, lalu inisiasi vagrant menggunakan command `vagrant init`
![](https://i.imgur.com/LXXswPg.png)

Buka vagrantfile menggunakan command `nano Vagrantfile` lalu ubah box-nya agar menggunakan box ubuntu/xenial64 serta ubah ram dari virtual box
![](https://i.imgur.com/0nvDFlr.png)

Jalankan vagrant dengan menggunakan command `vagrant up` lalu akan muncul log dari langkah-langkah yang sudah dijalankan oleh vagrant
![](https://i.imgur.com/kuzanHl.png)

Box sudah berjalan, selanjutnya login ke dalam box menggunakan command `vagrant ssh` dan akan muncul output seperti ini. Hasil ini menandakan bahwa user sudah berhasil masuk ke box yang sudah dibuat
![](https://i.imgur.com/ITRx9eX.png)

## 3.4.4
Kenapa kita perlu belajar struktur direktori Linux?
`Untuk mengetahui sistem operasi serta cara mengelola file`

1. `/home/yxz/Mail`
2. `doc/howto`
3. `/usr/share/doc/packages`

## 3.5.8
Kenapa kita perlu mempelajari perintah dasar command line?
`Agar dapat mengelola server Linux, dimana server biasanya tidak ada GUI`

Pindah ke direktori /tmp
![](https://i.imgur.com/SJ5qG55.png)

Buat file bernama test1.txt yang berisi "Sekolah DevOps Cilsy" di dalam folder sekarang
![](https://i.imgur.com/CYtsSz2.png)

Buat 1 folder bernama latihan di dalam folder sekarang, copy test1.txt ke dalam folder latihan dengan nama test2.txt
![](https://i.imgur.com/uKEyQcI.png)

Lakukan cut-paste test2.txt ke folder /home dengan nama baru test3.txt. Pindah ke home directory
![](https://i.imgur.com/37U8iIy.png)
Di sini saya menggunakan sudo karena user yang sedang saya gunakan bukan root sehingga tidak bisa menulis file di dalam direktori /home

Hapus file test1.txt dan folder latihan yang ada di /tmp
![](https://i.imgur.com/MmYbVOm.png)

## 3.6.4
Kenapa kita perlu mempelajari manipulasi teks dan file?
`Agar mahir dalam proses scripting`

Buat file latihan1.txt
![](https://i.imgur.com/88umG9g.png)

Buat file hasil1.txt yang hanya berisi baris yang mengandung kata 'cilsy' dan 'mp3' dengan pengecualian baris yang mengandung '#'
![](https://i.imgur.com/W2ZeO7g.png)

## 3.6.6
Kenapa kita perlu mempelajari manipulasi teks dan file?
`Agar mahir dalam proses scripting`

Buat file latihan2.txt
![](https://i.imgur.com/Tj7ICKU.png)

Buat file hasil2-1.txt yang berisi baris yang berawal angka apapun 1 digit kemudian diikuti tulisan cilsy
![](https://i.imgur.com/9F8zwGu.png)

Buat file hasil2-2.txt yang berisi baris yang berawal angka apapun 1 digit atau lebih yang diikuti oleh tulisan cilsy
![](https://i.imgur.com/SWYtWw3.png)

Buat file hasil2-3.txt yang berisi baris yang berawal angka apapun 1 digit yang diikuti oleh tulisan cilsy dan harus diakhiri oleh tanda @
![](https://i.imgur.com/DFi2w9J.png)

## 3.6.10
Buat file latihan3.txt
![](https://i.imgur.com/QLVh5Qv.png)

Filter isi file sehingga hasil akhirnya menjadi seperti ini
![](https://i.imgur.com/yJ1AI9o.png)

`grep -o` untuk mendapatkan hanya keyword nya saja
`sort -V` sort version numbers [link](https://stackoverflow.com/questions/13088370/how-to-sort-strings-that-contain-a-common-prefix-and-suffix-numerically-from-bas)
`sed 's/\./-/g'` mengganti tanda '.' dengan '-'. tanda '.' adalah special character sehingga membutuhkan tanda ''\\''

## 3.7.7
Kenapa kita perlu mempelajari Archiving file?
`Untuk memperkecil ukuran file yang tersimpan di dalam server`

Buat 5 file yang bernama test1, test2, test3, test4, dan test5
![](https://i.imgur.com/zec0xT9.png)

Buat 1 archive bzip2 bernama latihan4.tar.bz2 yang berisi test1-4
![](https://i.imgur.com/UbyenUy.png)

Hapus file test4 yang ada di dalam file archive yang sudah dibuat, ganti dengan test5
![](https://i.imgur.com/LBFxVcE.png)

Ekstrak archive latihan4.tar.bz2 ke folder /home
![](https://i.imgur.com/LV9cPJT.png)

## 3.8.6
Kenapa kita perlu mempelajari finding file?
`Akan berguna dalam aktivitas di server Linux serta scripting`

Cari file dengan ekstensi .conf yang memiliki permission 600 dan terakhir diakses 100 hari yang lalu di dalam folder /etc, simpan hasilnya ke dalam hasil5.txt
![](https://i.imgur.com/UKGRJUm.png)

## 3.9.4
Buat user dan group serta tunjukkan hasilnya
![](https://i.imgur.com/P0WHWp4.png)

1. Kenapa kita perlu mempelajari manajemen user dan group?
`Untuk menjaga keamanan server serta memastikan setiap user dapat mengakses hal yang dibutuhkan`
2. Pada kasus praktek di atas, apa efek ketika 1 user menjadi anggota 2 grup atau lebih (jono)?
`User yang menjadi anggota dari beberapa grup dapat mengakses file dan direktori yang diperbolehkan ke masing-masing grup. Namun hanya satu grup yang menjadi primary group user tersebut`

## 3.11.8
Kenapa kita perlu mempelajari manajemen paket?
`Agar bisa melakukan manajemen aplikasi/service yang terdapat di dalam server Linux`

Cari aplikasi network mapper, install lalu cek versi berapa
![](https://i.imgur.com/6nOiZvi.png)

![](https://i.imgur.com/ZzlN7kB.png)

Hapus aplikasi tersebut
![](https://i.imgur.com/Aph6I0S.png)

## 3.12.7
Kenapa kita perlu mempelajari manajemen layanan?
`Agar bisa mengatur dan mengawasi service yang sedang berjalan di server Linux`

Lakukan instalasi layanan webserver apache
`sudo apt install apache2`

Edit layanan tersebut agar auto-start setiap booting
`systemctl enable apache2`

Restart layanan tersebut dan cek statusnya
![](https://i.imgur.com/ycjLVvq.png)

## 3.14 Setup Webserver dan aplikasi
Ubah konfigurasi vagrant box agar dapat menerima komunikasi dari host. Komunikasi hanya diperbolehkan dari host, bukan public access
![](https://i.imgur.com/td3TPoh.png)

Vagrant box dapat berkomunikasi melalui port 8080 dari localhost

Install webserver dan database server melalui command
`sudo apt-get install apache2 php php-mysql`
`sudo apt-get install mysql-server`

Setelah instalasi selesai, cek apakah webserver sudah berjalan
![](https://i.imgur.com/JTPF0hC.png)

Cek database dengan mengakses console mysql dan membuat password baru
`sudo mysql -u root -p`

Buat username baru dengan password baru, lalu berikan hak akses pada user tersebut
![](https://i.imgur.com/Xv6PFal.png)

Buat database dbsosmed menggunakan user baru
![](https://i.imgur.com/KzxgLEA.png)

Download aplikasi dari repo cilsy dan ekstrak
![](https://i.imgur.com/yx7xxOh.png)

![](https://i.imgur.com/zLydtWX.png)

Pindahkan direktori sosial-media-master ke /var/www/html/ dengan terlebih dahulu menghapus file index.html yang sudah berada di direktori tujuan
![](https://i.imgur.com/8hc12T8.png)

Import dump.sql ke dalam mysql dengan command
`cd /var/www/html`
`sudo mysql -u devopscilsy -p dbsosmed < dump.sql`

Ujicoba aplikasi web
![](https://i.imgur.com/PFg9RFs.png)
*Landing page aplikasi web*

![](https://i.imgur.com/S8qLhbQ.png)
*Pendaftaran akun*

![](https://i.imgur.com/8Ib52wc.png)
*Login*

Sepertinya masih ada error di script aplikasi web server. User tidak bisa melakukan login. Di bagian atas halaman juga terlihat ada teks yang tidak seharusnya muncul di situ

## 3.15.6
Buat script bernama 'status' yang menampilkan status dari layanan
`nano status`
![](https://i.imgur.com/YVLh5OE.png)

Ubah permission dari script tersebut agar dapat dieksekusi
`chmod 755 status`

Jalankan script
`./status`

## 3.15.8
Buat script bernama 'shadow' yang akan menghitung pada baris keberapa kata shadow muncul di file /etc/group, lalu melakukan operasi pada hasilnya

![](https://i.imgur.com/440LwMU.png)

Ubah permission dari script, lalu jalankan script
`chmod 755 shadow`
![](https://i.imgur.com/domtLk9.png)

## 3.16.3
Buat script untuk instalasi service yang dibutuhkan untuk menjalankan sebuah webserver
![](https://i.imgur.com/arYAM14.png)

Ubah permission script, lalu jalankan script. Cek apakah service sudah terinstall
![](https://i.imgur.com/T42Os4S.png)
note: instalasi mysql masih perlu memasukkan password secara manual

Buat script untuk menghapus semua service webserver
![](https://i.imgur.com/V6zKBTS.png)

Cek apakah service sudah berhasil dihapus
![](https://i.imgur.com/HmgeKkD.png)
