Penyediaan Fedora CoreOS di libvirt

Panduan ini menunjukkan cara menyediakan instance Fedora CoreOS (FCOS) baru di platform [libvirt](https://libvirt.org/), menggunakan hypervisor [QEMU](https://www.qemu.org/).

Persyaratan

Sebelum menyediakan mesin FCOS, Anda harus memiliki file konfigurasi Ignition yang berisi kustomisasi Anda. Jika belum memilikinya, lihat [Producing an Ignition File](xref:producing-ign.adoc).

Fedora CoreOS memiliki pengguna bawaan bernama core yang dapat digunakan untuk menjelajahi sistem operasi. Jika Anda ingin menggunakannya, selesaikan [konfigurasinya](xref:authentication.adoc) dengan menambahkan, misalnya, kunci SSH.

Anda juga perlu memiliki akses ke mesin host dengan libvirt. Contoh di bawah ini menggunakan alat baris perintah virt-install, yang harus diinstal terlebih dahulu secara terpisah.

Jika dijalankan pada host dengan SELinux yang diaktifkan (gunakan perintah sestatus untuk memeriksa status SELinux), pastikan citra OS dan berkas Ignition Anda diberi label sebagai svirt_home_t. Anda dapat melakukannya dengan menempatkannya di bawah ~/.local/share/libvirt/images/ atau menjalankan chcon -t svirt_home_t /path/to/file.

Menjalankan instance VM

  1. Ambil image terbaru yang sesuai untuk platform qemu menggunakan coreos-installer (atau unduh dan verifikasi dari web). Anda dapat menggunakan coreos-installer sebagai kontainer, atau pada Fedora menginstalnya dari repositori.

    STREAM="stable"
    # sebagai biner yang diinstal:
    coreos-installer download -s $STREAM -p qemu -f qcow2.xz --decompress -C ~/.local/share/libvirt/images/
    # atau sebagai kontainer:
    podman run --pull=always --rm -v "${HOME}/.local/share/libvirt/images/:/data" -w /data \
        quay.io/coreos/coreos-installer:release download -s $STREAM -p qemu -f qcow2.xz --decompress
  2. Jalankan mesin baru melalui virt-install, menggunakan berkas Ignition dengan kustomisasi Anda.

    IGNITION_CONFIG="/path/to/example.ign"
    IMAGE="/path/to/image.qcow2"
    VM_NAME="fcos-test-01"
    VCPUS="2"
    RAM_MB="2048"
    STREAM="stable"
    DISK_GB="10"
    # Untuk x86 / aarch64,
    IGNITION_DEVICE_ARG=(--qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=${IGNITION_CONFIG}")
    
    # Untuk s390x / ppc64le,
    IGNITION_DEVICE_ARG=(--disk path="${IGNITION_CONFIG}",format=raw,readonly=on,serial=ignition,startup_policy=optional)
    
    # Atur label SELinux yang benar untuk mengizinkan akses ke konfigurasi
    chcon --verbose --type svirt_home_t ${IGNITION_CONFIG}
    
    virt-install --connect="qemu:///system" --name="${VM_NAME}" --vcpus="${VCPUS}" --memory="${RAM_MB}" \
            --os-variant="fedora-coreos-$STREAM" --import --graphics=none \
            --disk="size=${DISK_GB},backing_store=${IMAGE}" \
            --network bridge=virbr0 "${IGNITION_DEVICE_ARG[@]}"
virt-install memerlukan baik image OS maupun berkas Ignition ditentukan menggunakan jalur absolut.
Bergantung pada versi virt-install Anda, Anda mungkin tidak dapat menggunakan --os-variant=fedora-coreos-* dan akan mendapatkan galat. Dalam kasus ini, Anda harus memilih varian Fedora yang lebih lama (misalnya --os-variant=fedora31). Anda dapat menemukan varian yang didukung oleh versi virt-install Anda dengan menjalankan osinfo-query os | grep '^\s*fedora'.
DISK_GB harus minimal sebesar ukuran bawaan image. Untuk Fedora CoreOS, saat ini ukurannya adalah 10 GB.
Pastikan pengguna Anda memiliki akses ke /dev/kvm. Secara bawaan akses ini diizinkan untuk semua orang, tetapi pada beberapa distribusi Anda mungkin perlu menambahkan diri Anda ke grup kvm.
Anda dapat keluar dari konsol serial dengan menekan CTRL + ].

Jika Anda menyiapkan kunci SSH untuk pengguna core default, Anda dapat melakukan SSH ke dalam VM dan menjelajahi OS:

ssh core@<ip address>