11장. 사용자 지정 인스턴스 생성


클라우드 사용자는 인스턴스가 부팅 시 실행되는 쉘 스크립트와 같이 인스턴스를 시작할 때 사용할 추가 데이터를 지정할 수 있습니다. 클라우드 사용자는 다음 방법을 사용하여 인스턴스에 데이터를 전달할 수 있습니다.

사용자 데이터
를 사용하여 실행할 cloud-init 에 대한 인스턴스 시작 명령에 지침을 포함합니다.
인스턴스 메타데이터
인스턴스를 만들거나 업데이트할 때 지정할 수 있는 키-값 쌍 목록입니다.

구성 드라이브 또는 메타데이터 서비스를 사용하여 인스턴스에 전달된 추가 데이터에 액세스할 수 있습니다.

설정 드라이브
부팅 시 구성 드라이브를 인스턴스에 연결할 수 있습니다. 구성 드라이브는 인스턴스에 읽기 전용 드라이브로 표시됩니다. 인스턴스에서 이 드라이브를 마운트하고 해당 드라이브에서 파일을 읽을 수 있습니다. 구성 드라이브를 cloud-init 정보의 소스로 사용할 수 있습니다. 구성 드라이브는 서버 부트스트랩을 위해 cloud-init 와 결합하고 대규모 파일을 인스턴스에 전달하려는 경우 유용합니다. 예를 들어 구성 드라이브를 자동으로 마운트하고 초기 인스턴스 부팅 중에 설정 스크립트를 실행하도록 cloud-init 를 구성할 수 있습니다. 구성 드라이브는 config-2 의 볼륨 레이블을 사용하여 생성되며 부팅 시 인스턴스에 연결됩니다. 구성 드라이브에 전달된 추가 파일의 내용은 구성 드라이브의 openstack/{version}/ 디렉터리에 있는 user_data 파일에 추가됩니다. cloud-init 는 이 파일에서 사용자 데이터를 검색합니다.
메타데이터 서비스
인스턴스와 관련된 데이터를 검색하기 위해 REST API를 제공합니다. 인스턴스는 169.254.169.254 또는 fe80::a9fe:a9fe에서 이 서비스에 액세스합니다.

cloud-init 는 구성 드라이브와 메타데이터 서비스를 둘 다 사용하여 인스턴스를 사용자 지정하는 데 추가 데이터를 사용할 수 있습니다. cloud-init 패키지는 여러 데이터 입력 형식을 지원합니다. 쉘 스크립트 및 cloud-config 형식은 가장 일반적인 입력 형식입니다.

  • 쉘 스크립트: 데이터 선언은 #! 또는 Content-Type: text/x-shellscript 로 시작됩니다. 쉘 스크립트는 부팅 프로세스 마지막에 호출됩니다.
  • cloud-config 형식: 데이터 선언은 #cloud-config 또는 Content-Type: text/cloud-config 로 시작됩니다.cloud-config 파일은 cloud-init 에서 구문 분석하고 실행할 수 있는 유효한 YAML이어야 합니다.
참고

cloud-init 는 인스턴스에 전달되는 데이터에 대해 최대 사용자 데이터 크기가 16384바이트입니다. 크기 제한을 변경할 수 없으므로 크기 제한을 초과해야 하는 경우 gzip 압축을 사용합니다.

벤더별 데이터

RHOSP 관리자는 데이터를 생성할 때 인스턴스에 데이터를 전달할 수도 있습니다. 이 데이터는 클라우드 사용자(예: Active Directory에 인스턴스를 등록하는 암호화 토큰)로 표시되지 않을 수 있습니다.

RHOSP 관리자는 vendordata 기능을 사용하여 데이터를 인스턴스에 전달합니다. Vendordata 구성은 읽기 전용이며 다음 파일 중 하나에 있습니다.

  • /openstack/{version}/vendor_data.json
  • /openstack/{version}/vendor_data2.json

메타데이터 서비스 또는 인스턴스의 구성 드라이브에서 이러한 파일을 볼 수 있습니다. 메타데이터 서비스를 사용하여 파일에 액세스하려면 http://169.254.169.254/openstack/{version}/vendor_data.json 또는 http://169.254.169.254/openstack/{version}/vendor_data2.json 에 GET 요청을 만드십시오.

11.1. 사용자 데이터를 사용하여 인스턴스 사용자 정의

사용자 데이터를 사용하여 인스턴스 시작 명령에 명령을 포함할 수 있습니다. cloud-init 는 이러한 명령을 실행하여 부팅 프로세스의 마지막 단계로 인스턴스를 사용자 지정합니다.

절차

  1. cloud-init 에 대한 지침으로 파일을 만듭니다. 예를 들어 인스턴스에서 웹 서버를 설치하고 활성화하는 bash 스크립트를 생성합니다.

    $ vim /home/scripts/install_httpd
    #!/bin/bash
    
    yum -y install httpd python-psycopg2
    systemctl enable httpd --now
    Copy to Clipboard Toggle word wrap
  2. bash 스크립트를 전달하려면 user-data 옵션으로 인스턴스를 시작합니다.

    $ openstack server create \
    --image rhel8 \
    --flavor default \
    --nic net-id=web-server-network \
    --security-group default \
    --key-name web-server-keypair \
    --user-data /home/scripts/install_httpd \
    --wait web-server-instance
    Copy to Clipboard Toggle word wrap
  3. 인스턴스 상태가 활성이면 유동 IP 주소를 연결합니다.

    $ openstack floating ip create web-server-network
    $ openstack server add floating ip web-server-instance 172.25.250.123
    Copy to Clipboard Toggle word wrap
  4. SSH를 사용하여 인스턴스에 로그인합니다.

    $ ssh -i ~/.ssh/web-server-keypair cloud-user@172.25.250.123
    Copy to Clipboard Toggle word wrap
  5. 사용자 지정이 성공적으로 수행되었는지 확인합니다. 예를 들어 웹 서버가 설치되고 활성화되어 있는지 확인하려면 다음 명령을 입력합니다.

    $ curl http://localhost | grep Test
    <title>Test Page for the Apache HTTP Server on Red Hat Enterprise Linux</title>
    <h1>Red Hat Enterprise Linux <strong>Test Page</strong></h1>
    Copy to Clipboard Toggle word wrap
  6. cloud-init가 실행되었는지 여부와 같은 관련 메시지의 /var/log/cloud -init.log 파일을 검토합니다.

    $ sudo less /var/log/cloud-init.log
    ...output omitted...
    ...util.py[DEBUG]: Cloud-init v. 0.7.9 finished at Sat, 23 Jun 2018 02:26:02 +0000. Datasource DataSourceOpenStack [net,ver=2].  Up 21.25 seconds
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat