Provisioning Fedora CoreOS di Nutanix AHV
Panduan ini menunjukkan cara melakukan provisioning node Fedora CoreOS (FCOS) baru di Nutanix AHV. Saat ini Fedora tidak mempublikasikan citra Fedora CoreOS di dalam Nutanix, jadi Anda perlu mengunggah citra Nutanix ke langganan Nutanix Prism Central Anda.
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 langganan Nutanix Prism Central. Contoh di bawah ini menggunakan perintah curl untuk mengakses API Nutanix Prism Central.
Mengunggah citra ke Nutanix AHV
Fedora CoreOS dirancang untuk diperbarui secara otomatis, dengan jadwal berbeda untuk setiap stream. Setelah Anda memilih stream yang relevan, gunakan API Nutanix Prism Central untuk mengunggah citra terbaru ke Nutanix:
STREAM=stable
IMAGE_NAME=<nama citra yang akan dibuat>
API_HOST=<nama host Prism Central>
API_USERNAME=<nama pengguna>
API_PASSWORD=<kata sandi>
URL=$(curl https://builds.coreos.fedoraproject.org/streams/${STREAM}.json | \
jq -r .architectures.x86_64.artifacts.nutanix.formats.qcow2.disk.location)
ENCODED_CREDS="$(echo -n "${API_USERNAME}:${API_PASSWORD}" | base64)"
curl -X POST --header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Authorization: Basic ${ENCODED_CREDS}" \
"https://${API_HOST}:9440/api/nutanix/v3/images" \
-d @- << EOF
{
"spec": {
"name": "${IMAGE_NAME}",
"resources": {
"image_type": "ISO_IMAGE",
"source_uri": "${URL}",
"architecture": "X86_64",
"source_options": {
"allow_insecure_connection": false
}
},
"description": "string"
},
"api_version": "3.1.0",
"metadata": {
"use_categories_mapping": false,
"kind": "image",
"spec_version": 0,
"categories_mapping": {},
"should_force_translate": true,
"entity_version": "string",
"categories": {},
"name": "string"
}
}
EOF
Menjalankan instance VM
Anda dapat melakukan provisioning instance FCOS menggunakan portal web Nutanix Prism Central atau melalui API Prism Central dengan curl. Konfigurasi Ignition dapat diteruskan ke VM sebagai “skrip kustom cloud-init”. Misalnya, untuk meluncurkan VM menggunakan API:
API_HOST=<nama host Prism Central>
API_USERNAME=<nama pengguna>
API_PASSWORD=<kata sandi>
CLUSTER_REFERENCE_NAME=<nama kluster yang akan digunakan>
CLUSTER_REFERENCE_UUID=<uuid kluster yang akan digunakan>
SUBNET_REFERENCE_NAME=<nama subnet yang akan digunakan>
SUBNET_REFERENCE_UUID=<uuid subnet yang akan digunakan>
VM_NAME=<nama VM yang akan dibuat>
IGNITION_CONFIG=config.ign
IMAGE_NAME=<nama citra>
ENCODED_CONFIG="$(cat ${IGNITION_CONFIG} | base64 -w 0)"
ENCODED_CREDS="$(echo -n "${API_USERNAME}:${API_PASSWORD}" | base64)"
IMAGE_ID=$(curl -X POST --header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Authorization: Basic ${ENCODED_CREDS}" \
"https://${API_HOST}:9440/api/nutanix/v3/images/list"
-d '{ "kind": "image","filter": "", "length": 30, "offset": 0}' | \
jq -r '.entities[] | select(.spec.name == "${IMAGE_NAME}") | .metadata.uuid')
curl -X POST --header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Authorization: Basic ${ENCODED_CREDS}" \
"https://${API_HOST}:9440/api/nutanix/v3/vms" \
-d @- << EOF
{
"spec": {
"name": "${VM_NAME}",
"resources": {
"power_state": "ON",
"num_vcpus_per_socket": 1,
"num_sockets": 1,
"memory_size_mib": 16384,
"disk_list": [
{
"disk_size_mib": 32768,
"device_properties": {
"device_type": "DISK",
"disk_address": {
"device_index": 0,
"adapter_type": "SCSI"
}
},
"data_source_reference": {
"kind": "image",
"uuid": "${IMAGE_ID}"
}
}
],
"nic_list": [
{
"nic_type": "NORMAL_NIC",
"is_connected": true,
"ip_endpoint_list": [
{
"ip_type": "DHCP"
}
],
"subnet_reference": {
"kind": "subnet",
"name": "${SUBNET_REFERENCE_NAME}",
"uuid": "${SUBNET_REFERENCE_UUID}"
}
}
],
"guest_tools": {
"nutanix_guest_tools": {
"state": "ENABLED",
"iso_mount_state": "MOUNTED"
}
},
"guest_customization": {
"cloud_init": {
"user_data": "${ENCODED_CONFIG}"
},
"is_overridable": false
}
},
"cluster_reference": {
"kind": "cluster",
"name": "${CLUSTER_REFERENCE_NAME}",
"uuid": "${CLUSTER_REFERENCE_UUID}"
}
},
"api_version": "3.1.0",
"metadata": {
"kind": "vm"
}
}
EOF
Sekarang Anda seharusnya dapat melakukan SSH ke dalam instance menggunakan alamat IP yang terkait.
ssh core@<ip address>
Want to help? Learn how to contribute to Fedora Docs ›