Red Hat Training

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

4.7. Puppet: 사용자 정의 매니페스트 적용

특정 상황에서는 오버클라우드 노드에 추가 구성 요소를 설치하고 구성해야 할 수 있습니다. 기본 구성이 완료된 후 의 노드에 적용되는 사용자 지정 Puppet 매니페스트를 사용하여 이 작업을 수행할 수 있습니다. 기본 예제에서는 motd 를 각 노드에 설치할 수 있습니다. 이 작업을 수행하는 프로세스는 먼저 Puppet 구성을 시작하는 Heat 템플릿(/home/stack/templates/custom_puppet_config.yaml)을 생성하는 것입니다.

heat_template_version: 2014-10-16

description: >
  Run Puppet extra configuration to set new MOTD

parameters:
  servers:
    type: json

resources:
  ExtraPuppetConfig:
    type: OS::Heat::SoftwareConfig
    properties:
      config: {get_file: motd.pp}
      group: puppet
      options:
        enable_hiera: True
        enable_facter: False

  ExtraPuppetDeployments:
    type: OS::Heat::SoftwareDeploymentGroup
    properties:
      config: {get_resource: ExtraPuppetConfig}
      servers: {get_param: servers}

여기에는 템플릿 내에 /home/stack/templates/motd.pp 이 포함되어 구성을 위해 노드에 전달합니다. motd.pp 파일 자체에는 motd를 설치하고 구성하는 Puppet 클래스가 포함되어 있습니다 .

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

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

마지막으로 오버클라우드 스택을 생성하거나 업데이트할 때 다른 환경 파일과 함께 이 환경 파일을 추가합니다.

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

그러면 motd.pp 의 구성이 Overcloud의 모든 노드에 적용됩니다.

중요

동일한 사용자 지정 hieradata 해시의 여러 인스턴스를 정의하지 마십시오. 동일한 사용자 지정 hieradata의 여러 인스턴스로 인해 Puppet 실행 중에 충돌하여 구성 옵션에 대해 예기치 않은 값이 설정될 수 있습니다.