5.4. 사전 구성: 특정 Overcloud 역할 사용자 지정


중요

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

Overcloud는 OpenStack 구성 요소의 핵심 구성에 Puppet을 사용합니다. director는 첫 번째 부팅이 완료되고 코어 구성이 시작되기 전에 특정 노드 역할에 대한 사용자 정의 구성을 제공하는 후크 세트를 제공합니다. 다음 후크는 다음과 같습니다.

OS::TripleO::ControllerExtraConfigPre
코어 Puppet 구성보다 먼저 컨트롤러 노드에 적용되는 추가 구성입니다.
OS::TripleO::ComputeExtraConfigPre
코어 Puppet 구성보다 먼저 컴퓨팅 노드에 적용된 추가 구성입니다.
OS::TripleO::CephStorageExtraConfigPre
코어 Puppet 구성보다 먼저 Ceph Storage 노드에 적용된 추가 구성입니다.
OS::TripleO::ObjectStorageExtraConfigPre
핵심 Puppet 구성보다 먼저 Object Storage 노드에 적용된 추가 구성입니다.
OS::TripleO::BlockStorageExtraConfigPre
코어 Puppet 구성보다 먼저 블록 스토리지 노드에 적용된 추가 구성입니다.
OS::TripleO::[ROLE]ExtraConfigPre
코어 Puppet 구성 전에 사용자 정의 노드에 적용된 추가 설정입니다. [ROLE] 을 구성 가능 역할 이름으로 교체합니다.

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

heat_template_version: 2014-10-16

description: >
  Extra hostname configuration

parameters:
  server:
    type: string
  nameserver_ip:
    type: string
  DeployIdentifier:
    type: string

resources:
  CustomExtraConfigPre:
    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}

  CustomExtraDeploymentPre:
    type: OS::Heat::SoftwareDeployment
    properties:
      server: {get_param: server}
      config: {get_resource: CustomExtraConfigPre}
      actions: ['CREATE','UPDATE']
      input_values:
        deploy_identifier: {get_param: DeployIdentifier}

outputs:
  deploy_stdout:
    description: Deployment reference, used to trigger pre-deploy on changes
    value: {get_attr: [CustomExtraDeploymentPre, deploy_stdout]}

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

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

이 명령은 소프트웨어 구성을 실행합니다. 이 구성은 CustomExtraConfigPre 리소스의 소프트웨어 구성입니다. 다음을 확인합니다.

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

다음으로 heat 템플릿을 역할 기반 리소스 유형에 등록하는 환경 파일(/home/stack/templates/pre_config.yaml)을 생성합니다. 예를 들어 컨트롤러 노드에만 적용하려면 ControllerExtraConfigPre 후크를 사용합니다.

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

parameter_defaults:
  nameserver_ip: 192.168.1.1

구성을 적용하려면 오버클라우드를 만들거나 업데이트할 때 다른 환경 파일과 함께 환경 파일을 스택에 추가합니다. 예를 들면 다음과 같습니다.

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

이는 코어 구성이 초기 오버클라우드 생성 또는 후속 업데이트에서 시작되기 전에 모든 컨트롤러 노드에 구성을 적용합니다.

중요

후크당 하나의 Heat 템플릿에만 각 리소스를 등록할 수 있습니다. 후속 사용은 사용할 Heat 템플릿을 재정의합니다.

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

  1. OS::TripleO::ControllerExtraConfigPre 은 Heat 템플릿 컬렉션의 구성 템플릿에 사용되는 director 기반 Heat 리소스입니다. 이 리소스는 각 컨트롤러 노드에 구성을 전달합니다. 기본 ControllerExtraConfigPre 은 빈 값(puppet/extraconfig/pre_deploy/default.yaml)을 생성하는 Heat 템플릿을 나타냅니다. 이 경우 pre_config.yaml 환경 파일은 이 기본값을 자체 nameserver.yaml 파일에 대한 참조로 대체합니다.
  2. 환경 파일은 또한 nameserver_ip 를 환경의 parameter_default 값으로 전달합니다. 이 매개 변수는 이름 서버의 IP 주소를 저장합니다. 그런 다음 nameserver.yaml Heat 템플릿은 parameters 섹션에 정의된 대로 이 매개변수를 허용합니다.
  3. 템플릿은 OS::Heat::SoftwareConfig 를 통해 CustomExtraConfigPre 을 구성 리소스로 정의합니다. 그룹: script 속성을 확인합니다. 그룹 은 Heat의 일련의 후크를 통해 사용할 수 있는 소프트웨어 구성 도구를 정의합니다. 이 경우 스크립트 후크는 SoftwareConfig 리소스에 config 속성으로 정의한 실행 가능한 스크립트를 실행합니다.
  4. 스크립트 자체는 이름 서버 IP 주소를 사용하여 /etc/resolve.conf 를 추가합니다. str_replace 속성을 참조하여 template 섹션의 변수를 params 섹션의 매개 변수로 교체할 수 있습니다. 이 경우 NAMESERVER_IP 를 이름 서버 IP 주소로 설정하여 스크립트에서 동일한 변수를 대체합니다. 그러면 다음 스크립트가 생성됩니다.

    #!/bin/sh
    echo "nameserver 192.168.1.1" >> /etc/resolve.conf

이 예에서는 코어 구성 전에 구성을 정의하고 OS::Heat::SoftwareConfigOS::Heat::SoftwareDeployments 를 사용하여 배포하는 Heat 템플릿을 생성하는 방법을 보여줍니다. 또한 환경 파일에서 매개 변수를 정의하고 구성의 템플릿에 전달하는 방법을 보여줍니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.