Red Hat Training

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

4.4. 구성 후: 모든 오버클라우드 역할 사용자 지정

중요

이 문서의 이전 버전에서는 OS::TripleO::Tasks::*PostConfig 리소스를 사용하여 역할별로 구성 후 후크를 제공했습니다. director의 Heat 템플릿 컬렉션에는 이러한 후크를 전용으로 사용해야 하므로 사용자 지정 용도로 사용해서는 안 됩니다. 대신 아래에 설명된 OS::TripleO::NodeExtraConfigPost 후크를 사용합니다.

Overcloud 생성을 완료했지만 초기 생성 또는 Overcloud 후속 업데이트 시 모든 역할에 구성을 추가하려는 상황이 발생할 수 있습니다. 이 경우 다음과 같은 구성 후 후크를 사용합니다.

OS::TripleO::NodeExtraConfigPost
코어 Puppet 구성 후 모든 노드 역할에 적용되는 추가 구성입니다.

이 예제에서는 먼저 스크립트를 실행하여 각 노드의 resolv.conf 를 변수 이름 서버에 추가하는 기본 heat 템플릿(/home/stack/templates/nameserver.yaml)을 생성합니다.

heat_template_version: 2014-10-16

description: >
  Extra hostname configuration

parameters:
  servers:
    type: json
  nameserver_ip:
    type: string
  DeployIdentifier:
    type: string

resources:
  CustomExtraConfig:
    type: OS::Heat::SoftwareConfig
    properties:
      group: script
      config:
        str_replace:
          template: |
            #!/bin/sh
            echo "nameserver _NAMESERVER_IP_" >> /etc/resolv.conf
          params:
            _NAMESERVER_IP_: {get_param: nameserver_ip}

  CustomExtraDeployments:
    type: OS::Heat::SoftwareDeploymentGroup
    properties:
      servers:  {get_param: servers}
      config: {get_resource: CustomExtraConfig}
      actions: ['CREATE','UPDATE']
      input_values:
        deploy_identifier: {get_param: DeployIdentifier}

이 예제에서 resources 섹션에는 다음이 포함됩니다.

CustomExtraConfig
이는 소프트웨어 구성을 정의합니다. 이 예제에서는 Bash 스크립트 를 정의하고 Heat에서 _NAMESERVER_IP_nameserver_ip 매개변수에 저장된 값으로 교체합니다.
CustomExtraDeployments

이렇게 하면 CustomExtraConfig 리소스에서 소프트웨어 구성인 소프트웨어 구성이 실행됩니다. 다음을 확인합니다.

  • config 매개변수는 CustomExtraConfig 리소스에 대한 참조를 제공하므로 Heat는 적용할 구성을 알고 있습니다.
  • servers 매개변수는 Overcloud 노드의 맵을 검색합니다. 이 매개변수는 상위 템플릿에서 제공하며 이 후크의 템플릿에서 필요합니다.
  • actions 매개변수는 구성을 적용할 시기를 정의합니다. 이 경우 Overcloud가 생성된 경우에만 설정을 적용합니다. 가능한 작업에는 CREATE,UPDATE,DELETE,SUSPEND, RESUME 가 포함됩니다.
  • input_values 에는 deploy_identifier 라는 매개변수가 포함되어 있으며, 이 매개변수는 상위 템플릿의 DeployIdentifier 를 저장합니다. 이 매개변수는 각 배포 업데이트의 리소스에 타임스탬프를 제공합니다. 이렇게 하면 후속 오버클라우드 업데이트에서 리소스가 얻을 수 있습니다.

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

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

parameter_defaults:
  nameserver_ip: 192.168.1.1

설정을 적용하려면 Overcloud를 생성하거나 업데이트할 때 다른 환경 파일과 함께 환경 파일을 스택에 추가합니다. 예를 들면 다음과 같습니다.

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

이는 코어 구성이 초기 Overcloud 생성 또는 후속 업데이트에서 완료된 후 모든 노드에 적용됩니다.

중요

OS::TripleO::NodeExtraConfigPost 만 하나의 Heat 템플릿에 등록할 수 있습니다. 이후의 사용은 사용할 Heat 템플릿을 덮어씁니다.