4장. cloud-init를 사용하여 가상 머신 생성


cloud-init 가 포함된 새 VM(가상 머신)을 생성하려면 meta-data 파일 및 user-data 파일을 생성합니다.

  • meta-data 파일에는 인스턴스 세부 정보가 포함됩니다.
  • user-data 파일에는 사용자를 생성하고 액세스 권한을 부여하는 정보가 포함되어 있습니다.

이러한 파일을 새 ISO 이미지에 포함하고 ISO 파일을 KVM 게스트 이미지에서 생성된 새 VM에 연결합니다. 이 시나리오에서는 데이터 소스는 NoCloud입니다.

프로세스

  1. cloudinitiso 디렉터리를 생성하고 이를 작업 디렉터리로 설정합니다.

    $ mkdir cloudinitiso
    $ cd cloudinitiso
    Copy to Clipboard
  2. meta-data 파일을 편집합니다.

    $ vi meta-data
    instance-id: citest
    local-hostname: citest-1
    Copy to Clipboard
  3. user-data 파일을 편집합니다.

    $ vi user-data
    #cloud-config
    password: cilogon
    chpasswd: {expire: False}
    ssh_pwauth: True
    ssh_authorized_keys:
      - <ssh-rsa AAA...fhHQ== sample@example.com>
    Copy to Clipboard
    참고

    SSH 공개 키는 ~/.ssh/id_rsa.pub 파일에서 찾을 수 있습니다.

  4. user-datameta-data 를 포함하는 ISO 이미지를 생성합니다.

    # genisoimage -output ciiso.iso -volid cidata -joliet -rock user-data meta-data
    
    I: -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)
    Copy to Clipboard
  5. Red Hat 고객 포털에서 KVM 게스트 이미지를 /var/lib/libvirt/images 디렉터리에 다운로드합니다.
  6. virt-install 유틸리티를 사용하여 KVM 게스트 이미지에서 새 VM을 생성하고 다운로드한 이미지를 기존 이미지에 연결합니다.

    # virt-install \
        --memory 4096 \
        --vcpus 4 \
        --name mytestcivm \
        --disk /var/lib/libvirt/images/rhel-8.1-x86_64-kvm.qcow2,device=disk,bus=virtio,format=qcow2 \
        --disk /home/sample/cloudinitiso/ciiso.iso,device=cdrom \
        --os-type Linux \
        --os-variant rhel10.0 \
        --virt-type kvm \
        --graphics none \
        --import
    Copy to Clipboard
  7. 기본 사용자 이름 cloud-user 및 기본 암호 cilogon:을 사용하여 이미지에 로그인합니다.

    citest-1 login: cloud-user
    Password:
    [cloud-user@citest-1 ~]$
    Copy to Clipboard

검증

  • cloud-init 서비스의 상태를 확인하여 유틸리티가 정의된 작업을 완료했는지 확인합니다.

    [cloud-user@citest-1 instance]$ cloud-init status
    status: done
    Copy to Clipboard

    cloud-init 유틸리티는 실행 시 /var/lib/cloud 아래에 cloud-init 디렉터리 레이아웃을 생성하고 사용자가 지정한 지시문에 따라 특정 디렉터리 콘텐츠를 업데이트하거나 변경합니다.

  • 예를 들어 데이터 소스 파일을 확인하여 데이터 소스가 NoCloud 인지 확인할 수 있습니다.

    $ cd /var/lib/cloud/instance
    $ cat datasource
    
    DataSourceNoCloud: DataSourceNoCloud [seed=/dev/sr0][dsmode=net]
    Copy to Clipboard
  • 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
    Copy to Clipboard
참고

OpenStack의 경우 인스턴스 생성 및 관리에cloud-init 를 사용하여 인스턴스를 구성하는 데 필요한 정보가 포함되어 있습니다. 특정 프로시저 는 사용자 지정 인스턴스 생성 을 참조하십시오.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat