기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
VMware에서 AL2023에 대한 VMware guestinfo cloud-init 구성
VMware 환경에는 Amazon EC2 인스턴스 메타데이터 서비스(IMDS)가 없으므로 AL2023을 구성하는 대체 방법이 필요합니다. 이 섹션에서는 VMware vSphere에서 사용 가능한 seed.iso 가상 CD-ROM 드라이브에 대한 대체 구성 메커니즘을 사용하는 방법을 설명합니다.
이 구성 방법은 VMware extraconfig 메커니즘을 사용하여 cloud-init에 구성 데이터를 제공합니다. 다음 각 키에 해당 속성을 제공해야 합니다.keyname.encoding
VMware extraconfig 메커니즘에 다음 키를 제공할 수 있습니다.
-
guestinfo.metadata -
cloud-init메타데이터가 포함된 JSON 또는 YAML -
guestinfo.userdata -
cloud-config형식의cloud-init사용자 데이터가 포함된 YAML 설명서. -
guestinfo.vendordata(선택 사항) -
cloud-init공급업체 데이터를 포함하는 YAML
해당 인코딩 속성(guestinfo.metadata.encoding, guestinfo.userdata.encoding 및 guestinfo.vendordata.encoding)은 다음을 포함합니다.
-
base64 -
속성의 콘텐츠는
base64로 인코딩되어 있습니다. -
gzip+base64 -
base64로 인코딩된 후 속성 콘텐츠가gzip으로 압축됩니다.
참고
seed.iso 방법은 별도(선택 사항)의 network-config 구성 파일을 지원하며, VMware guestinfo는 네트워킹 구성이 제공되는 방식이 다릅니다. 다음 섹션에서 추가 정보를 제공합니다.
명시적 네트워크 구성이 필요한 경우 다음 두 가지 YAML 또는 JSON 속성의 형태로 metadata에 포함되어야 합니다.
-
network -
JSON 또는 YAML 형식으로 인코딩된 네트워크 구성을 포함합니다.
-
network.encoding -
위 네트워크 구성 데이터의 인코딩을 포함합니다.
cloud-init에서 지원되는 인코딩은guestinfo데이터에 지원되는 것과 동일한base64및gzip+base64입니다.
예 VMware vSphere govc CLI 도구를 사용하여 guestinfo를 통해 구성 전달
-
KVM 및 VMware에서 Amazon Linux 2023 NoCloud (seed.iso) cloud-init 구성에 설명된 대로
meta-data,user-data및 선택 사항인network-config구성 파일을 준비합니다. -
구성 파일을 VMware
guestinfo에서 사용할 수 있는 형식으로 변환합니다.# 'meta-data', `user-data` and `network-config` are the configuration # files in the same format that would be used by a NoCloud (seed.iso) # data source, read-them and convert them to VMware guestinfo # # The VM_NAME variable is assumed to be set to the name of the VM # It is assumed that the necessary govc environment (credentials etc...) are already set metadata=$(cat "meta-data") userdata=$(cat "user-data") if [ -e "network-config" ] ; then # We need to embed the network config inside the meta-data netconf=$(base64 -w0 "network-config") metadata=$(printf "%s\nnetwork: %s\nnetwork.encoding: base64" "$metadata" "$netconf") fi metadata=$(base64 -w0 <<< "$metadata") govc vm.change -vm "$VM_NAME" \ -e guestinfo.metadata="$metadata" \ -e guestinfo.metadata.encoding="base64" userdata=$(base64 -w0 <<< "$userdata") govc vm.change -vm "$VM_NAME" \ -e guestinfo.userdata="$userdata" \ -e guestinfo.userdata.encoding="base64"