Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Tutorial Membuat Install Ubuntu jadi unattended

Posted on May 22, 2024

Melakukan instalasi berulang dan dapat diduplikasi untuk sistem operasi sangat penting, terutama di lingkungan perusahaan. Untuk melakukan instalasi tanpa pengawasan, Ubuntu sebelumnya mendukung file Debian preseed dan Kickstart. Namun, mulai dari Ubuntu Server 20.04 dan versi 23.04 Ubuntu Desktop, metode instalasi tersebut sudah tidak digunakan lagi, dan distribusi ini mengadopsi format autoinstall baru yang memanfaatkan cloud-init.

Dalam tutorial ini, kita akan belajar cara menulis file autoinstall Ubuntu dan cara menggunakannya untuk melakukan instalasi tanpa pengawasan dan dapat diduplikasi.

Dalam tutorial ini Anda akan belajar:

  • Cara menulis file autoinstall dan menentukan instalasi Ubuntu dalam segala aspeknya
  • Cara meneruskan file autoinstall ke installer desktop dan server Ubuntu
  • Cara menulis dan melakukan instalasi Ubuntu tanpa pengawasan dengan autoinstall

Perangkat Lunak dan Prasyarat

  • Sistem: Ubuntu Server >= 20.04 / Ubuntu Desktop >= 23.04
  • Perangkat Lunak: Tidak ada perangkat lunak khusus yang dibutuhkan
  • Lainnya: Tidak ada

Konvensi:

  • # – Memerlukan perintah linux-commands tertentu untuk dijalankan dengan hak akses root, baik secara langsung sebagai pengguna root atau dengan menggunakan perintah sudo.
  • $ – Memerlukan perintah linux-commands tertentu untuk dijalankan sebagai pengguna biasa tanpa hak istimewa.

Pengenalan File Autoinstall

Sebagai distribusi turunan Debian, Ubuntu awalnya mendukung file preseed sebagai metode untuk melakukan instalasi tanpa pengawasan dan dapat diduplikasi. Dukungan untuk sintaks instalasi Kickstart kemudian ditambahkan sebagai lapisan kompatibilitas, tetapi tidak semua perintah Kickstart diimplementasikan. Mulai dari Ubuntu Server 20.04, dan sejak Ubuntu Desktop 23.04, Ubuntu mengadopsi metode instalasi otomatisnya sendiri, berdasarkan sintaks YAML: autoinstall.

Hal pertama yang biasanya kita lihat dalam file autoinstall adalah komentar “#cloud-config”: ini diperlukan jika kita ingin file tersebut diproses oleh cloud-init (lebih lanjut tentang ini nanti). Key utama yang digunakan dalam file konfigurasi adalah autoinstall; versi sintaks file, sebaliknya, ditentukan dengan key version. Saat penulisan ini, hanya versi 1 yang tersedia:

YAML

#cloud-config
autoinstall:
  version: 1

Use code with caution.content_copy

Memilih Sumber

Untuk menentukan “lingkungan” yang ingin kita instal, kita dapat menggunakan key source, yang menggunakan pemetaan sebagai nilainya. Di dalam pemetaan ini, kita meneruskan nama lingkungan yang ingin kita instal sebagai nilai dari key id. Saat menginstal desktop Ubuntu, misalnya, kita dapat memilih antara “ubuntu-minimal-desktop” dan “ubuntu-desktop” lengkap. Jika key dihilangkan, sumber pertama yang tersedia akan digunakan:

YAML

#cloud-config
autoinstall:
  source:
    id: ubuntu-desktop-minimal

Use code with caution.content_copy

Mengatur Lokal Sistem, Zona Waktu, dan Tata Letak Keyboard

Untuk mengatur lokal sistem, kita menggunakan key locale. Sebaliknya, pengaturan keyboard ditentukan melalui key keyboard. Key ini menggunakan pemetaan sebagai nilai; dalam contoh di bawah ini kita hanya menentukan layout yang ingin kita gunakan (us); dimungkinkan juga untuk menentukan parameter lain, seperti varian layout. Terakhir, untuk mengatur zona waktu sistem, kita menggunakan key timezone:

YAML

#cloud-config
autoinstall:
  locale: en_US.UTF-8
  keyboard:
    layout: us
  timezone: Europe/Rome

Use code with caution.content_copy

Konfigurasi Antarmuka Jaringan

Untuk mengkonfigurasi jaringan sistem, kita menggunakan key network, menggunakan sintaks netplan. Dalam contoh di bawah ini, saya menentukan bahwa saya ingin antarmuka Ethernet enp1s0 dikonfigurasi secara otomatis melalui dhcp4:

YAML

#cloud-config
autoinstall:
  network:
    version: 2
    ethernets:
      enp1s0:
        dhcp4: true

Use code with caution.content_copy

Konfigurasi Nama Host dan Pengguna Awal Sistem

Untuk menggunakan sistem kita dengan aman, kita perlu membuat setidaknya satu pengguna tanpa hak istimewa. Kita juga perlu mengatur nama host sistem. Kedua aspek ini dikelola melalui key identity. Key ini menggunakan pemetaan sebagai nilai; kita mendefinisikan username, password, dan hostname, dengan key masing-masing:

YAML

#cloud-config
autoinstall:
  identity:
    username: egidio
    hostname: linuxconfig
    password: '$6$mzOdSSVUfhWRNhcX$mkm.drDfOLfpZRX/58ouJqMvit

Use code with caution.

Konfigurasi Server SSH

Dalam file autoinstall, kita memiliki kesempatan untuk menentukan apakah kita ingin menginstal dan mengkonfigurasi server SSH. Kita dapat mengaktifkan atau menonaktifkan autentikasi kata sandi, dan akhirnya meneruskan daftar kunci publik resmi yang akan ditambahkan ke file authorized_keys pengguna awal:

YAML

#cloud-config
autoinstall:
  ssh:
    install-server: true
    allow-pw: true
    authorized-keys: []

Use code with caution.content_copy

Menginstal Paket Tambahan

Untuk menentukan daftar paket tambahan yang akan ditarik oleh pengelola paket apt-get sebagai bagian dari instalasi sistem, kita dapat menggunakan key packages. Berikut adalah contohnya:

YAML

#cloud-config
autoinstall:
  packages:
    - git
    - python3-pip

Use code with caution.content_copy

Untuk menginstal paket snap, sebaliknya, kita menggunakan kata kunci snaps. Kata kunci ini menerima daftar pemetaan sebagai nilai. Dalam setiap pemetaan, kita menggunakan key name, channel, dan classic untuk menentukan, masing-masing, nama paket snap yang akan diinstal, saluran dari mana snap akan diinstal (defaultnya adalah “stable”), dan apakah paket snap akan diinstal dalam mode klasik (defaultnya adalah “false”):

YAML

#cloud-config
autoinstall:
  snaps:
    - name: pycharm-community
      channel: stable 
      classic: true

Use code with caution.content_copy

Menentukan Aksi Pasca-Instalasi

Untuk menentukan aksi pasca-instalasi, kita menggunakan key shutdown. Key ini menerima dua nilai yang mungkin: “poweroff” dan “reboot”:

YAML

#cloud-config
autoinstall:
  shutdown: reboot

Use code with caution.content_copy

Menentukan Pengaturan Penyimpanan

Salah satu aspek terpenting dari instalasi sistem adalah pengaturan partisi. Saat menginstal Ubuntu secara interaktif, kita dapat memilih di antara beberapa tata letak yang telah ditentukan sebelumnya, atau membuat pengaturan khusus. Kita dapat melakukan hal yang sama saat melakukan instalasi otomatis. Tata letak yang telah ditentukan sebelumnya yang tersedia adalah: lvm, direct, dan zfs.

Tata letak lvm adalah default: tata letak ini membuat partisi standar EFI (dalam kasus sistem UEFI modern) dan boot, dan menginstal sisa sistem pada volume logis LVM. Ukuran volume logis root ditentukan menurut kebijakan: ketika diatur ke “scaled” (default), jumlah ruang yang dialokasikan ke volume logis tergantung pada ukuran grup volume. Bila memungkinkan, beberapa ruang dibiarkan tidak digunakan, untuk memungkinkan pembuatan snapshot:

Ukuran Grup VolumeUkuran LV Root
Kurang dari 10 GiB100% dari ruang yang tersedia
Antara 10 GiB dan 20 GiB10 GiB
Antara 20 GiB dan 200 GiB50% dari ruang yang tersedia
Lebih dari 200 GiB100 GiB

drive_spreadsheetExport to Sheets

Ketika kebijakan diatur ke “all”, sebaliknya, semua ruang yang tersedia dialokasikan ke volume logis root. Dalam konteks ini, key password dapat digunakan untuk mengaktifkan enkripsi LUKS, dan untuk memberikan kata sandi enkripsi:

YAML

#cloud-config
autoinstall:
  storage:
    layout:
      name: lvm
      policy: all
      password: mysecretpassword

Use code with caution.content_copy

Tata letak direct menginstal Ubuntu pada partisi standar. Pada sistem UEFI, tata letak ini membuat partisi EFI dengan ukuran 1 GiB, dan mengalokasikan sisa ruang ke partisi root.

Terakhir, tata letak zfs menginstal sistem pada kumpulan ZFS, membuat beberapa volume. Di bawah ini Anda dapat melihat tangkapan layar pengaturan zfs setelah instalasi Ubuntu baru:

Memilih Disk untuk Instalasi

Selain tata letak partisi, kita dapat secara eksplisit mengatur disk mana yang akan digunakan untuk instalasi. Kita melakukan ini melalui key match. Kita dapat memilih disk berdasarkan jalur, vendor, model, serial, dan lainnya. Jika kata kunci dihilangkan, instalasi terjadi pada disk terbesar yang tersedia. Dalam contoh di bawah ini, kita memilih disk berdasarkan jalur (/dev/vda):

YAML

#cloud-config
autoinstall:
  storage:
    layout:
      name: lvm
      match:
        path: /dev/vda

Use code with caution.content_copy

Membuat Tata Letak Kustom

Untuk mendefinisikan tata letak partisi kustom, kita menggunakan kata kunci config. Kata kunci ini menerima daftar pemetaan sebagai nilai, masing-masing menggambarkan perintah dari installer curtin.

Memilih Disk untuk Instalasi

Selain tata letak partisi, kita dapat secara eksplisit mengatur disk mana yang akan digunakan untuk instalasi. Kita melakukan ini melalui key match. Kita dapat memilih disk berdasarkan jalur, vendor, model, serial, dan lainnya. Jika kata kunci dihilangkan, instalasi terjadi pada disk terbesar yang tersedia. Dalam contoh di bawah ini, kita memilih disk berdasarkan jalur (/dev/vda):

YAML

#cloud-config
autoinstall:
  storage:
    layout:
      name: lvm
      match:
        path: /dev/vda

Use code with caution.content_copy

Membuat Tata Letak Kustom

Untuk mendefinisikan tata letak partisi kustom, kita menggunakan kata kunci config. Kata kunci ini menerima daftar pemetaan sebagai nilai, masing-masing menggambarkan perintah dari installer curtin. Mari kita lihat contoh. Misalkan kita ingin menginstal Ubuntu pada pengaturan LVM LUKS, dengan membuat partisi berikut:

  • Sebuah partisi EFI kecil 600 MiB, diformat dalam fat32, untuk dipasang di /boot/efi
  • Partisi boot 1 GiB, diformat dalam ext4 untuk dipasang di /boot
  • Partisi ketiga yang membentang di sisa ruang, dienkripsi dengan LUKS, dan digunakan sebagai volume fisik LVM
  • Satu volume logis LVM 45 GiB untuk dipasang di /
  • Satu volume logis LVM 50 GiB untuk dipasang di /home

Berikut adalah cara kita melakukannya. Hal pertama yang perlu kita lakukan adalah menggunakan perintah disk. Ini digunakan untuk menyiapkan disk, dan membuat tabel partisi:

YAML

#cloud-config
autoinstall:
  storage:
    config:
      - id: disk-vda
        type: disk
        ptable: gpt
        path: /dev/vda
        wipe: superblock-recursive

Use code with caution.content_copy

Dengan kata kunci id, kita memberikan pengenal untuk bagian dan perintah: ini memungkinkan kita untuk mereferensikan disk saat menggunakan perintah lain. Dengan kata kunci type, sebaliknya, kita menentukan perintah yang ingin kita jalankan, yang dalam hal ini adalah “disk”.

Ketika key ptable hadir, tabel partisi tipe yang ditentukan dibuat pada disk. Dalam hal ini kita menggunakan “gpt” sebagai nilainya. Kata kunci path digunakan untuk mengidentifikasi disk berdasarkan jalurnya (/dev/vda).

Kata kunci wipe sangat penting: saat digunakan, ini menghancurkan konten disk atau partisi. Ada banyak jenis “wipe” yang dapat kita gunakan: superblock, superblock-recursive, zero, random, dan pvremove. Kita menggunakan superblock ketika kita ingin menghapus hanya superblock disk, dan superblock-recursive ketika kita ingin menghapus juga eventual embed superblock (mereka mungkin ada saat menggunakan LVM, misalnya). Menggunakan wipe zero atau random, kita dapat menimpa disk dengan nol atau data acak, masing-masing. Terakhir, pvremove secara khusus menghapus metadata LVM untuk memastikan disk bukan bagian dari pengaturan LVM. Dalam contoh di atas, kita menggunakan superblock-recursive, yang seharusnya cukup dalam banyak kasus.

Membuat Partisi Standar dengan Perintah “partition”

Sekarang kita perlu membuat tiga partisi “standar” pada disk. Yang pertama adalah partisi EFI, yang kedua adalah partisi yang akan dipasang di /boot, dan yang ketiga adalah partisi yang akan dienkripsi dengan LUKS, dan digunakan sebagai volume fisik LVM. Untuk membuat partisi, kita menggunakan perintah partition. Dalam contoh di bawah ini, demi kejelasan, kita fokus pada perintah saat ini, menghilangkan perintah yang kita gunakan sebelumnya:

YAML

#cloud-config
autoinstall:
  storage:
    config:
      # [...]

      - id: efipart
        type: partition
        device: disk-vda
        offset: 1048576
        size: 600M
        flag: boot
        grub_device: true

      - id: bootpart
        type: partition
        device: disk-vda
        size: 1G

      - id: pvpart
        type: partition
        device: disk-vda
        size: -1

Use code with caution.content_copy

Karena partisi “efipart” adalah yang pertama, kita menggunakan kata kunci offset untuk memastikan dibuat pada 1MiB dari awal disk (nilainya diberikan dalam byte: 1048576). Kita menggunakan kata kunci flag untuk menentukan flag yang akan disetel pada partisi, “boot” dalam hal ini. Terakhir, kita menggunakan kata kunci grub_device untuk memastikan GRUB diinstal pada partisi.

Dalam semua definisi,tunesharemore_vert

Terbaru

  • Inilah Syarat dan Cara Pendaftaran IMEI Internasional Mulai Mei 2026
  • Bocoran Spek Samsung Galaxy S27 Ultra Nih, Kamera 3X Hilang + Teknologi AI
  • Inilah Perbedaan Motorola G47 dan Motorola G45, Cuma Kamera 108 Megapiksel Doang?
  • Update Baru Google Gemini: Bisa Bikin File Word, PDF, Excel secara Otomatis
  • Rekomendasi Motor Listrik 2026 Anti Mogok!
  • Ini Loh Honda Vision 110, Motor Baru Seharga Beat & Rangka eSAF Khusus Pasar Eropa
  • Inilah Mobil-Mobil Paling Cocok Transisi ke Bioetanol E20 dan Biodiesel B50!
  • Inilah Ternyata Batas Minimal Daya Cas Mobil Listrik di Rumah
  • DJP Geser Batas Akhir Lapor Pajak Sampai 31 Mei 2026
  • PKB Tanggapi Dingin Usul Yusril Ihza Mahendra Soal Parliamentary Treshold 13 Kursi
  • LPTNU Kritik Keras Rencana Penutupan Prodi: Kenapa Tidak Komprehensi & Berbasis Problematika Nyata?
  • Gus Rozin PWNU Jawa Tengah Setuju Cak Imin, Konflik PBNU bikin Warga Kesal dan Tidak Produktif
  • Pengamat: Prabowo Harus Benahi KAI, Aktifkan juga Jalur Kereta Lama & Baru
  • Sekjend PBNU: Jadwal Muktamar Usulan PWNU Sejalan Hasil Rapat Pleno & Rais Aam
  • PKB Desak Hukuman Maksimal Kasus Little Aresha & Evaluasi Total Sistem Penitipan Anak secara Nasional
  • PKB Usul Modernisasi Sistem Kereta dan CCTV di Kabin Masinis, Setuju?
  • Menteri PPA Arifah Fauzi Minta Maaf Soal Polemik Pindah Gerbong Wanita di KRL
  • Cara Kirim Robux Mudah di Roblox Beli Skin Shirt Preview
  • Kronologi kasus dugaan penyebaran konten asusila oleh anak anggota DPRD Kutai Barat?
  • Inilah Alasan Kenapa Gelembung Air di Luar Angkasa Bisa Jadi Eksperimen Fisika yang Keren Banget
  • Inilah Contoh Naskah Doa Upacara Hardiknas 2026 yang Syahdu dan Penuh Makna
  • Inilah 10 Peringkat SMP di Daerah Istimewa Yogyakarta Berdasarkan Hasil TKA TKAD 2025/2026 Terbaru
  • Inilah Cara Download FF Beta Versi Terbaru 2026, Lengkap Dengan Cara Daftar Advanced Server Resmi
  • Inilah Cara Menghilangkan YouTube Shorts di Beranda Biar Nggak Menghambat Scrolling Kalian!
  • Inilah Kabar Gembira Program Magang Nasional 2026, Kuota Naik Drastis Jadi 150 Ribu Peserta!
  • Inilah House of Amartha: Mengenal Bisnis Thariq Halilintar di Balik Pernikahan Mewah El Rumi dan Syifa Hadju
  • Inilah Cara Kuliah S1-S2-S3 Gratis dan Cepat Lewat Beasiswa BIB Kemenag Jalur Akselerasi 2026
  • Inilah Aturan Baru Penugasan Guru Non-ASN 2026, Nasib Kalian Ditentukan Sampai Tanggal Ini!
  • Inilah Cara Daftar Pra SPMB Banten 2026 Biar Proses Masuk Sekolah Jadi Makin Lancar
  • Inilah Rincian Biaya Jalur Mandiri Untirta 2026 Lengkap Per Fakultas dan Program Studi
  • How to Build Ultra-Resilient Databases with Amazon Aurora Global Database and RDS Proxy for Maximum Uptime and Performance
  • How to Build Real-Time Personalization Systems Using AWS Agentic AI to Make Every User Feel Special
  • How to Transform Your Windows 11 Interface into a Sleek and Modern Aesthetic Masterpiece
  • How to Understand Google’s New TPU 8 Series for Massive AI Training and Inference
  • How to Level Up Your PC Gaming Experience with the New Valve Steam Controller and Its Advanced Features
  • How to build a smart voice agent with the AssemblyAI Voice Agent API and Universal-3 Pro for high-accuracy conversations
  • How to create Cinematic AI Kungfu Movie using Flower.ai and SeaDance 2.0
  • How to Build a Professional Headless Shopify Store from Scratch with the New Shopify AI Toolkit and Claude Code
  • How to Use Nvidia Nemotron-3 Nano Omni for Advanced Multimodal AI Reasoning
  • How to use Google Gemini Deep Research to automate professional analysis and save hours of work every week
  • Apa itu Spear-Phishing via npm? Ini Pengertian dan Cara Kerjanya yang Makin Licin
  • Apa Itu Predator Spyware? Ini Pengertian dan Kontroversi Penghapusan Sanksinya
  • Mengenal Apa itu TONESHELL: Backdoor Berbahaya dari Kelompok Mustang Panda
  • Siapa itu Kelompok Hacker Silver Fox?
  • Apa itu CVE-2025-52691 SmarterMail? Celah Keamanan Paling Berbahaya Tahun 2025

©2026 emka.web.id | Design: Newspaperly WordPress Theme