4.4. 구성 후: 모든 오버클라우드 역할 사용자 지정
이 문서의 이전 버전에서는 OS::TripleO::Tasks::*PostConfig
리소스를 사용하여 역할별로 사후 구성 후크를 제공했습니다. Heat 템플릿 컬렉션에는 이러한 후크를 전용으로 사용해야 하므로 사용자 지정 용도로 사용해서는 안 됩니다. 대신 여기에 설명된 OS::TripleO::NodeExtraConfigPost
후크를 사용합니다.
오버클라우드 생성을 완료했지만 초기 생성 또는 오버클라우드의 후속 업데이트 시 모든 역할에 구성을 추가하려는 경우 발생할 수 있습니다. 이 경우 다음 구성 후 후크를 사용합니다.
- OS::TripleO::NodeExtraConfigPost
- 핵심 Puppet 구성 후 모든 노드 역할에 적용되는 추가 구성입니다.
이 예제에서는 각 노드에 변수 이름 서버를 사용하여 resolv.conf
파일을 추가합니다.
절차
스크립트를 실행하여 각 노드의
resolv
을 생성합니다..conf 파일을 변수 이름 서버로 추가하는 기본 heat 템플릿 ~/templates/nameserver.
yamlheat_template_version: 2014-10-16 description: > Extra hostname configuration parameters: servers: type: json nameserver_ip: type: string DeployIdentifier: type: string EndpointMap: default: {} type: json 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
리소스의 소프트웨어 구성인 소프트웨어 구성이 실행됩니다. 다음을 확인합니다.-
heat가 적용할 구성을 인식하도록
config
매개변수는CustomExtraConfig
리소스를 참조합니다. -
servers
매개 변수는 Overcloud 노드 맵을 검색합니다. 이 매개 변수는 상위 템플릿에서 제공하며 이 후크의 템플릿에서 필요합니다. -
actions
매개 변수는 구성을 적용할 시기를 정의합니다. 이 경우 오버클라우드가 생성될 때 구성을 적용해야 합니다. 가능한 작업에는CREATE
,UPDATE
,DELETE
,SUSPEND
,RESUME
등이 있습니다. -
input_values
에는 상위 템플릿에서DeployIdentifier
를 저장하는deploy_identifier
라는 매개 변수가 포함되어 있습니다. 이 매개 변수는 각 배포 업데이트의 리소스에 타임스탬프를 제공하여 후속 오버클라우드 업데이트에 리소스가 다시 적용되도록 합니다.
-
heat가 적용할 구성을 인식하도록
heat 템플릿을
OS::TripleO::NodeExtraConfigPost:
리소스 유형으로 등록하는 환경 파일~/templates/post_config.yaml
을 생성합니다.resource_registry: OS::TripleO::NodeExtraConfigPost: /home/stack/templates/nameserver.yaml parameter_defaults: nameserver_ip: 192.168.1.1
다른 환경 파일과 함께 스택에 환경 파일을 추가합니다.
$ openstack overcloud deploy --templates \ ... -e /home/stack/templates/post_config.yaml \ ...
이렇게 하면 초기 오버클라우드 생성 또는 이후 업데이트 시 코어 구성이 완료된 후 모든 노드에 구성이 적용됩니다.
OS::TripleO::NodeExtraConfigPost
를 하나의 heat 템플릿에만 등록할 수 있습니다. 후속 사용은 사용할 heat 템플릿을 재정의합니다.