Menyediakan Fedora CoreOS di Azure
Panduan ini menunjukkan cara menyediakan node Fedora CoreOS (FCOS) baru di Azure. Saat ini, Fedora tidak memublikasikan citra Fedora CoreOS di dalam Azure, jadi Anda harus mengunduh citra Azure dari Fedora dan mengunggahnya ke langganan Azure Anda.
| FCOS tidak mendukung mesin virtual Azure Service Manager lama. |
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 langganan Azure. Contoh di bawah ini menggunakan Azure CLI.
Mengunduh citra Azure
Fedora CoreOS dirancang untuk diperbarui secara otomatis, dengan jadwal yang berbeda untuk setiap aliran (stream). Setelah Anda memilih aliran yang sesuai, unduh, verifikasi, dan dekompres citra Azure terbaru:
STREAM="stable"
coreos-installer download --decompress -s $STREAM -p azure -f vhd.xz
Sebagai alternatif, Anda dapat mengunduh citra Azure secara manual dari halaman unduhan. Verifikasikan hasil unduhan tersebut dengan mengikuti petunjuk pada halaman tersebut, lalu lakukan dekompresi.
Mengunggah citra ke Azure
-
Buat sumber daya apa pun yang belum ada di akun Azure Anda:
Contoh membuat sumber daya Azureaz_region="westus2" az_resource_group="my-group" az_storage_account="mystorageacct" az_container="my-container" # Create resource group az group create -l "${az_region}" -n "${az_resource_group}" # Create storage account for uploading FCOS image az storage account create -g "${az_resource_group}" -n "${az_storage_account}" # Retrieve connection string for storage account cs=$(az storage account show-connection-string -n "${az_storage_account}" -g "${az_resource_group}" | jq -r .connectionString) # Create storage container for uploading FCOS image az storage container create --connection-string "${cs}" -n "${az_container}" -
Buat citra FCOS:
Contoh membuat citra Azuredownloaded_image_file="./image.vhd" az_image_name="my-fcos-image" az_image_blob="${az_image_name}.vhd" # Upload image blob az storage blob upload --connection-string "${cs}" -c "${az_container}" -f "${downloaded_image_file}" -n "${az_image_blob}" # Create the image az image create -n "${az_image_name}" -g "${az_resource_group}" --source "https://${az_storage_account}.blob.core.windows.net/${az_container}/${az_image_blob}" --location "${az_region}" --os-type Linux # Delete the uploaded blob az storage blob delete --connection-string "$cs" -c "${az_container}" -n "${az_image_blob}"
Meluncurkan instans VM menggunakan custom-data
-
Luncurkan VM. Konfigurasi Ignition Anda dapat diteruskan ke VM sebagai custom data, atau Anda dapat melewatinya jika hanya ingin akses SSH. Kunci publik SSH Anda dari
~/.sshakan secara otomatis ditambahkan ke VM. Ini memberikan cara mudah untuk mencoba FCOS tanpa membuat konfigurasi Ignition terlebih dahulu.Contoh meluncurkan citra Azureaz_vm_name="my-fcos-vm" ignition_path="./config.ign" az vm create -n "${az_vm_name}" -g "${az_resource_group}" --image "${az_image_name}" --admin-username core --custom-data "$(cat ${ignition_path})" -
Sekarang Anda seharusnya dapat melakukan SSH ke dalam instance menggunakan alamat IP yang terkait.
Contoh Koneksissh core@<ip address>
Meluncurkan instans VM menggunakan custom-data dan blob Azure privat
-
Tentukan variabel untuk nama VM dan konfigurasi Ignition:
Tentukan variabel Andaaz_vm_name=my-fcos-vm ignition_path="./config.ign" az_blob_ignition_path=./privateConfig.ign az_blob_ignition_file_name=privateConfig.ignUnggah berkas ign Anda ke penyimpanan blob Azureaz storage blob upload --connection-string "${cs}" -c "${az_blob_ignition_file_name}" -f "${az_blob_ignition_path}" -n "${ignition_file_name}" -
Buat konfigurasi Ignition jarak jauh Anda untuk merujuk ke blob baru ini. Baca lebih lanjut tentang hal itu di Menggunakan konfigurasi Ignition jarak jauh
Kolom source harus memiliki nilai yang mirip dengan https://${az_storage_account}.blob.core.windows.net/${az_image_blob}/${az_blob_ignition_file_name} -
Buat sebuah identitas dan berikan akses yang sesuai ke akun penyimpanan Anda:
az identity create --name "${az_vm_name}-identity" --resource-group "${az_resource_group}" identity_principal_id=$(az identity show --name "${az_vm_name}-identity" --resource-group "${az_resource_group}" --query principalId -o tsv) identity_id=$(az identity show --name "${az_vm_name}-identity" --resource-group "${az_resource_group}" --query id -o tsv) az role assignment create --assignee "${identity_principal_id}" --role "Storage Blob Data Contributor" --scope /subscriptions/${subscription_id}/resourceGroups/${az_resource_group}/providers/Microsoft.Storage/storageAccounts/${az_storage_account}Buat VM dengan menambahkan identitas baruaz vm create -n "${az_vm_name}" -g "${az_resource_group}" --image "${az_image_name}" --admin-username core --custom-data "$(cat ${ignition_path})" --assign-identity "${identity_id}"
Meluncurkan instans VM Rahasia (Confidential VM)
| Dukungan untuk Komputasi Rahasia (Confidential Computing) masih dalam tahap pengembangan di Fedora CoreOS. Lihat isu #1719. |
| Untuk gambaran umum mengenai VM Rahasia di Azure, lihat gambaran umum VM rahasia. |
Untuk meluncurkan VM rahasia, kita perlu membuat citra yang mendukung komputasi rahasia di Azure Compute Gallery.
# Create an image gallery
gallery_name="mygallery"
az sig create --resource-group "${az_resource_group}" --gallery-name "${gallery_name}"
# Create a gallery image definition
gallery_image_definition="mygallery-def"
az sig image-definition create \
--resource-group "${az_resource_group}" \
--gallery-name "${gallery_name}" \
--gallery-image-definition "${gallery_image_definition}" \
--publisher azure \
--offer example \
--sku standard \
--features SecurityType=ConfidentialVmSupported \
--os-type Linux \
--hyper-v-generation V2
# Get the source VHD URI of OS disk
os_vhd_storage_account=$(az storage account list -g ${az_resource_group} | jq -r .[].id)
# Create a new image version
gallery_image_version="1.0.0"
az sig image-version create \
--resource-group "${az_resource_group}" \
--gallery-name "${gallery_name}" \
--gallery-image-definition "${gallery_image_definition}" \
--gallery-image-version "${gallery_image_version}" \
--os-vhd-storage-account "${os_vhd_storage_account}" \
--os-vhd-uri https://${az_storage_account}.blob.core.windows.net/${az_container}/${az_image_blob}
Untuk meluncurkan instans FCOS rahasia, Anda harus menentukan tipe komputasi rahasia dan menggunakan tipe mesin yang mendukung komputasi rahasia.
Dari baris perintah, gunakan --security-type ConfidentialVM dan --size.
vm_name="my-fcos-cvm"
ignition_path="./config.ign"
# Specify a size that supports confidential computing (using AMD SEV-SNP for example)
vm_size="Standard_DC2as_v5"
# Get gallery image id
gallery_image_id=$(az sig image-version show --gallery-image-definition "${gallery_image_definition}" --gallery-image-version "${gallery_image_version}" --gallery-name "${gallery_name}" --resource-group $az_resource_group | jq -r .id)
# Create a VM with confidential computing enabled using the gallery image and an ignition config as custom-data
az vm create \
--name "${vm_name}" \
--resource-group $az_resource_group \
--size "${vm_size}" \
--image "${gallery_image_id}" \
--admin-username core \
--generate-ssh-keys \
--custom-data "$(cat ${ignition_path})" \
--enable-vtpm true \
--public-ip-sku Standard \
--security-type ConfidentialVM \
--os-disk-security-encryption-type VMGuestStateOnly \
--enable-secure-boot true
Kami menambahkan parameter --enable-secure-boot true untuk mengaktifkan Secure Boot. Gunakan false untuk menonaktifkan Secure Boot.
|
Untuk mendapatkan log konsol lengkap, tambahkan parameter --boot-diagnostics-storage ${az_storage_account}.
|
ssh core@<ip address>
# Confirm the VM is using `AMD SEV-SNP` confidential type
sudo systemd-detect-virt --cvm
sev-snp
# Confirm the VM is using `Intel TDX` confidential type
sudo systemd-detect-virt --cvm
tdx
Catatan: Cara lain untuk mengonfirmasi adalah dengan melihat "Group B" dan memastikan bahwa nilainya diakhiri dengan 2 (HV_ISOLATION_TYPE_SNP) atau diakhiri dengan 3 (HV_ISOLATION_TYPE_TDX).
# `AMD SEV-SNP` confidential type
dmesg | grep "Hyper-V: Isolation Config"
[ 0.000000] Hyper-V: Isolation Config: Group A 0x1, Group B 0xba2
# `Intel TDX` confidential type
dmesg | grep "Hyper-V: Isolation Config"
[ 0.000000] Hyper-V: Isolation Config: Group A 0x1, Group B 0xbe3
Want to help? Learn how to contribute to Fedora Docs ›