Menyediakan Fedora CoreOS di Hetzner

Panduan ini menunjukkan cara menyediakan node Fedora CoreOS (FCOS) baru di Hetzner. Saat ini, Fedora CoreOS belum tersedia sebagai opsi dalam pemilihan sistem operasi di Hetzner. Oleh karena itu, Anda harus terlebih dahulu mengunduh citra disk Fedora CoreOS untuk Hetzner, kemudian membuat snapshot dari citra tersebut di akun Hetzner Anda menggunakan alat hcloud-upload-image, dan akhirnya membuat server dari snapshot tersebut.

Dukungan untuk Fedora CoreOS di Hetzner masih dianggap tahap awal, karena belum menawarkan pengalaman pengguna yang optimal dan bergantung pada alat yang belum secara resmi didukung oleh Hetzner. Lihat isu #1324 untuk detail lebih lanjut.
Alat hcloud-upload-image bukan produk resmi Hetzner Cloud dan Hetzner Cloud tidak memberikan dukungan untuk alat ini. Sebagai alternatif, Anda juga dapat menggunakan packer-plugin-hcloud resmi untuk memasang citra melalui coreos-installer.
Untuk membuat snapshot, alat hcloud-upload-image akan menyediakan server kecil dan menjalankannya dalam mode rescue. Karena server ini hanya sementara, biayanya akan sangat terbatas. Snapshot yang dihasilkan dikenai biaya per GB per bulan. Lihat Backups/Snapshots di dokumentasi Hetzner Cloud. Anda dapat menghapus snapshot ini setelah server berhasil disediakan.

Persyaratan

Sebelum menyediakan mesin FCOS, Anda harus memiliki file konfigurasi Ignition yang berisi kustomisasi Anda. Jika belum memilikinya, lihat Producing an Ignition File.

Fedora CoreOS memiliki pengguna bawaan bernama core yang dapat digunakan untuk menjelajahi sistem operasi. Jika Anda ingin menggunakannya, selesaikan konfigurasinya dengan menyediakan, misalnya, kunci SSH.

Jika Anda tidak ingin menggunakan Ignition untuk memulai, Anda dapat memanfaatkan dukungan Afterburn dan hanya mengonfigurasi kunci SSH.

Anda juga perlu memiliki akses ke akun Hetzner. Contoh-contoh di bawah ini menggunakan alat baris perintah hcloud, alat hcloud-upload-image, dan jq sebagai pemroses JSON baris perintah.

Mengunduh citra Hetzner

Fedora CoreOS dirancang untuk diperbarui secara otomatis, dengan jadwal berbeda untuk setiap aliran (stream). Setelah Anda memilih stream yang relevan, unduh dan verifikasi citra Hetzner terbaru:

ARCH="x86_64"    # or "aarch64"
STREAM="stable"  # or "testing", "next"
coreos-installer download -s "$STREAM" -p hetzner -a "$ARCH" -f raw.xz
Arsitektur x86_64 dan aarch64 sama-sama didukung di Hetzner.

Sebagai alternatif, Anda dapat mengunduh citra Hetzner secara manual dari halaman unduhan. Verifikasikan hasil unduhan mengikuti petunjuk pada halaman tersebut.

Membuat snapshot

  1. Gunakan hcloud-upload-image untuk membuat snapshot dari citra ini:

    IMAGE_NAME="fedora-coreos-41.20250213.0-hetzner.x86_64.raw.xz"
    export HCLOUD_TOKEN="<token Anda>"
    STREAM="stable"     # atau "testing", "next"
    HETZNER_ARCH="x86"  # atau "arm"
    
    hcloud-upload-image upload \
        --architecture "$HETZNER_ARCH" \
        --compression xz \
        --image-path "$IMAGE_NAME" \
        --labels os=fedora-coreos,channel="$STREAM" \
        --description "Fedora CoreOS ($STREAM, $ARCH)"
    Alat hcloud-upload-image menggunakan nama berbeda untuk arsitektur (x86_64x86, aarch64arm).
  2. Tunggu hingga proses selesai dan pastikan Anda memiliki snapshot:

    hcloud image list --type=snapshot --selector=os=fedora-coreos

Menjalankan server

  1. Jika Anda belum memiliki kunci SSH yang diunggah ke Hetzner, Anda dapat mengunggahnya terlebih dahulu:

    Contoh mengunggah kunci SSH ke Hetzner
    SSH_PUBKEY="ssh-ed25519 ..."
    SSH_KEY_NAME="fedora-coreos-hetzner"
    hcloud ssh-key create --name "$SSH_KEY_NAME" --public-key "$SSH_PUBKEY"
  2. Jalankan server. Konfigurasi Ignition Anda dapat diberikan ke VM sebagai user data, atau Anda dapat melewatinya jika hanya ingin akses SSH. Ini memberikan cara mudah untuk mencoba FCOS tanpa terlebih dahulu membuat konfigurasi Ignition.

    Contoh menjalankan FCOS di Hetzner menggunakan file konfigurasi Ignition dan kunci SSH
    IMAGE_ID="$(hcloud image list \
        --type=snapshot \
        --selector=os=fedora-coreos \
        --output json \
        | jq -r '.[0].id')"
    SSH_KEY_NAME="fedora-coreos-hetzner"  # See: hcloud ssh-key list
    DATACENTER="fsn1-dc14"                # See: hcloud datacenter list
    TYPE="cx22"                           # See: hcloud server-type list
    NAME="fedora-coreos-test"
    IGNITION_CONFIG="./config.ign"
    hcloud server create \
        --name "$NAME" \
        --type "$TYPE" \
        --datacenter "$DATACENTER" \
        --image "$IMAGE_ID" \
        --ssh-key "$SSH_KEY_NAME" \
        --user-data-from-file "$IGNITION_CONFIG"
    Meskipun dokumentasi dan situs web Hetzner menyebutkan cloud-init dan “cloud config”, FCOS tidak mendukung cloud-init. FCOS hanya menerima file konfigurasi Ignition.
  3. Sekarang Anda seharusnya dapat melakukan SSH ke dalam instance menggunakan alamat IP yang terkait.

    Contoh Koneksi
    ssh core@"$(hcloud server ip "$NAME")"