5.6. post-Configuration: 모든 Overcloud 역할 사용자 정의
이전 버전의 이 문서에서는 OS::TripleO::Tasks::*PostConfig
리소스를 사용하여 역할별로 사후 구성 후크를 제공했습니다. director의 Heat 템플릿 컬렉션에는 이러한 후크를 전용으로 사용해야 하므로 사용자 지정 용도로 사용해서는 안 됩니다. 대신 아래에 설명된 OS::TripleO::NodeExtraConfigPost
후크를 사용하십시오.
Overcloud 생성을 완료했지만 초기 생성 또는 Overcloud 후속 업데이트 시 모든 역할에 추가 구성을 추가하려는 상황이 발생할 수 있습니다. 이 경우 다음 사후 구성 후크를 사용합니다.
- OS::TripleO::NodeExtraConfigPost
- 코어 Puppet 구성 후 모든 노드 역할에 적용되는 추가 구성입니다.
이 예제에서는 먼저 각 노드의 resolv.conf
를 변수 이름 서버에 추가하는 스크립트를 실행하는 기본 heat 템플릿(/home/stack/templates/nameserver.yaml
)을 생성합니다.
이 예에서 resources
섹션에는 다음이 포함됩니다.
- CustomExtraConfig
-
이는 소프트웨어 구성을 정의합니다. 이 예제에서는 Bash
스크립트
를 정의하고 Heat가_NAMESERVER_IP_
를nameserver_ip
매개변수에 저장된 값으로 대체합니다. - CustomExtraDeployments
이 명령은 소프트웨어 구성을 실행합니다. 이 구성은
CustomExtraConfig
리소스의 소프트웨어 구성입니다. 다음을 확인합니다.-
config
매개변수는CustomExtraConfig
리소스를 참조하므로 Heat에서 적용할 구성을 알 수 있습니다. -
servers
매개변수는 Overcloud 노드의 맵을 검색합니다. 이 매개변수는 상위 템플릿에서 제공하며 이 후크의 템플릿에서 필수입니다. -
actions
매개변수는 구성을 적용할 시기를 정의합니다. 이 경우 Overcloud가 생성된 경우에만 구성을 적용합니다. 가능한 작업에는CREATE
,UPDATE
,DELETE
,SUSPEND
및RESUME
가 포함됩니다. -
input_values
에는 상위 템플릿에서DeployIdentifier
를 저장하는deploy_
octets 라는 매개 변수가 포함되어 있습니다. 이 매개변수는 배포 각 업데이트의 리소스에 타임스탬프를 제공합니다. 이렇게 하면 리소스가 후속 오버클라우드 업데이트에 다시 적용됩니다.
-
다음으로 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
resource_registry:
OS::TripleO::NodeExtraConfigPost: /home/stack/templates/nameserver.yaml
parameter_defaults:
nameserver_ip: 192.168.1.1
구성을 적용하려면 오버클라우드를 만들거나 업데이트할 때 다른 환경 파일과 함께 환경 파일을 스택에 추가합니다. 예를 들면 다음과 같습니다.
openstack overcloud deploy --templates \ ...
$ openstack overcloud deploy --templates \
...
-e /home/stack/templates/post_config.yaml \
...
이는 초기 오버클라우드 생성 또는 후속 업데이트 중 하나에서 코어 구성이 완료된 후 모든 노드에 구성을 적용합니다.
OS::TripleO::NodeExtraConfigPost
를 하나의 Heat 템플릿에만 등록할 수 있습니다. 후속 사용은 사용할 Heat 템플릿을 재정의합니다.
이렇게 하면 다음이 수행됩니다.
-
OS::TripleO::NodeExtraConfigPost
는 컬렉션의 구성 후 템플릿에서 사용되는 director 기반 Heat 리소스입니다. 이 리소스는*-post.yaml
템플릿을 통해 각 노드 유형으로 구성을 전달합니다. 기본NodeExtraConfigPost
는 빈 값(extraconfig/post_deploy/default.yaml
)을 생성하는 Heat 템플릿을 나타냅니다. 이 경우post_config.yaml
환경 파일은 이 기본값을 자체nameserver.yaml
파일에 대한 참조로 대체합니다. -
환경 파일은 또한
nameserver_ip
를 환경의parameter_default
값으로 전달합니다. 이 매개 변수는 이름 서버의 IP 주소를 저장합니다. 그런 다음nameserver.yaml
Heat 템플릿은parameters
섹션에 정의된 대로 이 매개변수를 허용합니다. -
템플릿은
OS::Heat::SoftwareConfig
를 통해CustomExtraConfig
를 구성 리소스로 정의합니다.그룹: script
속성을 확인합니다.그룹
은 Heat의 일련의 후크를 통해 사용할 수 있는 소프트웨어 구성 도구를 정의합니다. 이 경우스크립트
후크는SoftwareConfig
리소스에 정의된 실행 가능한 스크립트를config
속성으로 실행합니다. 스크립트 자체는 이름 서버 IP 주소를 사용하여
/etc/resolve.conf
를 추가합니다.str_replace
속성을 참조하여template
섹션의 변수를params
섹션의 매개 변수로 교체할 수 있습니다. 이 경우 NAMESERVER_IP 를 이름 서버 IP 주소로 설정하여 스크립트에서 동일한 변수를 대체합니다. 그러면 다음 스크립트가 생성됩니다.#!/bin/sh echo "nameserver 192.168.1.1" >> /etc/resolve.conf
#!/bin/sh echo "nameserver 192.168.1.1" >> /etc/resolve.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이 예에서는 구성을 정의하고 OS::Heat::SoftwareConfig
및 OS::Heat::SoftwareDeployments
를 사용하여 배포하는 Heat 템플릿을 생성하는 방법을 보여줍니다. 또한 환경 파일에서 매개 변수를 정의하고 구성의 템플릿에 전달하는 방법을 보여줍니다.