4장. NoCloud 데이터 소스를 사용하여 가상 머신 생성
NoCloud 데이터 소스를 사용하여 VM(가상 머신)을 배포하려면 인스턴스 세부 정보에 대한 메타 데이터 및 사용자 액세스 세부 정보를 위한 user-data 를 생성합니다. RHEL(Red Hat Enterprise Linux) ISO에 추가하고 KVM 게스트 VM에 연결합니다. 처음 부팅하는 동안 cloud-init 는 이러한 파일을 사용하여 VM을 구성합니다.
사전 요구 사항
- Red Hat 계정을 생성했습니다.
-
cloud-init가 사전 설치되어 있고 VM에서
가 자동으로 실행되도록 설정된 KVM 게스트 이미지를 다운로드했습니다.cloud-init -
~/.ssh/id_rsa.pub파일에 SSH 공개 키가 있습니다.
프로세스
cloudinitiso디렉터리를 생성하고 이를 작업 디렉터리로 설정합니다.$ mkdir cloudinitiso$ cd cloudinitisometa-data파일을 편집합니다.$ vi meta-datainstance-id: citest local-hostname: citest-1user-data파일을 편집합니다.$ vi user-data#cloud-config password: cilogon chpasswd: {expire: False} ssh_pwauth: True ssh_authorized_keys: - <ssh-rsa AAAxxxhHQ== sample@example.com>user-data및meta-data를 포함하는 ISO 이미지를 생성합니다.# genisoimage -output ciiso.iso -volid cidata -joliet -rock user-data meta-dataI: -input-charset not specified, using utf-8 (detected in locale settings) Total translation table size: 0 Total rockridge attributes bytes: 331 Total directory bytes: 0 Path table size(bytes): 10 Max brk space used 0 183 extents written (0 MB)-
Red Hat 고객 포털에서 KVM 게스트 이미지를
/var/lib/libvirt/images디렉터리에 다운로드합니다. virt-install유틸리티를 사용하여 KVM 게스트 이미지에서 새 VM을 생성하고 다운로드한 이미지를 기존 이미지에 연결합니다.# virt-install \ --memory 4096 \ --vcpus 4 \ --name mytestcivm \ --disk /var/lib/libvirt/images/rhel-10-x86_64-kvm.qcow2,device=disk,bus=virtio,format=qcow2 \ --disk /home/<example_username>/cloudinitiso/ciiso.iso,device=cdrom \ --os-type Linux \ --os-variant rhel10.0 \ --virt-type kvm \ --graphics none \ --import기본 사용자 이름
cloud-user및 기본 암호cilogon:을 사용하여 이미지에 로그인합니다.citest-1 login: cloud-user Password: [cloud-user@citest-1 ~]$
검증
cloud-init서비스의 상태를 확인하여 유틸리티가 정의된 작업을 완료했는지 확인합니다.[cloud-user@citest-1 instance]$ cloud-init status status: donecloud-init유틸리티가 실행되면/var/lib/cloud에cloud-init디렉터리 레이아웃을 생성합니다. 또한 지정한 지시문에 따라 특정 디렉터리 콘텐츠를 업데이트하거나 변경합니다.데이터 소스 파일을 확인하여 데이터 소스가
NoCloud인지 확인합니다.$ cd /var/lib/cloud/instance$ cat datasourceDataSourceNoCloud: DataSourceNoCloud [seed=/dev/sr0][dsmode=net]cloud-init가 user-data를/var/lib/cloud/instance/user-data.txt에 복사하는지 확인합니다.$ cat user-data.txt#cloud-config password: cilogon chpasswd: {expire: False} ssh_pwauth: True ssh_authorized_keys: - ssh-rsa AAA...fhHQ== sample@redhat.com
OpenStack의 경우 인스턴스 생성 및 관리에 는 cloud-init 를 사용하여 인스턴스를 구성하는 데 필요한 정보가 포함되어 있습니다. 특정 프로시저 는 사용자 지정 인스턴스 만들기 를 참조하십시오.