Penyediaan Fedora CoreOS di IBM Cloud

Panduan ini menunjukkan cara menyediakan instance Fedora CoreOS (FCOS) baru di IBM Cloud untuk arsitektur x86_64 atau s390x.

FCOS tidak mendukung IBM Cloud Classic Infrastructure.

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.

Jika Anda tidak ingin menggunakan Ignition untuk memulai, Anda dapat memanfaatkan dukungan Afterburn.

Anda juga perlu memiliki akses ke akun IBM Cloud. Contoh di bawah ini menggunakan alat baris perintah ibmcloud, yang harus diinstal dan dikonfigurasi terlebih dahulu. Ikuti petunjuk di [https://cloud.ibm.com/docs/cli?topic=cli-install-ibmcloud-cli](https://cloud.ibm.com/docs/cli?topic=cli-install-ibmcloud-cli) untuk menginstal ibmcloud CLI. Anda juga perlu menginstal plugin cloud-object-storage dan infrastructure-service. Ini dapat dilakukan dengan:

  • ibmcloud plugin install cloud-object-storage

  • ibmcloud plugin install infrastructure-service

Setelah Anda masuk menggunakan ibmcloud login, Anda dapat menetapkan wilayah target:

Menetapkan wilayah tertentu
REGION='us-east' # jalankan `ibmcloud regions` untuk melihat opsi
ibmcloud target -r $REGION
Menetapkan grup sumber daya tertentu
RESOURCE_GROUP='my-resource-group'
ibmcloud resource group-create $RESOURCE_GROUP # Buat grup sumber daya jika belum ada
ibmcloud target -g $RESOURCE_GROUP

Ada juga beberapa komponen lain yang perlu disiapkan, seperti VPC, kunci SSH, jaringan, izin, dan sebagainya. Sayangnya, panduan ini bukan panduan lengkap untuk IBM Cloud. Jika Anda baru menggunakan IBM Cloud, silakan pelajari terlebih dahulu dokumentasi jaringan VPC IBM Cloud.

Membuat Gambar (Image)

Serangkaian perintah berikut menunjukkan cara mengunduh gambar terbaru untuk sebuah stream, mengunggahnya ke penyimpanan cloud, lalu membuat gambar cloud di IBM Cloud. Perlu dicatat bahwa Fedora CoreOS memiliki tiga stream dengan jadwal pembaruan yang berbeda untuk masing-masingnya. Langkah-langkah ini menunjukkan stable stream sebagai contoh, tetapi juga dapat digunakan untuk stream lainnya.

Ambil citra terbaru yang sesuai dengan stream target Anda (atau unduh dan verifikasi dari web).
STREAM='stable'
ARCH='x86_64' # atau 's390x'
coreos-installer download -s $STREAM -a $ARCH -p ibmcloud -f qcow2.xz --decompress
Buat akun layanan untuk mengunggah dan kebijakan otorisasi untuk mengizinkan pembuatan gambar dari objek yang diunggah.
BUCKET='my-unique-bucket'
ibmcloud resource service-instance-create "${BUCKET}-service-instance" cloud-object-storage standard global

SERVICE_INSTANCE_ID='25df0db0-89a4-4cb8-900f-ed8b44259f80' # dari akun layanan yang baru dibuat
ibmcloud iam authorization-policy-create is --source-resource-type image cloud-object-storage Reader --target-service-instance-id $SERVICE_INSTANCE_ID
Unggah berkas gambar yang telah diunduh ke IBM Cloud Object Storage.
FCOS_VERSION='...'
FILE="fedora-coreos-${FCOS_VERSION}-ibmcloud.${ARCH}.qcow2"
ibmcloud cos create-bucket --bucket $BUCKET --ibm-service-instance-id $SERVICE_INSTANCE_ID
ibmcloud cos upload --bucket=$BUCKET --key="${FILE}" --file="${FILE}"
Buat gambar dari objek penyimpanan.
IMAGE=${FILE:0:-6}     # hapus .qcow2
IMAGE=${IMAGE//[._]/-} # ganti . dan _ dengan -
[ $ARCH == 'x86_64' ] && OSNAME='fedora-coreos-stable-amd64'
[ $ARCH == 's390x' ] && OSNAME='red-8-s390x-byol'
ibmcloud is image-create "${IMAGE}" --file "cos://${REGION}/${BUCKET}/${FILE}" --os-name $OSNAME
Untuk s390x, gunakan --os-name=red-8-s390x-byol (profil RHEL 8) karena saat ini belum tersedia profil fedora-coreos-stable-s390x.

Anda harus menunggu hingga proses pembuatan gambar selesai dan berubah status dari pending menjadi available sebelum dapat digunakan. Pantau dengan perintah berikut:

Pantau kemajuan pembuatan gambar dengan melihat daftar gambar di akun Anda.
ibmcloud is images --visibility private --status pending,available

Menjalankan instance VM

Sekarang setelah Anda memiliki gambar yang dibuat di akun Anda, Anda dapat meluncurkan instance VM. Anda harus menentukan beberapa parameter dalam perintah tersebut. Di dalam contoh di bawah ini terdapat petunjuk cara mendapatkan informasi tersebut sebelum membuat instance.

Anda juga memerlukan konfigurasi Ignition yang telah Anda buat sebelumnya. Dalam contoh perintah ini, konfigurasi tersebut direpresentasikan sebagai @example.ign, yang menunjukkan sebuah berkas di direktori saat ini bernama example.ign. Simbol @ wajib ditambahkan sebelum path ke berkas Ignition.

Menjalankan instance VM
INSTANCE_NAME='instance1'
ZONE="${REGION}-1" # lihat lebih banyak dengan `ibmcloud is zones`
PROFILE='bx2-2x8' # lihat lebih banyak dengan `ibmcloud is instance-profiles`
VPC='r014-c9c65cc4-cfd3-44de-ad54-865aac182ea1'    # `ibmcloud is vpcs`
IMAGE='r014-1823b4cf-9c63-499e-8a27-b771be714ad8'  # `ibmcloud is images --visibility private`
SUBNET='0777-bf99cbf4-bc82-4c46-895a-5b7304201182' # `ibmcloud is subnets`
SSHKEY='r014-b44c37d0-5c21-4c2b-aba2-438a5b0a228d' # `ibmcloud is keys`
ibmcloud is instance-create $INSTANCE_NAME $VPC $ZONE $PROFILE $SUBNET \
   --allow-ip-spoofing=true --image $IMAGE --keys $SSHKEY --user-data @example.ign
Jika diperlukan, Anda mungkin harus membuat subnet terlebih dahulu dengan perintah seperti ibmcloud is subnet-create my-subnet $VPC --ipv4-address-count 256 --zone $ZONE.
Pastikan Anda memilih tipe instance yang sesuai berdasarkan arsitektur Anda. Misalnya, Anda dapat menggunakan bz2-2x8 alih-alih bx2-2x8 jika Anda menargetkan s390x.

Selanjutnya, jika Anda ingin melakukan SSH ke instance dari luar IBM Cloud, Anda dapat menetapkan IP publik ke instance tersebut:

Membuat dan Menetapkan Floating IP
FIP_NAME='floating-ip-1'
ibmcloud is floating-ip-reserve $FIP_NAME --zone=$ZONE
VNIC=$(ibmcloud is instance $INSTANCE_NAME --output json |
       jq --raw-output .primary_network_attachment.virtual_network_interface.id)
ibmcloud is virtual-network-interface-floating-ip-add $VNIC $FIP_NAME

Sekarang Anda seharusnya dapat melakukan SSH ke instance menggunakan alamat IP yang terkait dengan floating IP tersebut.

Contoh Koneksi
ssh core@<ip address>