Alpine Linux – Distro Linux dengan Ukuran File yang Kecil

Alpine Linux - Distro Linux dengan Ukuran File yang Kecil

Alpine Linux adalah distribusi Linux dengan ukuran file yang kecil. Hal tersebut dimungkinkan karena Alpine Linux dibangun berbasiskan musl libc dan BusyBox. Container Alpine Linux ukurannya tidak lebih dari 8 MB dan minimal instalasi hanya membutuhkan 130 MB disk space.

Linux Router Project (LRP) distribusi “linux-on-a-floppy”, distro Linux yang muat dalam disket 1,44MB. Distro inilah yang menjadi cikal bakal Alpine Linux, dirancang khusus untuk untuk router, thin server, thin client, perangkat network, dan embedded system. LRP kemudian di-fork menjadi Linux Embedded Appliance Framework (LEAP) Project, lalu LEAP di-fork lagi menjadi Alpine Linux. Hardened kernel telah dipakai secara default sejak Alpine v3.7 yang bertujuan untuk pengamanan dari exploit dan vulnerability.

Image Alpine Linux

Image Alpine Linux tersedia dalam 8 versi yaitu:

  1. Standard: minimal installation image, membutuhkan jaringan internet.
  2. Extended: image Standard dengan tambahan beberapa paket.
  3. Netboot: ditujukan untuk digunakan bersama Preboot eXecution Environment (PXE).
  4. Raspberry PI: ditujukan untuk Rapsberry PI mulai dari versi 1 sampai 4.
  5. Generic ARM: menggunakan kernel untuk arsitektur ARM, mendukung armv7 dan aarch64.
  6. Mini Root Filesystem: minimal root filesystem, ditujuakan untuk container dan minimal chroots.
  7. Virtual: Standard image, tetapi menggunakan kernel yang berbeda, dioptimalkan untuk virtual machine.
  8. Xen: ditujukan untuk Xen Hypervisor.

Alpine Linux akan diinstall di atas virtual machine VirtualBox, oleh karena itu image yang digunakan adalah image Virtual x86_64 yang ukuran file image ISO alpine-virt-3.17.0-x86_64.iso hanya 49MB.

Virtual Machine

Virtual machine menggunakan VirtualBox dengan spesifikasi:

  • RAM 512MB
  • Disk 1GB
  • ISO image alpine-virt-3.17.0-x86_64.iso
  • Network Adapter 1 NAT
  • Network Adapter 2 Host-only

Install Alpine Linux

1. Start virtual machine.
2. Login dengan user root, tanpa password.
3. Jalankan perintah setup-alpine untuk memulai instalasi.

Setup Alpine
Setup Alpine

4. Available keyboard layouts, tekan ENTER.

5. Masukkan hostname, default localhost, misal alpine.musaamin.web.id.

6. Konfigurasi network interfaces, tekan ENTER untuk eth0 dan eth1, keduanya memakai DHCP.

7. Jawab n atau tekan ENTER (default n) untuk manual network configuration.

8. Memberikan password untuk user root.

9. Masukkan Asia/Jakarta untuk timezone, default UTC.

10. HTTP/FTP proxy URL, tekan ENTER.

11. NTP client, tekan ENTER.

12. Available mirrors, tekan SPASI sampai tampil pertanyaan. Lalu tekan ENTER untuk memilih nomor 1 (default mirror) sebagai mirror server repository.

13. Setup a user, tekan ENTER.

14. Which ssh server, tekan ENTER.

15. Allow root ssh login, tekan ENTER (default Yes, prohibit-password) jika ingin mengijinkan user root login SSH tapi tidak diperbolehkan login menggunakan password harus menggunakan key.

16. Enter ssh key, tekan ENTER.

17. Available disks, masukkan sda.

18. How would you like to use it?, jawab sys.

19. Erase the above disks, jawab y.

20. Installation is complete. Please reboot., instalasi selesai, restart dan remove ISO image.

21. Login dengan menggunakan user root dan password yang dimasukkan pada saat instalasi.

Login Alpine Linux
Login Alpine Linux

Uji Network

Network interfaces yang terdeteksi pada saat instalasi yaitu eth0 (Network Adapter NAT) dan eth1 (Network Adapter Host-Only). eth0 untuk koneksi ke internet sementara eth0 untuk koneksi ke Host-OS untuk kebutuhan SSH remote. Keduanya memakai dynamic IP address. Cek kembali network interface dan IP address dengan menggunakan perintah ifconfig.

ifconfig - Menampilkan network interfaces
ifconfig – Menampilkan network interfaces

Uji koneksi jaringan ke internet, ping ke google.com.

Uji koneksi jaringan dari Host-OS ke Alpine.

SSH Remote

Konfigurasi SSH server (openssh) pada saat instalasi, user root bisa login tapi harus memakai key. Ubah konfigurasi SSH server agar dapat login dengan menggunakan password, karena saat ini belum ada key yang dimasukkan ke user root Alpine.

Cari #PasswordAuthentication yes, hapus karakter # untuk mengaktifkan login dengan menggunakan password.

Lalu restart SSH server.

Uji SSH remote ke Alpine.

SSH remote ke Alpine
SSH remote ke Alpine

Alpine Repository

File repository Alpine Linux berada di /etc/apk/repositories.

Isi file repositories.

  • main: repository utama yang paketnyay didukung langsung oleh tim inti Alpine.
  • community: repository yang paketnya berasal dari user komunitas.
  • testing: repository yang berisi paket baru, masih dalam tahap pengujian.
  • edge: repository yang berisi paket tahap development dan build terbaru.

Aktifkan repository community dengan menghapus tanda #.

Package Manager

Alpine Linux memakai package manager sendiri yang diberi nama apk (Alpine Package Keeper).

Update repository dan daftar paket.

Hasil perintahnya.

Upgrade semua paket.

Mencari paket.

Misal mencari nano.

Menampilkan informasi paket.

Misal informasi paket nano.

Hasil perintahnya.

Install paket.

Misal install nano.

Menampilkan ukuran file paket yang sudah terinstall.

Hasil perintahnya.

Menampilkan semua paket yang terinstall.

Hasil perintahnya.

Menghapus paket.

Misalnya menghapus nano.

Menampilkan petunjuk pemakaian apk.

Membuat User

Membuat user baru dengan nama musa.

Hasil perintahnya.

Default shell di Alpine Linux menggunakan ash. Prompt ash tidak menampilkan user yang sedang aktif, hanya menampilkan hostname dan lokasi folder aktif saja. Gunakan command whoami untuk menampilkan user yang sedang digunakan.

Jika user mau beralih ke root gunakan command su dan masukkan password root.

Pemakaian Disk dan RAM

Menampilkan pemakaian disk yang terpakai setelah instalasi Alpine Linux v3.17 dengan perintah df -h.

Partisi ‘/’ (root) hanya memakai disk space 52.5MB.

Menampilkan pemakaian RAM dengan htop.

RAM yang terpakai hanya 46.9MB.

Pemakaian RAM di Alpine Linux
Pemakaian RAM di Alpine Linux

Selamat mencoba 🙂

Leave a Reply

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