

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# VMware에서 AL2023에 대한 VMware guestinfo `cloud-init` 구성
<a name="vmware-guestinfo"></a>

 VMware 환경에는 [Amazon EC2 인스턴스 메타데이터 서비스(IMDS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service)가 없으므로 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`입니다.

**Example VMware vSphere **govc** CLI 도구를 사용하여 `guestinfo`를 통해 구성 전달**  

1.  [KVM 및 VMware에서 Amazon Linux 2023 NoCloud (`seed.iso`) `cloud-init` 구성](seed-iso.md)에 설명된 대로 `meta-data`, `user-data` 및 선택 사항인 `network-config` 구성 파일을 준비합니다.

1.  구성 파일을 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"
   ```