Skip to content

emka.web.id

Menu
  • Home
  • Indeks Artikel
  • Tutorial
  • Tentang Kami
Menu

Tutorial Membuat Install Ubuntu jadi unattended

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

Artikel Diperbarui pada: May 22, 2024
Kontributor: Syauqi Wiryahasana
Model: Haifa Manik Intani
Seedbacklink

Recent Posts

TENTANG EMKA.WEB>ID

EMKA.WEB.ID adalah blog seputar teknologi informasi, edukasi dan ke-NU-an yang hadir sejak tahun 2011. Kontak: kontak@emka.web.id.

©2024 emka.web.id Proudly powered by wpStatically