Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

4장. 구성 후크

구성 후크는 Overcloud 배포 프로세스에 고유한 구성 기능을 삽입하는 방법을 제공합니다. 여기에는 기본 Overcloud 서비스 구성 전후에 사용자 정의 구성을 삽입하는 후크와 Puppet 기반 구성을 수정하고 포함하기 위한 후크가 포함됩니다.

4.1. 첫 번째 부팅: 첫 번째 부팅 구성 사용자 정의

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}

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

resource_registry:
  OS::TripleO::NodeUserData: /home/stack/templates/nameserver.yaml

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

$ openstack overcloud deploy --templates \
    ...
    -e /home/stack/templates/firstboot.yaml \
    ...

-e 는 오버클라우드 스택에 환경 파일을 적용합니다.

그러면 처음 생성될 때 모든 노드에 구성이 추가되고 처음으로 부팅됩니다. 이후 오버클라우드 스택 업데이트와 같은 이러한 템플릿은 이러한 스크립트를 실행하지 않습니다.

중요

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