10.3. 구성 후크
구성 후크를 사용하여 고유한 사용자 지정 구성 기능을 오버클라우드 배포 프로세스에 삽입합니다. 후크를 생성하여 기본 오버클라우드 서비스 구성 전후에 사용자 지정 구성을 삽입하고 수정 및 Puppet 기반 구성을 포함하여 후크를 삽입할 수 있습니다.
10.3.1. 사전 구성: 특정 오버클라우드 역할 사용자 지정 링크 복사링크가 클립보드에 복사되었습니다!
오버클라우드는 OpenStack 구성 요소의 핵심 구성에 Puppet을 사용합니다. director는 코어 구성이 시작되기 전에 특정 노드 역할에 대한 사용자 정의 구성을 수행하는 데 사용할 수 있는 후크 세트를 제공합니다. 이러한 후크에는 다음 구성이 포함됩니다.
이 문서의 이전 버전에서는 OS::TripleO::Tasks::*PreConfig 리소스를 사용하여 역할별로 사전 구성 후크를 제공했습니다. Heat 템플릿 컬렉션에는 이러한 후크를 전용으로 사용해야 하므로 사용자 지정 용도로 사용해서는 안 됩니다. 대신 여기에 설명된 OS::TripleO::*ExtraConfigPre 후크를 사용합니다.
- OS::TripleO::ControllerExtraConfigPre
- 핵심 Puppet 구성 전에 컨트롤러 노드에 적용된 추가 구성입니다.
- OS::TripleO::ComputeExtraConfigPre
- 핵심 Puppet 구성 전에 컴퓨팅 노드에 추가 구성이 적용됩니다.
- OS::TripleO::CephStorageExtraConfigPre
- 코어 Puppet 구성 전에 Ceph Storage 노드에 적용된 추가 구성입니다.
- OS::TripleO::ObjectStorageExtraConfigPre
- 코어 Puppet 구성 전에 Object Storage 노드에 적용된 추가 구성입니다.
- OS::TripleO::BlockStorageExtraConfigPre
- 핵심 Puppet 구성 전에 Block Storage 노드에 적용되는 추가 구성입니다.
- OS::TripleO::[ROLE]ExtraConfigPre
-
코어 Puppet 구성 전에 사용자 지정 노드에 추가 구성이 적용됩니다.
[ROLE]을 구성 가능 역할 이름으로 교체합니다.
이 예제에서는 특정 역할의 모든 노드에 변수 이름 서버를 추가합니다.
절차
스크립트를 실행하여 노드의
resolv.conf파일에 변수 이름 서버를 작성하는 기본 heat 템플릿~/templates/nameserver.yaml을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서
resources섹션에는 다음 매개변수가 포함되어 있습니다.- CustomExtraConfigPre
-
소프트웨어 구성을 정의합니다. 이 예제에서는 Bash
스크립트를 정의하고 heat는_NAMESERVER_IP_를nameserver_ip매개변수에 저장된 값으로 대체합니다. - CustomExtraDeploymentPre
그러면
CustomExtraConfigPre리소스의 소프트웨어 구성인 소프트웨어 구성이 실행됩니다. 다음을 확인합니다.-
heat가 적용할 구성을 인식하도록
config매개변수는CustomExtraConfigPre리소스를 참조합니다. -
server매개 변수는 Overcloud 노드 맵을 검색합니다. 이 매개 변수는 상위 템플릿에서 제공하며 이 후크의 템플릿에서 필요합니다. -
actions매개 변수는 구성을 적용할 시기를 정의합니다. 오버클라우드가 생성될 때 설정을 적용하려면 기본CREATE값을 사용합니다. -
input_values에는 상위 템플릿에서DeployIdentifier를 저장하는deploy_identifier라는 매개 변수가 포함되어 있습니다. 이 매개 변수는 각 배포 업데이트의 리소스에 타임스탬프를 제공하여 후속 오버클라우드 업데이트에 리소스가 다시 적용되도록 합니다.
-
heat가 적용할 구성을 인식하도록
heat 템플릿을 역할 기반 리소스 유형에 등록하는 환경 파일
~/templates/pre_config.yaml을 생성합니다. 예를 들어 컨트롤러 노드에만 구성을 적용하려면ControllerExtraConfigPre후크를 사용합니다.resource_registry: OS::TripleO::ControllerExtraConfigPre: /home/stack/templates/nameserver.yaml parameter_defaults: nameserver_ip: 192.168.1.1
resource_registry: OS::TripleO::ControllerExtraConfigPre: /home/stack/templates/nameserver.yaml parameter_defaults: nameserver_ip: 192.168.1.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다른 환경 파일과 함께 스택에 환경 파일을 추가합니다.
openstack overcloud deploy --templates \ ...$ openstack overcloud deploy --templates \ ... -e /home/stack/templates/pre_config.yaml \ ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 그러면 초기 오버클라우드 생성 또는 이후 업데이트에서 코어 구성이 시작되기 전에 모든 컨트롤러 노드에 구성이 적용됩니다.
후크당 하나의 heat 템플릿에만 각 리소스를 등록할 수 있습니다. 후속 사용은 사용할 heat 템플릿을 재정의합니다.
10.3.2. 사전 구성: 모든 오버클라우드 역할 사용자 지정 링크 복사링크가 클립보드에 복사되었습니다!
오버클라우드는 OpenStack 구성 요소의 핵심 구성에 Puppet을 사용합니다. director는 코어 구성이 시작되기 전에 모든 노드 유형을 설정하는 데 사용할 수 있는 후크를 제공합니다.
- OS::TripleO::NodeExtraConfig
- 핵심 Puppet 구성 전에 모든 노드 역할에 적용되는 추가 구성입니다.
이 예제에서는 각 노드에 변수 이름 서버를 사용하여 resolv.conf 파일을 추가합니다.
절차
스크립트를 실행하여 변수 이름 서버를 사용하여 각 노드의
resolv.conf파일을 추가하는 기본 heat 템플릿~/templates/nameserver.yaml을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서
resources섹션에는 다음 매개변수가 포함되어 있습니다.- CustomExtraConfigPre
-
이 매개 변수는 소프트웨어 구성을 정의합니다. 이 예제에서는 Bash
스크립트를정의하고 heat는_NAMESERVER_IP_를nameserver_ip매개 변수에 저장된 값으로 바꿉니다. - CustomExtraDeploymentPre
이 매개 변수는
CustomExtraConfigPre리소스의 소프트웨어 구성인 소프트웨어 구성을 실행합니다. 다음을 확인합니다.-
heat가 적용할 구성을 인식하도록
config매개변수는CustomExtraConfigPre리소스를 참조합니다. -
server매개 변수는 Overcloud 노드 맵을 검색합니다. 이 매개 변수는 상위 템플릿에서 제공하며 이 후크의 템플릿에서 필요합니다. -
actions매개 변수는 구성을 적용할 시기를 정의합니다. 오버클라우드가 생성될 때 설정을 적용하려면 기본CREATE값을 사용합니다. -
input_values매개 변수에는 상위 템플릿에서DeployIdentifier를 저장하는deploy_identifier라는 하위 매개 변수가 포함되어 있습니다. 이 매개 변수는 각 배포 업데이트의 리소스에 타임스탬프를 제공하여 후속 오버클라우드 업데이트에 리소스가 다시 적용되도록 합니다.
-
heat가 적용할 구성을 인식하도록
heat 템플릿을
OS::TripleO::NodeExtraConfig리소스 유형으로 등록하는 환경 파일~/templates/pre_config.yaml을 생성합니다.resource_registry: OS::TripleO::NodeExtraConfig: /home/stack/templates/nameserver.yaml parameter_defaults: nameserver_ip: 192.168.1.1
resource_registry: OS::TripleO::NodeExtraConfig: /home/stack/templates/nameserver.yaml parameter_defaults: nameserver_ip: 192.168.1.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다른 환경 파일과 함께 스택에 환경 파일을 추가합니다.
openstack overcloud deploy --templates \ ...$ openstack overcloud deploy --templates \ ... -e /home/stack/templates/pre_config.yaml \ ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이렇게 하면 초기 오버클라우드 생성 또는 이후 업데이트에서 코어 구성이 시작되기 전에 모든 노드에 구성이 적용됩니다.
OS::TripleO::NodeExtraConfig 를 하나의 heat 템플릿에만 등록할 수 있습니다. 후속 사용은 사용할 heat 템플릿을 재정의합니다.
10.3.3. 구성 후: 모든 오버클라우드 역할 사용자 지정 링크 복사링크가 클립보드에 복사되었습니다!
이 문서의 이전 버전에서는 OS::TripleO::Tasks::*PostConfig 리소스를 사용하여 역할별로 사후 구성 후크를 제공했습니다. Heat 템플릿 컬렉션에는 이러한 후크를 전용으로 사용해야 하므로 사용자 지정 용도로 사용해서는 안 됩니다. 대신 여기에 설명된 OS::TripleO::NodeExtraConfigPost 후크를 사용합니다.
오버클라우드 생성을 완료했지만 초기 생성 또는 오버클라우드의 후속 업데이트 시 모든 역할에 구성을 추가하려는 경우 발생할 수 있습니다. 이 경우 다음 구성 후 후크를 사용합니다.
- OS::TripleO::NodeExtraConfigPost
- 코어 Puppet 구성 후 모든 노드 역할에 적용되는 추가 구성입니다.
이 예제에서는 각 노드에 변수 이름 서버를 사용하여 resolv.conf 파일을 추가합니다.
절차
스크립트를 실행하여 변수 이름 서버를 사용하여 각 노드의
resolv.conf파일을 추가하는 기본 heat 템플릿~/templates/nameserver.yaml을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서
resources섹션에는 다음 매개변수가 포함되어 있습니다.- CustomExtraConfig
-
소프트웨어 구성을 정의합니다. 이 예제에서는 Bash
스크립트를정의하고 heat는_NAMESERVER_IP_를nameserver_ip매개 변수에 저장된 값으로 바꿉니다. - CustomExtraDeployments
그러면
CustomExtraConfig리소스의 소프트웨어 구성인 소프트웨어 구성이 실행됩니다. 다음을 확인합니다.-
heat가 적용할 구성을 인식하도록
config매개변수는CustomExtraConfig리소스를 참조합니다. -
servers매개 변수는 오버클라우드 노드 맵을 검색합니다. 이 매개 변수는 상위 템플릿에서 제공하며 이 후크의 템플릿에서 필요합니다. -
actions매개 변수는 구성을 적용할 시기를 정의합니다. 오버클라우드가 생성될 때 설정을 적용하려면 기본CREATE값을 사용합니다. -
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
resource_registry: OS::TripleO::NodeExtraConfigPost: /home/stack/templates/nameserver.yaml parameter_defaults: nameserver_ip: 192.168.1.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다른 환경 파일과 함께 스택에 환경 파일을 추가합니다.
openstack overcloud deploy --templates \ ...$ openstack overcloud deploy --templates \ ... -e /home/stack/templates/post_config.yaml \ ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이렇게 하면 초기 오버클라우드 생성 또는 이후 업데이트 시 코어 구성이 완료된 후 모든 노드에 구성이 적용됩니다.
OS::TripleO::NodeExtraConfigPost 를 하나의 heat 템플릿에만 등록할 수 있습니다. 후속 사용은 사용할 heat 템플릿을 재정의합니다.
10.3.4. Puppet: 역할에 대한 hieradata 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
heat 템플릿 컬렉션에는 특정 노드 유형에 추가 구성을 전달하는 데 사용할 수 있는 매개변수 세트가 포함되어 있습니다. 이러한 매개변수는 노드에서 Puppet 구성에 대한 hieradata로 구성을 저장합니다.
- ControllerExtraConfig
- 모든 컨트롤러 노드에 추가할 구성입니다.
- ComputeExtraConfig
- 모든 컴퓨팅 노드에 추가할 구성입니다.
- BlockStorageExtraConfig
- 모든 블록 스토리지 노드에 추가할 구성입니다.
- ObjectStorageExtraConfig
- 모든 Object Storage 노드에 추가할 구성입니다.
- CephStorageExtraConfig
- 모든 Ceph Storage 노드에 추가할 구성입니다.
- [ROLE]ExtraConfig
-
구성 가능 역할에 추가할 구성입니다.
[ROLE]을 구성 가능 역할 이름으로 교체합니다. - ExtraConfig
- 모든 노드에 추가할 구성입니다.
절차
배포 후 구성 프로세스에 구성을 추가하려면
parameter_defaults섹션에 이러한 매개 변수를 포함하는 환경 파일을 생성합니다. 예를 들어 Compute 호스트의 예약된 메모리를 1024MB로 늘리고 VNC 키맵을 일본어로 설정하려면ComputeExtraConfig매개변수에서 다음 항목을 사용합니다.parameter_defaults: ComputeExtraConfig: nova::compute::reserved_host_memory: 1024 nova::compute::vnc_keymap: japarameter_defaults: ComputeExtraConfig: nova::compute::reserved_host_memory: 1024 nova::compute::vnc_keymap: jaCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
배포와 관련된 기타 환경 파일과 함께
openstack overcloud deploy명령에 이 환경 파일을 포함합니다.
각 매개 변수를 한 번만 정의할 수 있습니다. 후속 사용은 이전 값을 재정의합니다.
10.3.5. Puppet: 개별 노드에 대한 hieradata 사용자 정의 링크 복사링크가 클립보드에 복사되었습니다!
heat 템플릿 컬렉션을 사용하여 개별 노드에 Puppet hieradata를 설정할 수 있습니다.
절차
노드의 인트로스펙션 데이터에서 시스템 UUID를 식별합니다.
openstack baremetal introspection data save 9dcc87ae-4c6d-4ede-81a5-9b20d7dc4a14 | jq .extra.system.product.uuid
$ openstack baremetal introspection data save 9dcc87ae-4c6d-4ede-81a5-9b20d7dc4a14 | jq .extra.system.product.uuidCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 시스템 UUID를 반환합니다. 예를 들면 다음과 같습니다.
"f5055c6c-477f-47fb-afe5-95c6928c407f"
"f5055c6c-477f-47fb-afe5-95c6928c407f"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 환경 파일을 생성하여 노드별 hieradata를 정의하고
per_node.yaml템플릿을 사전 구성 후크에 등록합니다.NodeDataLookup매개변수에 구성할 노드의 시스템 UUID를 포함합니다.resource_registry: OS::TripleO::ComputeExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/pre_deploy/per_node.yaml parameter_defaults: NodeDataLookup: '{"f5055c6c-477f-47fb-afe5-95c6928c407f": {"nova::compute::vcpu_pin_set": [ "2", "3" ]}}'resource_registry: OS::TripleO::ComputeExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/pre_deploy/per_node.yaml parameter_defaults: NodeDataLookup: '{"f5055c6c-477f-47fb-afe5-95c6928c407f": {"nova::compute::vcpu_pin_set": [ "2", "3" ]}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
배포와 관련된 기타 환경 파일과 함께
openstack overcloud deploy명령에 이 환경 파일을 포함합니다.
per_node.yaml 템플릿은 각 시스템 UUID에 해당하는 노드에 hieradata 파일 세트를 생성하고 사용자가 정의한 hieradata를 포함합니다. UUID가 정의되지 않은 경우 결과 hieradata 파일이 비어 있습니다. 이 예에서 per_node.yaml 템플릿은 OS::TripleO::ComputeExtraConfigPre 후크에서 정의한 모든 컴퓨팅 노드에서 실행되지만 시스템 UUID가 f5055c6c-477f-47fb-afe5-95c6928c407f 인 컴퓨팅 노드만 hieradata를 수신합니다.
이 메커니즘을 사용하여 특정 요구 사항에 따라 각 노드를 조정할 수 있습니다.
10.3.6. Puppet: 사용자 정의 매니페스트 적용 링크 복사링크가 클립보드에 복사되었습니다!
특정 상황에서는 오버클라우드 노드에 몇 가지 추가 구성 요소를 설치하고 설정해야 할 수 있습니다. 기본 구성이 완료된 후 노드에 적용되는 사용자 정의 Puppet 매니페스트를 사용하여 이 작업을 수행할 수 있습니다. 기본 예에서는 각 노드에 motd 를 설치할 수 있습니다.
절차
Puppet 구성을 시작하는 heat 템플릿
~/templates/custom_puppet_config.yaml을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에는 템플릿에
/home/stack/templates/motd.pp이 포함되어 있으며 구성을 위해 노드에 전달합니다.motd.pp파일에는motd를 설치하고 구성하는 데 필요한 Puppet 클래스가 포함되어 있습니다.heat 템플릿을
OS::TripleO::NodeExtraConfigPost:리소스 유형으로 등록하는 환경 파일~templates/puppet_post_config.yaml을 생성합니다.resource_registry: OS::TripleO::NodeExtraConfigPost: /home/stack/templates/custom_puppet_config.yaml
resource_registry: OS::TripleO::NodeExtraConfigPost: /home/stack/templates/custom_puppet_config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 배포와 관련된 기타 환경 파일과 함께
openstack overcloud deploy명령에 이 환경 파일을 포함합니다.openstack overcloud deploy --templates \ ...$ openstack overcloud deploy --templates \ ... -e /home/stack/templates/puppet_post_config.yaml \ ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 그러면
motd.pp의 구성이 오버클라우드의 모든 노드에 적용됩니다.