Mengaktifkan login otomatis dan mengatur nama host kustom
| Pastikan bahwa Anda telah menyelesaikan langkah-langkah yang diuraikan dalam halaman penyiapan awal sebelum memulai tutorial ini. | 
Penyediaan Fedora CoreOS
Fedora CoreOS tidak memiliki disk instalasi yang terpisah. Sebaliknya, setiap instalasinya dimulai dari image disk generik yang dikustomisasi pada boot pertama melalui Ignition.
Berkas konfigurasi Ignition ditulis dalam format JSON, tetapi umumnya tidak ramah pengguna. Konfigurasi tersebut kemudian ditulis dalam format yang lebih sederhana, yaitu Butane config, yang kemudian dikonversi menjadi berkas konfigurasi Ignition. Alat yang bertanggung jawab untuk mengonversi berkas konfigurasi Butane menjadi berkas konfigurasi Ignition disebut Butane.
Konfigurasi Ignition Pertama menggunakan Butana
Mari kita buat konfigurasi Butane kecil yang akan melakukan tindakan berikut:
- 
Tambahkan file dropin systemd untuk mengganti pengaturan default serial-getty@ttyS0.service.
- 
Pengaturan override ini akan membuat layanan secara otomatis masuk ke pengguna corepada konsol serial mesin yang telah di-boot.
- 
Atur nama host sistem dengan menempatkan berkas di /etc/hostname,
- 
Tambahkan profil bash yang memberitahu systemd untuk tidak menggunakan pager untuk output. 
Kita dapat membuat berkas konfigurasi bernama autologin.bu sekarang sebagai berikut:
variant: fcos
version: 1.6.0
systemd:
  units:
    - name: serial-getty@ttyS0.service
      dropins:
      - name: autologin-core.conf
        contents: |
          [Service]
          # Override Execstart in main unit
          ExecStart=
          # Add new Execstart with `-` prefix to ignore failure`
          ExecStart=-/usr/sbin/agetty --autologin core --noclear %I $TERM
storage:
  files:
    - path: /etc/hostname
      mode: 0644
      contents:
        inline: |
          tutorial
    - path: /etc/profile.d/systemd-pager.sh
      mode: 0644
      contents:
        inline: |
          # Tell systemd to not use a pager when printing information
          export SYSTEMD_PAGER=catKonfigurasi ini kemudian dapat dikonversi menjadi konfigurasi Ignition menggunakan Butane:
butane --pretty --strict autologin.bu --output autologin.ignKonfigurasi Ignition yang dihasilkan oleh Butane sebagai autologin.ign memiliki isi sebagai berikut:
{
  "ignition": {
    "version": "3.4.0"
  },
  "storage": {
    "files": [
      {
        "path": "/etc/hostname",
        "contents": {
          "compression": "",
          "source": "data:,tutorial%0A"
        },
        "mode": 420
      },
      {
        "path": "/etc/profile.d/systemd-pager.sh",
        "contents": {
          "compression": "",
          "source": "data:,%23%20Tell%20systemd%20to%20not%20use%20a%20pager%20when%20printing%20information%0Aexport%20SYSTEMD_PAGER%3Dcat%0A"
        },
        "mode": 420
      }
    ]
  },
  "systemd": {
    "units": [
      {
        "dropins": [
          {
            "contents": "[Service]\n# Override Execstart in main unit\nExecStart=\n# Add new Execstart with `-` prefix to ignore failure`\nExecStart=-/usr/sbin/agetty --autologin core --noclear %I $TERM\n",
            "name": "autologin-core.conf"
          }
        ],
        "name": "serial-getty@ttyS0.service"
      }
    ]
  }
}Butane menghasilkan konfigurasi Ignition yang valid. Namun, jika Anda melakukan penyesuaian pada konfigurasi setelah Butane, atau membuat konfigurasi Ignition secara manual, Anda harus memverifikasi bahwa format konfigurasi tersebut valid menggunakan ignition-validate:
ignition-validate autologin.ign && echo 'Success!'Membooting Fedora CoreOS
Sekarang setelah kita memiliki konfigurasi Ignition, kita dapat memulai mesin virtual menggunakan konfigurasi tersebut. Tutorial ini menggunakan gambar QEMU dengan libvirt, tetapi Anda seharusnya dapat menggunakan konfigurasi Ignition yang sama pada semua platform yang didukung oleh Fedora CoreOS.
Kita menggunakan virt-install untuk membuat mesin virtual Fedora CoreOS baru dengan konfigurasi tertentu:
# Atur label SELinux yang benar untuk mengizinkan akses ke config
chcon --verbose --type svirt_home_t autologin.ign
# Mulai mesin virtual Fedora CoreOS
virt-install --name=fcos --vcpus=2 --ram=2048 --os-variant=fedora-coreos-stable \
    --import --network=bridge=virbr0 --graphics=none \
    --qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=${PWD}/autologin.ign" \
    --disk="size=20,backing_store=${PWD}/fedora-coreos.qcow2"Perintah virt-install akan memulai instance bernama fcos dari gambar fedora-coreos.qcow2 menggunakan konfigurasi Ignition autologin.ign. Perintah ini akan secara otomatis menghubungkan konsol serial mesin sehingga Anda dapat melihat pesan booting gambar tersebut.
Kita menggunakan opsi backing_store pada perintah virt-install --disk untuk dengan cepat membuat gambar disk baru dan menghindari penulisan ke gambar asli yang telah kita unduh. Gambar disk baru ini dapat dengan mudah dihapus.
| Tergantung pada versi virt-installyang Anda gunakan, Anda mungkin tidak dapat menggunakan opsi--os-variant=fedora-coreos-stabledan akan mendapatkan pesan kesalahan. Dalam hal ini, Anda sebaiknya memilih varian Fedora yang lebih lama (misalnya--os-variant=fedora31). Anda dapat menemukan varian yang didukung oleh versivirt-installAnda saat ini dengan perintahosinfo-query os | grep '^\s*fedora'. | 
Setelah mesin dinyalakan, Anda akan melihat beberapa prompt, lalu Anda akan secara otomatis masuk dan disajikan dengan shell bash:
Fedora CoreOS 38.20230709.3.0 Kernel 6.3.11-200.fc38.x86_64 on an x86_64 (ttyS0) SSH host key: SHA256:Eq0GiuflXh/3E+9h689DV4K2C0VQZ5UsXXfbJ7nB4rw (ECDSA) SSH host key: SHA256:53uunBzHa2kfCO20q8h4cFeM19QRSscwUWUPoL4BP+4 (ED25519) SSH host key: SHA256:HXrypq4OjKQ267RPhpptulMMYwsnrVWW3PYuvkIyt3k (RSA) Ignition: ran on 2023/08/03 15:59:14 UTC (this boot) Ignition: user-provided config was applied No SSH authorized keys provided by Ignition or Afterburn tutorial login: core (automatic login) Fedora CoreOS 38.20230709.3.0 [core@tutorial ~]$
Mari kita verifikasi bahwa konfigurasi telah diterapkan dengan benar. Karena kita telah masuk secara otomatis ke terminal, kita dapat dengan aman mengasumsikan bahwa berkas dropin systemd telah dibuat:
[core@tutorial ~]$ systemctl cat serial-getty@ttyS0.service
# /usr/lib/systemd/system/serial-getty@.service
...
# /etc/systemd/system/serial-getty@ttyS0.service.d/autologin-core.conf
[Service]
# Override Execstart in main unit
ExecStart=
# Add new Execstart with `-` prefix to ignore failure`
ExecStart=-/usr/sbin/agetty --autologin core --noclear %I $TERMKita juga dapat memeriksa apakah nama host telah diatur dengan benar:
[core@tutorial ~]$ cat /etc/hostname
tutorial
[core@tutorial ~]$ hostnamectl
     Static hostname: tutorial
           Icon name: computer-vm
             Chassis: vm π΄
          Machine ID: fc4c5d5a14a741babe20559a25dcb846
             Boot ID: 22ed3b3c049d42968fb6ca9e35c8055d
      Virtualization: kvm
    Operating System: Fedora CoreOS 38.20230709.3.0
         CPE OS Name: cpe:/o:fedoraproject:fedora:38
      OS Support End: Tue 2024-05-14
OS Support Remaining: 9month 1w 3d
              Kernel: Linux 6.3.11-200.fc38.x86_64
        Architecture: x86-64
     Hardware Vendor: QEMU
      Hardware Model: Standard PC _Q35 + ICH9, 2009_
    Firmware Version: 1.16.2-1.fc38
       Firmware Date: Tue 2014-04-01
Menjelajahi bagian dalam Fedora CoreOS
Setelah kita memiliki akses ke konsol mesin, kita dapat menjelajahi sistem operasi untuk melihat beberapa komponennya. Misalnya, meskipun ini adalah sistem berbasis OSTree, sistem ini tetap dibangun menggunakan RPM, dan kita dapat memeriksa sistem untuk melihat komponen apa saja yang membentuknya:
[core@tutorial ~]$ rpm -q ignition kernel moby-engine podman systemd rpm-ostree zincati ignition-2.15.0-3.fc38.x86_64 kernel-6.3.11-200.fc38.x86_64 moby-engine-20.10.23-1.fc38.x86_64 podman-4.5.1-1.fc38.x86_64 systemd-253.4-1.fc38.x86_64 rpm-ostree-2023.5-1.fc38.x86_64 zincati-0.0.25-4.fc38.x86_64
Kita juga dapat memeriksa versi terbaru Fedora CoreOS:
[core@tutorial ~]$ rpm-ostree status
State: idle
AutomaticUpdatesDriver: Zincati
  DriverState: active; periodically polling for updates (last checked Thu 2023-08-03 15:59:23 UTC)
Deployments:
β fedora:fedora/x86_64/coreos/stable
                  Version: 38.20230709.3.0 (2023-07-24T12:25:01Z)
                   Commit: 552de26fe0fe6a5e491f7a4163db125e3d44b144ae53a8f5f488e3f8481c46f9
             GPGSignature: Valid signature by 6A51BBABBA3D5467B6171221809A8D7CEB10B464
Dan periksa zincati.service, yang berkomunikasi dengan server pembaruan kita dan memberitahu rpm-ostree kapan harus melakukan pembaruan dan ke versi mana pembaruan tersebut harus dilakukan:
[core@tutorial ~]$ systemctl status --full zincati.service
β zincati.service - Zincati Update Agent
     Loaded: loaded (/usr/lib/systemd/system/zincati.service; enabled; preset: enabled)
    Drop-In: /usr/lib/systemd/system/service.d
             ββ10-timeout-abort.conf
     Active: active (running) since Thu 2023-08-03 16:06:39 UTC; 18s ago
       Docs: https://github.com/coreos/zincati
   Main PID: 1843 (zincati)
     Status: "periodically polling for updates (last checked Thu 2023-08-03 16:06:39 UTC)"
      Tasks: 6 (limit: 2238)
     Memory: 2.8M
        CPU: 257ms
     CGroup: /system.slice/zincati.service
             ββ1843 /usr/libexec/zincati agent -v
Aug 03 16:06:39 tutorial systemd[1]: Starting zincati.service - Zincati Update Agent...
Aug 03 16:06:39 tutorial zincati[1843]: [INFO  zincati::cli::agent] starting update agent (zincati 0.0.25)
Aug 03 16:06:39 tutorial zincati[1843]: [INFO  zincati::cincinnati] Cincinnati service: https://updates.coreos.fedoraproject.org
Aug 03 16:06:39 tutorial zincati[1843]: [INFO  zincati::cli::agent] agent running on node '8fb5386cba574235a21ad3b2d59885d9', in update group 'default'
Aug 03 16:06:39 tutorial zincati[1843]: [INFO  zincati::update_agent::actor] registering as the update driver for rpm-ostree
Aug 03 16:06:39 tutorial zincati[1843]: [INFO  zincati::update_agent::actor] initialization complete, auto-updates logic enabled
Aug 03 16:06:39 tutorial zincati[1843]: [INFO  zincati::strategy] update strategy: immediate
Aug 03 16:06:39 tutorial systemd[1]: Started zincati.service - Zincati Update Agent.
Aug 03 16:06:39 tutorial zincati[1843]: [INFO  zincati::update_agent::actor] reached steady state, periodically polling for updates
Aug 03 16:06:41 tutorial zincati[1843]: [INFO  zincati::cincinnati] current release detected as not a dead-end
Hal menarik lainnya yang bisa dilakukan adalah memeriksa log dari Ignition, jikalau ada hal menarik di sana yang mungkin ingin kita selidiki:
journalctl -t ignition
Dan terakhir, tentu saja kita dapat menggunakan perintah podman (atau docker) untuk memeriksa status saat ini dari kontainer di sistem:
podman version podman info
| Perintah podmandapat dijalankan sebagai pengguna root atau pengguna non-root. Perintahdockerharus dijalankan sebagai root melaluisudokecuali pengguna telah ditambahkan ke grupdocker. | 
| Menjalankan kontainer menggunakan dockerdanpodmansecara bersamaan dapat menyebabkan masalah dan mengakibatkan perilaku yang tidak terduga. Lihat entri FAQ untuk detail lebih lanjut. | 
| Daemon Docker tidak dijalankan secara default, tetapi menjalankan perintah dockerapa pun akan memulainya karena daemon ini diaktifkan melalui soket menggunakan systemd. | 
Menonaktifkan Mesin Virtual
Mari kita hapus mesin virtual tersebut agar kita bisa memulai dari awal lagi. Pertama, keluar dari konsol serial dengan menekan CTRL + ], lalu ketik:
virsh destroy fcos virsh undefine --remove-all-storage fcos
Anda dapat melanjutkan dengan tutorial kedua.
Want to help? Learn how to contribute to Fedora Docs βΊ