9.3. cloud-init를 사용하여 VMDK 이미지에 대한 사용자 생성
VM에 로그인하려면 사용자 계정을 생성해야 합니다. 이를 위해 CLI의 단계를 수행합니다.
GUI 마법사는 cloud-init
를 지원하지 않습니다.
사전 요구 사항
govc
VMware CLI 도구 클라이언트를 구성하셨습니다.govc
VMware CLI 도구 클라이언트를 사용하려면 환경에서 다음 값을 설정해야 합니다.GOVC_URL GOVC_DATACENTER GOVC_FOLDER GOVC_DATASTORE GOVC_RESOURCE_POOL GOVC_NETWORK
절차
-
.vmdk
이미지를 다운로드한 디렉터리에 액세스합니다. metadata.yaml
이라는 파일을 생성합니다. 이 파일에 다음 정보를 추가합니다.instance-id: cloud-vm local-hostname: vmname
userdata.yaml
이라는 파일을 생성합니다. 파일에 다음 정보를 추가합니다.#cloud-config users - name: admin sudo: "ALL=(ALL) NOPASSWD:ALL" ssh_authorized_keys: - ssh-rsa AAA...fhHQ== your.email@example.com
-
ssh_authorized_keys
는 SSH 공개 키입니다. SSH 공개 키는~/.ssh/id_rsa.pub
에서 찾을 수 있습니다.
-
metadata.yaml
및userdata.yaml
파일을 다음과 같이base64
로 인코딩된gzip
으로 압축한 환경으로 내보냅니다. 다음 단계에서 사용됩니다.export METADATA=$(gzip -c9 <metadata.yaml | { base64 -w0 2>/dev/null || base64; }) \ USERDATA=$(gzip -c9 <userdata.yaml | { base64 -w0 2>/dev/null || base64; })
metadata.yaml
및userdata.yaml
파일을 사용하여 vSphere에서 이미지를 시작합니다.의
.vmdk
이미지를 vSphere로 가져옵니다.$ govc import.vmdk ./composer-api.vmdk foldername
VSphere에 전원을 끄지 않고 VM을 생성합니다.
govc vm.create \ -net.adapter=vmxnet3 \ -m=4096 -c=2 -g=rhel8_64Guest \ -firmware=bios -disk=”foldername/composer-api.vmdk” \ -disk.controller=ide -on=false \ vmname
VM을 변경하여
ExtraConfig
변수인cloud-init
구성을 추가합니다.govc vm.change -vm vmname \ -e guestinfo.metadata="${METADATA}" \ -e guestinfo.metadata.encoding="gzip+base64" \ -e guestinfo.userdata="${USERDATA}" \ -e guestinfo.userdata.encoding="gzip+base64"
VM의 전원을 켭니다.
govc vm.power -on vmname
VM IP 주소를 검색합니다.
HOST=$(govc vm.ip vmname)
cloud-init
파일 구성에 지정된 user-data를 사용하여 VM에 SSH를 사용하여 로그인합니다.$ ssh admin@HOST
추가 리소스