Remastering Fedora Linux 44
dengan KIWI-NG
Disusun oleh:
Nikolas Tiar
Banjarnahor (25051204056)
Muhammad Nur Fajri
(25051204016)
Habibi (25051204058)
Talitha Zahra A.
P. (25051204064)
Bab I : Pendahuluan
1.
Latar Belakang
Dalam dunia pengembangan software
dan manajemen sistem, persiapan alat-alat yang diperlukan untuk tugas itu
sangat penting. Sang penguna dapat menginstall sebuah distribusi Linux dari
awal dan menyiapkannya untuk memenuhi kerperluan. Namun, cara ini (menginstall
dari awal) sangat tidak efisien ketika anda bekerja dalam tim, dimana semua
orang perlu alat dan bahan yang sama, penyiapan dan pengaturan konfigurasi
sistem tiap sistem dan tiap member tim sangat lah memakan waktu dan tidak
efisien. Penyiapan lingkungan kerja yang mencakup instalasi desktop
environment (seperti KDE Plasma), compiler (seperti GCC untuk C++),
library development custom, hingga penyesuaian modul kernel untuk hardware
yang dimiliki membutuhkan otomatisasi. Pendekatan remastering
tradisional sering kali mengandalkan modifikasi manual pada sistem yang sedang
berjalan dan membungkusnya kembali, yang rentan terhadap galat dan sulit
direproduksi.
Sebagai solusi, image builder deklaratif
seperti KIWI-NG (Next Generation) digunakan. Dengan memanfaatkan blueprint
berupa file XML, proses pembuatan distribusi yang dikonfigurasi untuk memenuhi
keperluan dapat dilakukan secara terstruktur (Infrastructure as Code). Ini
menjamin bahwa setiap hasil kompilasi akan selalu bersih, konsisten, dan siap
di-deploy ke berbagai perangkat dengan konfigurasi yang presisi. Dalam laporan
ini, kami akan remastering Fedora Linux 44 dengan KIWI-NG ini.
2.
Rumusan Masalah
A.
Apa itu KIWI-NG?
B.
Cara bekerja KIWI-NG bagaimana?
C.
Bagaimana kita dapat membuat-versi-kita/remastering
Fedora Linux 44 dengan KIWI-NG?
3.
Tujuan Laporan
A.
Menguasai arsitektur image building
menggunakan deskripsi sistem berbasis XML pada KIWI-NG.
B.
Mempraktikkan kustomisasi tingkat lanjut pada
Fedora 44, termasuk penambahan paket yang di-inginkan, memilih desktop environment
yang cocok, dan memilih tipe format image distribusi sesuai keperluan.
C.
Menghasilkan file image Live ISO Fedora
44 yang bootable dengan lingkungan yang sudah disesuaikan sepenuhnya (out-of-the-box).
4.
Manfaat Laporan
Praktikum ini memberikan keterampilan
esensial dalam administrasi sistem Linux tingkat lanjut. Penguasaan tool
seperti KIWI-NG sangat relevan untuk kebutuhan DevOps, pembuatan
prototype distribusi Linux, serta penyediaan Live Environment khusus
untuk eksperimen pengembangan perangkat lunak maupun pemulihan sistem (system
recovery).
Bab II : Tinjauan Pustaka
1.
Fedora Linux
Fedora Linux adalah distribusi Linux
open-source yang didukung oleh komunitas, disponsori oleh Red Hat (anak
perusahaan IBM). Fedora dikenal sebagai sistem operasi yang inovatif,
progresif, dan fokus pada teknologi terbaru (cutting-edge).
Fedora memiliki siklus rilis yang cepat,
yakni setiap 6 bulan, dengan masa dukungan sekitar 13 bulan. Dalam
hierarki pengembangan Red Hat, Fedora berfungsi sebagai Upstream bagi Red
Hat Enterprise Linux (RHEL).
Artinya, teknologi baru akan diuji, dikembangkan, dan disempurnakan di
Fedora sebelum diterapkan di RHEL yang lebih berfokus pada stabilitas
perusahaan.
2.
DNF
DNF (Dandified YUM) adalah manajer paket
generasi terbaru untuk distribusi Linux berbasis RPM, seperti Fedora, Red Hat
Enterprise Linux (RHEL), dan AlmaLinux. DNF diperkenalkan sebagai penerus YUM (Yellowdog
Updater, Modified) untuk mengatasi beberapa keterbatasan mendasar yang ada
pada pendahulunya, terutama terkait performa, konsumsi memori, dan resolusi
dependensi yang lambat.
DNF pertama kali diperkenalkan di Fedora 18
dan menjadi manajer paket default sejak Fedora 22.
3.
KIWI-NG
KIWI-NG adalah sebuah kerangka kerja (framework)
berbasis perintah baris (CLI) yang bersifat open-source untuk membangun citra
sistem operasi (operating system images) yang kompleks dan siap pakai untuk
berbagai platform, termasuk perangkat keras fisik, mesin virtual, hingga
lingkungan cloud. Dikembangkan sebagai penerus dari proyek KIWI yang
asli oleh SUSE, KIWI-NG ditulis ulang menggunakan bahasa pemrograman Python
untuk memberikan modularitas yang lebih baik, kemudahan pemeliharaan, serta
performa yang lebih optimal. Secara fundamental, KIWI-NG berfungsi sebagai
lapisan abstraksi yang memungkinkan pengembang untuk mendefinisikan seluruh
spesifikasi sistem operasi dalam satu set konfigurasi terpusat, sehingga proses
pembuatan citra sistem menjadi lebih terstandarisasi dan dapat direproduksi
secara konsisten (reproducible).
Mekanisme kerja KIWI-NG berpusat pada
penggunaan file konfigurasi berbasis XML (biasanya disebut config.xml) yang
bersifat deklaratif. Dalam file tersebut, pengembang mendefinisikan parameter
sistem seperti arsitektur perangkat keras, skema partisi disk, repositori
perangkat lunak yang digunakan, hingga daftar paket spesifik yang harus
diinstal. Proses pembangunan citra biasanya terbagi menjadi dua tahap utama:
tahap prepare, di mana KIWI-NG membuat direktori akar (root tree) dan mengunduh
semua dependensi melalui manajer paket asli distribusi tujuan (seperti DNF
untuk Fedora atau Zypper untuk SUSE); dan tahap create, di mana direktori
tersebut dikemas ke dalam format output akhir seperti ISO untuk media live,
QCOW2 untuk virtualisasi, atau citra disk mentah (RAW).
Contoh config.xml SUSE Tumbleweed dari github.com/OSInside/kiwi-descriptions
Keunggulan utama KIWI-NG terletak pada
fleksibilitasnya yang lintas distribusi, yang mendukung pembuatan citra untuk
berbagai basis sistem operasi termasuk Fedora, RHEL, openSUSE, hingga Ubuntu.
Selain itu, KIWI-NG memungkinkan integrasi skrip kustom (shell scripts)
selama proses pembangunan untuk melakukan konfigurasi sistem tingkat lanjut
yang tidak tercakup dalam skema XML standar. Dalam konteks modern, alat ini
sangat krusial bagi administrator sistem dan pengembang distribusi karena
kemampuannya untuk menghasilkan sistem yang sangat ramping dan terspesialisasi,
yang sangat dibutuhkan dalam penerapan infrastruktur berbasis kontainer, sistem
tertanam (embedded systems), maupun penyediaan layanan cloud berskala besar
secara otomatis.
4.
fedora-kiwi-descriptions
fedora-kiwi-descriptions (pagure.io/fedora-kiwi-descriptions)
adalah kumpulan templat konfigurasi atau "resep" resmi yang digunakan
untuk membangun berbagai varian citra sistem operasi Fedora melalui alat
KIWI-NG. Secara teknis, repositori ini menyediakan struktur deklaratif dalam bentuk
file XML untuk menentukan daftar paket, repositori, serta skrip shell untuk
kustomisasi sistem tingkat lanjut. Dengan memanfaatkan deskripsi ini,
pengembang dapat mengotomatisasi proses pembuatan citra yang dapat direproduksi
secara konsisten (reproducible), mulai dari edisi Workstation hingga
citra khusus untuk lingkungan cloud dan embedded. Keberadaan templat ini sangat
krusial dalam menyederhanakan alur kerja pembangunan distribusi kustom karena
memungkinkan integrasi paket dan konfigurasi sistem dilakukan secara
terstandarisasi tanpa harus mendefinisikan ulang seluruh arsitektur dasar
Fedora dari awal. ( Di fedora-kiwi-descriptions sudah disediakan script yang
bakal otomatiskan beberapa task dalam membuat/remastering distro Fedora, juga
untuk konfigurasi dipecah ke beberapa file, untuk distro lain mohon riset lebih
dalam.)
Isi direktori repo pagure.io/fedora-kiwi-descriptions
Bab III : Pembahasan
1.
Keperluan
Berikut beberapa keperluan yang
direkomendasikan untuk di-ikuti:
·
Mengunakan OS Fedora Linux 44 (direkomendasikan
di-install secara native/langsung ke komputer)
·
RAM 16GB+, Storage 25GB+ (direkomendasikan tipe
NVMe atau SSD), dan CPU yang tergolong modern dan kencang (performa remastering
sangat tergantung pada CPU, jika anda merasa proses remastering dengan
KIWI-NG sangat lama, kemungkinan ada bottleneck di CPU.)
·
Virtual Machine terinstall
(direkomendasikan QEMU + virt-manager) untuk mencoba hasil output remastering.
·
Koneksi Internet yang kencang dan stabil.
2.
Langkah-Langkah
(1)
sudo dnf install git-core (kalo belum ada)
(2)
git clone https://pagure.io/fedora-kiwi-descriptions
(3)
Install dependecies untuk
fedora-kiwi-descriptions (sudo dnf --assumeyes install kiwi kiwi-systemdeps
distribution-gpg-keys)
(4)
cd (change dir) ke folder repo
(fedora-kiwi-descriptions)
(5)
Duplikat “Fedora.kiwi” untuk modifikasi nanti
(6)
Cd ke “components”. Disini akan dicontohkan cara
nambah package yang mau tambah.
(7)
Buat konfigurasi xml baru. File XML ini bakal
kita edit.
(8)
Edit file XML yang dibuat , disini akan di add
package “fastfetch” dan “btop”. Ikuti format XML yang disediakan KIWI-NG di osinside.github.io/kiwi/image_description.html
. Kalo bingung, ikuti format dibawah ini aja.
Kalian bebas mengunakan text editor
apa aja, disini kami pake nano.
<image>,<packages>,<package name =”nama pkg dnf yang mau di-install"/>
(9)
Edit duplikat Fedora.kiwi (Fedora-mod.kiwi).
Disini akan menambahkan directory file konfigurasi custom yang dibuat.
(10) Build distro custom nya mengunakan Fedora-mod.kiwi ; (sudo ./kiwi-build --kiwi-file=Fedora-mod.kiwi --image-type=<image_type> --image-profile=<image_profile> --output-dir ./outdir), <image-type> dan <image-profile> bisa dilihat varian nya di VARIANTS.MD, disini akan pakai image type “iso” dan profile “KDE-Desktop-Live"
Proses bakal berlangsung selama 30+
menit, tergantung kecepatan internet dan kecepatan CPU. Makan atau Minum kopi
untuk menunggu.
Komputerku!!!!
Kalau build nya sukses , hasil output bakal di beri tahu (outdir-build)
Namun kalo hasilnya malah ketemu seperti :
System
kehabisan memory RAM. Pastikan sudah punya RAM 16GB+ (lebih baik lakukan secara
native daripada VM, VM malah hanya bisa memakai sedikit RAM dikarenakan dipakai
OS Host).
(11)
Test hasil remastering di Virtual Machine
Coba hasil remaster nya di virt-manager.
(jangan lupa allow virt-manager berbicara dengan QEMU,
{sudo systemctl enable --now virtqemud.socket
sudo systemctl enable --now virtnetworkd.socket
sudo systemctl enable --now virtstoraged.socket})
Pilih local install media.
Browse >> Browse Local. File hasil nya seharusnya ada di {lokasi-repo}/fedora-kiwi-descriptions/outdir-build/ Fedora.x86_64-Rawhide.iso
Pilih Forward. Jika virt-manager
mengeluh tidak punya permission untuk akses path ke iso, pilih Yes aja.
Spek VM sesuai kan dengan hardware
masing-masing.
Kalau pilih <image-profile>={de.yang.dipilih}-Live , tidak perlu membuat storage virtual karena kita bisa langsung coba OS tanpa install, selain itu ({de.yang.dipilih}-Disk) wajib bikin storage virtual dan install OS, untuk mencoba hasil OS nya.
Langsung aja Finish. VM seharusnya langsung otomatis berjalan.
Langsung Start Fedora agar skip check integritas ISO yang akan makan waktu.
Terus, Coba cek apakah package yang dimasukkan apa kah tersedia.
Hore! Package yang ditambahkan (fastfetch dan btop) ada! Mission Success!
Bab IV : Penutup
1.
Kesimpulan
Remastering sistem operasi Fedora 44
menggunakan KIWI-NG memungkinkan pembuatan distribusi Linux kustom yang
sepenuhnya dapat diprogram (programmable) melalui XML. Dengan
mengkloning templat dari fedora-kiwi-descriptions, kita dapat menghemat
waktu penyiapan sistem dengan mengintegrasikan utilitas pengembangan kompleks
secara out-of-the-box. Hasil kompilasi ini jauh lebih stabil
dibandingkan metode konvensional, karena keseluruhan image dibangun di
lingkungan yang terisolasi dan bersih, memanfaatkan mekanisme penyelesaian
dependensi bawaan dari DNF.
2.
Saran
·
Konfigurasi lebih dalam
Untuk praktikum lebih lanjut, coba menerapkan konfigurasi kustom untuk
aplikasi tertentu, contoh nya seperti membuat “fastfetch” load config custom
yang menampilkan informasi dengan tampilan berbeda.
·
Penyesuaian Hardware
Juga untuk praktikum lebih lanjut, Tambahkan repo custom untuk hardware
custom, seperti driver RGB lightting pada keyboard gaming atau repo lokal untuk
wifi card yang driver nya wajib install manual.
·
Eksplor KIWI-NG
Harapan
nya lewat laporan ini, akan menginspirasi pembaca untuk lebih kustomisasi lebih
lanjut remastering distro, tak terbatas hanya untuk Fedora.
Daftar Pustaka
·
https://osinside.github.io/kiwi/
(Dokumentasi KIWI-NG)
·
https://pagure.io/fedora-kiwi-descriptions
(Official Template Description KIWI-NG Fedora)
Lampiran
Tidak ada komentar:
Posting Komentar