Server bekerja dalam kondisi yang jauh berbeda dari laptop: terpasang di rak tanpa monitor, dinyalakan bertahun-tahun, dan dikelola dari jauh lewat jaringan. Konsekuensinya, instalasi server tidak menyertakan desktop sama sekali — yang muncul setelah boot hanyalah layar login teks — dan setiap paket yang terpasang dipilih dengan alasan. Pada Chapter penutup Section ini kita jalani dua jalur instalasi server paling populer: Debian netinstall yang ramping, serta Ubuntu Server dengan installer Subiquity dan cloud-init. Setelah itu kita menyambut langkah pertama yang selalu sama di dunia server: masuk lewat SSH.

Filosofi Instalasi yang Minimal #

Setiap paket terpasang menambah dua beban: kode yang harus diperbarui dan celah yang bisa diserang. Desktop environment di server memakan ratusan megabyte RAM tanpa memberi apa pun balik, karena seluruh pengelolaan berlangsung lewat terminal jarak jauh. Karena itu instalasi server hanya memuat fondasi: kernel, sistem dasar, satu akun administrator, dan SSH server sebagai pintu masuk. Paket lain ditambahkan belakangan bila tugasnya jelas — mekanisme penambahan itu sendiri materi Section Package Management.

Berkas netinstall adalah wujud filosofi ini: ISO-nya hanya berukuran ratusan megabyte — cukup untuk installer dan paket inti — dan seluruh paket pilihan diunduh dari mirror saat instalasi berlangsung. Hasilnya sistem yang segar sejak menit pertama. Varian ISO Debian lengkap dengan mirror resminya bisa dilihat di https://www.debian.org/CD/ .

Debian Netinstall dan Tasksel #

Alur d-i (debian-installer) berjalan dalam menu teks yang ringkas: bahasa, lokasi, keyboard, hostname (misalnya server-kantor), lalu dua akun — password root yang boleh dibiarkan kosong bila kita ingin menonaktifkan akun root dan mengandalkan sudo, plus satu akun kerja. Pada layar partisi, pilihan Guided - use entire disk … with LVM adalah jalur yang disarankan untuk server: LVM memisahkan ukuran partisi logis dari batas fisik disk, sehingga partisi bisa diperbesar nanti tanpa pindah-pindah data — materi yang kita bedah tuntas pada Chapter LVM di Section Storage dan Backup.

Pilihan paling menentukan muncul di layar Software selection, tempat tasksel menawarkan kelompok paket. Berikut contoh tampilan menu tersebut:

text
Software selection:

[*] SSH server
[*] standard system utilities
[ ] Debian desktop environment
[ ] ... GNOME
[ ] ... Xfce
[ ] web server
[ ] print server

Untuk server, dua centang di atas sudah ideal: SSH server sebagai pintu masuk jarak jauh dan standard system utilities berisi alat-alat dasar sistem. Entri desktop environment sengaja dibiarkan kosong. Setelah itu GRUB dipasang ke disk pertama, sistem reboot, dan yang menyambut kita hanyalah prompt login — persis seperti yang kita inginkan.

Ubuntu Server, Subiquity, dan cloud-init #

ISO Ubuntu Server (unduh dari https://ubuntu.com/download/server ) memakai installer bernama Subiquity dengan alur yang setara: jaringan (DHCP atau alamat statis), storage dengan skema LVM sebagai pilihan bawaan, profil user, lalu satu layar penting berisi centang Install OpenSSH server. Hal baru ada setelah instalasi: cloud-init membaca berkas user-data pada boot pertama dan menjalankan konfigurasi awal dari sana — membuat akun, memasang kunci SSH, mengatur hostname. Mari kita buat contoh berkas tersebut dengan heredoc:

bash
mkdir -p seed-cloud-init
cat > seed-cloud-init/user-data <<'EOF'
#cloud-config
users:
  - name: budi
    shell: /bin/bash
    sudo: ALL=(ALL) NOPASSWD:ALL
ssh_pwauth: true
EOF
cat seed-cloud-init/user-data

Output yang Dihasilkan:

text
#cloud-config
users:
  - name: budi
    shell: /bin/bash
    sudo: ALL=(ALL) NOPASSWD:ALL
ssh_pwauth: true

Mari kita telaah baris-baris di atas:

  1. Baris 1 (mkdir -p ...): membuat folder seed-cloud-init untuk berkas konfigurasi.
  2. Baris 2 (cat > ... <<'EOF'): heredoc — semua baris hingga penanda EOF ditulis ke berkas user-data. Tanda kutip pada 'EOF' membuat isi ditulis apa adanya tanpa ekspansi variabel.
  3. Baris 3-8 (isi berkas): #cloud-config adalah header wajib, users mendaftar akun bernama budi dengan shell bash dan hak sudo tanpa password, lalu ssh_pwauth: true mengizinkan login SSH dengan password.
  4. Baris 9 (EOF): penutup heredoc — cat berhenti menulis dan kembali membaca skrip.
  5. Baris 10 (cat ...): menampilkan hasil akhirnya untuk diperiksa.

Pada server fisik, berkas seperti ini ditaruh pada berkas terpisah (seed ISO atau flashdisk) yang terbaca saat boot pertama; di cloud, penyedia layanan menyuguhkannya lewat metadata. Format lengkap cloud-init didokumentasikan di https://cloud-init.io — mulai dari daftar modul hingga contoh berkas untuk berbagai penyedia cloud.

Langkah Pertama Setelah Reboot #

Dari laptop, sambungkan server dengan ssh diikuti user dan alamat IP — ip -brief address di server menampilkan alamatnya:

bash

Sesi pertama selalu berisi pertanyaan keaslian host karena kunci server belum dikenal; setelah menjawab yes dan memasukkan password, prompt berubah menjadi milik server. Berikut contoh tampilan sesi login pertama tersebut:

console
budi@laptop-budi:~$ ssh [email protected]
The authenticity of host '192.0.2.10' can't be established.
ED25519 key fingerprint is SHA256:ContohSidikJariKunci.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
[email protected]'s password:
Welcome to Ubuntu 24.04.1 LTS
budi@server-kantor:~$

Prompt budi@server-kantor menandakan setiap perintah selanjutnya dieksekusi di server, bukan di laptop. Dua perintah pertama yang layak dijalankan di sana: sudo apt update && sudo apt full-upgrade untuk memastikan semua paket mutakhir, lalu uptime dan df -h untuk memastikan server sehat. Mulai titik ini pula seluruh materi selanjutnya di Course ini — dari manajemen paket hingga keamanan — bisa dipraktikkan langsung di server.

Dengan ini gerbang instalasi Linux tuntas: kita telah memasang Linux sebagai sistem tunggal, berdampingan dengan Windows, di dalam virtual machine, lewat live USB, dan di server tanpa monitor. Pada sistem desktop, tampilan yang menyambut setelah login adalah lingkungan desktop — dunia yang kita jelajahi mulai Section Lingkungan Desktop.