5.3. 첫 번째 부팅: 첫 번째 부팅 구성 사용자 지정


director는 Overcloud 초기 생성 시 모든 노드에서 설정을 수행하는 메커니즘을 제공합니다. director는 OS::TripleO::NodeUserData 리소스 유형을 사용하여 호출할 수 있는 cloud-init 를 통해 이 작업을 수행합니다.

이 예에서는 모든 노드에서 사용자 지정 IP 주소로 네임서버를 업데이트합니다. 먼저 각 노드의 resolv.conf 를 특정 이름 서버로 추가하는 스크립트를 실행하는 기본 heat 템플릿(/home/stack/templates/nameserver.yaml)을 생성해야 합니다. OS::TripleO::MultipartMime 리소스 유형을 사용하여 구성 스크립트를 보낼 수 있습니다.

heat_template_version: 2014-10-16

description: >
  Extra hostname configuration

resources:
  userdata:
    type: OS::Heat::MultipartMime
    properties:
      parts:
      - config: {get_resource: nameserver_config}

  nameserver_config:
    type: OS::Heat::SoftwareConfig
    properties:
      config: |
        #!/bin/bash
        echo "nameserver 192.168.1.1" >> /etc/resolv.conf

outputs:
  OS::stack_id:
    value: {get_resource: userdata}
Copy to Clipboard Toggle word wrap

다음으로 heat 템플릿을 OS::TripleO::NodeUserData 리소스 유형으로 등록하는 환경 파일(/home/stack/templates/firstboot.yaml)을 생성합니다.

resource_registry:
  OS::TripleO::NodeUserData: /home/stack/templates/nameserver.yaml
Copy to Clipboard Toggle word wrap

첫 번째 부팅 구성을 추가하려면 Overcloud를 처음 생성할 때 다른 환경 파일과 함께 환경 파일을 스택에 추가합니다. 예를 들면 다음과 같습니다.

$ openstack overcloud deploy --templates \
    ...
    -e /home/stack/templates/firstboot.yaml \
    ...
Copy to Clipboard Toggle word wrap

-e 는 환경 파일을 Overcloud 스택에 적용합니다.

이렇게 하면 처음 생성되고 부팅될 때 모든 노드에 구성이 추가됩니다. Overcloud 스택 업데이트와 같은 이러한 템플릿을 나중에 포함해도 해당 스크립트가 실행되지 않습니다.

중요

OS::TripleO::NodeUserData 를 하나의 heat 템플릿에만 등록할 수 있습니다. 후속 사용은 사용할 heat 템플릿을 재정의합니다.

이렇게 하면 다음이 수행됩니다.

  1. OS::TripleO::NodeUserData 는 컬렉션의 다른 템플릿에 사용되는 director 기반 Heat 리소스입니다. 이 리소스는 cloud-init 에서 사용할 데이터를 전달합니다. 기본 NodeUserData 는 빈 값(firstboot/userdata_default.yaml)을 생성하는 Heat 템플릿을 나타냅니다. 이 경우 firstboot.yaml 환경 파일은 이 기본값을 자체 nameserver.yaml 파일에 대한 참조로 대체합니다.
  2. nameserver_config 는 첫 번째 부팅 시 실행할 Bash 스크립트를 정의합니다. OS::Heat::SoftwareConfig 리소스는 적용할 구성 조각으로 정의합니다.
  3. userdataOS::Heat::MultipartMime 리소스를 사용하여 nameserver_config 의 구성을 다중 파트 MIME 메시지로 변환합니다.
  4. 출력 출력 매개 변수 OS::stack_id 를 제공하여 userdata 의 MIME 메시지를 가져와 호출하는 Heat 템플릿/리소스에 제공합니다.

결과적으로 각 노드는 첫 번째 부팅 시 다음 Bash 스크립트를 실행합니다.

#!/bin/bash
echo "nameserver 192.168.1.1" >> /etc/resolve.conf
Copy to Clipboard Toggle word wrap

이 예에서는 Heat 템플릿이 한 리소스에서 다른 리소스로 전달 및 modfy 구성을 전달하는 방법을 보여줍니다. 또한 환경 파일을 사용하여 새 Heat 리소스를 등록하거나 기존 리소스를 수정하는 방법도 보여줍니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat