7.2. 역할
7.2.1. roles_data 파일 검사 링크 복사링크가 클립보드에 복사되었습니다!
Overcloud 생성 프로세스는 roles_data
파일을 사용하여 역할을 정의합니다. roles_data
파일에는 YAML 형식의 역할 목록이 포함되어 있습니다. 다음은 roles_data
구문의 단축된 예입니다.
코어 Heat 템플릿 컬렉션에는 /usr/share/openstack-tripleo-heat-templates/roles_data.yaml에 있는 기본
포함되어 있습니다. 기본 파일은 다음 역할 유형을 정의합니다.
roles_data
파일이
-
컨트롤러
-
Compute
-
BlockStorage
-
ObjectStorage
-
CephStorage
.
openstack overcloud deploy
명령에는 배포 중에 이 파일이 포함됩니다. r 인수를
사용하여 이 파일을 사용자 지정 roles_data
파일로 재정의할 수 있습니다. 예를 들면 다음과 같습니다.
openstack overcloud deploy --templates -r ~/templates/roles_data-custom.yaml
$ openstack overcloud deploy --templates -r ~/templates/roles_data-custom.yaml
7.2.2. roles_data 파일 생성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 지정 roles_data
파일을 수동으로 생성할 수 있지만 개별 역할 템플릿을 사용하여 파일을 자동으로 생성할 수도 있습니다. director는 역할 템플릿을 관리하고 사용자 지정 roles_data
파일을 자동으로 생성하는 여러 명령을 제공합니다.
기본 역할 템플릿을 나열하려면 openstack overcloud role list
명령을 사용합니다.
역할의 YAML 정의를 보려면 openstack overcloud role show
명령을 사용합니다.
openstack overcloud role show Compute
$ openstack overcloud role show Compute
사용자 지정 roles_data
파일을 생성하려면 openstack overcloud roles generate
명령을 사용하여 사전 정의된 여러 역할을 하나의 파일에 결합합니다. 예를 들어 다음 명령은 Controller
,Compute
및 Networker
역할을 단일 파일에 결합합니다.
openstack overcloud roles generate -o ~/roles_data.yaml Controller Compute Networker
$ openstack overcloud roles generate -o ~/roles_data.yaml Controller Compute Networker
o는 생성할 파일의 이름을 정의합니다
.
이렇게 하면 사용자 지정 roles_data
파일이 생성됩니다. 그러나 이전 예제에서는 모두 동일한 네트워킹 에이전트를 포함하는 Controller
및 Networker
역할을 사용합니다. 즉, 네트워킹 서비스가 컨트롤러에서
Networker
역할로 확장됩니다. Overcloud에서 컨트롤러
노드와 네트워크 노드
간에 네트워킹 서비스에 대한 부하를 분산합니다.
이 Networker
역할을 독립 실행형으로 만들려면 고유한 사용자 지정 컨트롤러
역할과 필요한 다른 역할을 만들 수 있습니다. 이를 통해 사용자 지정 역할에서 roles_data
파일을 쉽게 생성할 수 있습니다.
코어 Heat 템플릿 컬렉션의 디렉터리를 stack
사용자의 홈 디렉터리에 복사합니다.
cp -r /usr/share/openstack-tripleo-heat-templates/roles ~/.
$ cp -r /usr/share/openstack-tripleo-heat-templates/roles ~/.
이 디렉터리에서 사용자 지정 역할 파일을 추가하거나 수정합니다. 앞에서 언급한 역할 하위 명령과 함께 --roles-path
옵션을 사용하여 이 디렉터리를 사용자 지정 역할의 소스로 사용합니다. 예를 들면 다음과 같습니다.
openstack overcloud roles generate -o my_roles_data.yaml \ --roles-path ~/roles \ Controller Compute Networker
$ openstack overcloud roles generate -o my_roles_data.yaml \
--roles-path ~/roles \
Controller Compute Networker
그러면 ~/
파일이 생성됩니다.
roles 디렉터리의 개별 역할에서 하나의 my_roles
_data.yaml
기본 역할 컬렉션에는 ControllerOpenStack
역할도 포함되어 있으며, 이 역할은 Networker
,Messaging
및 Database
역할에 대한 서비스가 포함되지 않습니다. 독립 실행형 Networker
,Messaging
및 Database
역할과 결합된 ControllerOpenStack
을 사용할 수 있습니다.
7.2.3. 지원되는 사용자 지정 역할 링크 복사링크가 클립보드에 복사되었습니다!
다음 표는 /usr/share/openstack-tripleo-heat-templates/roles
에서 사용할 수 있는 모든 지원되는 역할에 대해 설명합니다.
Role | 설명 | 파일 |
---|---|---|
| OpenStack Block Storage(cinder) 노드. |
|
| 전체 독립 실행형 Ceph Storage 노드. OSD, MON, Object Gateway(RGW), Object Operations(MDS), Manager(MGR) 및 RBD Mirroring이 포함됩니다. |
|
| 독립 실행형 스케일 아웃 Ceph Storage 파일 역할. OSD 및 MDS(Object Operations) 포함. |
|
| 독립형 스케일 아웃 Ceph Storage 오브젝트 역할. OSD 및 개체 게이트웨이(RGW)를 포함합니다. |
|
| Ceph Storage OSD 노드 역할. |
|
| 대체 컴퓨팅 노드 역할. |
|
| DVR이 활성화된 컴퓨팅 노드 역할. |
|
| 하이퍼컨버지드 인프라를 사용하는 계산 노드. 계산 및 Ceph OSD 서비스가 포함되어 있습니다. |
|
|
Compute Instance HA 노드 역할. environment |
|
| Caviumio Smart NIC가 있는 계산 노드. |
|
| Compute OVS DPDK RealTime 역할. |
|
| 컴퓨팅 OVS DPDK 역할. |
|
| ppc64le 서버의 컴퓨팅 역할. |
|
|
실시간 동작을 위해 최적화된 컴퓨팅 역할. 이 역할을 사용하는 경우 |
|
| 컴퓨팅 SR-IOV RealTime 역할. |
|
| 컴퓨팅 SR-IOV 역할. |
|
| 표준 컴퓨팅 노드 역할. |
|
|
데이터베이스, 메시징, 네트워킹 및 OpenStack 계산(nova) 제어 구성 요소를 포함하지 않는 컨트롤러 역할. |
|
| 핵심 컨트롤러 서비스가 로드되었지만 Ceph 스토리지(MON) 구성 요소가 없는 컨트롤러 역할. 이 역할은 Ceph Storage 기능이 아닌 데이터베이스, 메시징 및 네트워크 기능을 처리합니다. |
|
|
OpenStack Compute(nova) 제어 구성 요소를 포함하지 않는 컨트롤러 역할. |
|
|
데이터베이스, 메시징 및 네트워킹 구성 요소를 포함하지 않는 컨트롤러 역할. |
|
| 모든 핵심 서비스가 로드되고 Ceph NFS를 사용하는 컨트롤러 역할. 이 역할은 데이터베이스, 메시징 및 네트워크 기능을 처리합니다. |
|
| 모든 핵심 서비스가 로드된 컨트롤러 역할. 이 역할은 데이터베이스, 메시징 및 네트워크 기능을 처리합니다. |
|
| 독립 실행형 데이터베이스 역할. Pacemaker를 사용하여 Galera 클러스터로 관리되는 데이터베이스. |
|
| 하이퍼컨버지드 인프라 및 모든 Ceph Storage 서비스가 포함된 계산 노드. OSD, MON, Object Gateway(RGW), Object Operations(MDS), Manager(MGR) 및 RBD Mirroring이 포함됩니다. |
|
| 하이퍼컨버지드 인프라 및 Ceph Storage 파일 서비스가 포함된 계산 노드. OSD 및 MDS(Object Operations) 포함. |
|
| 하이퍼컨버지드 인프라 및 Ceph Storage 블록 서비스가 포함된 계산 노드. OSD, MON, Manager가 포함됩니다. |
|
| 하이퍼컨버지드 인프라 및 Ceph Storage 오브젝트 서비스가 포함된 계산 노드. OSD 및 개체 게이트웨이(RGW)를 포함합니다. |
|
| Ironic Conductor 노드 역할. |
|
| 독립 실행형 메시징 역할. Pacemaker로 관리되는 RabbitMQ. |
|
| 독립 실행형 네트워킹 역할. OpenStack 네트워킹(neutron) 에이전트를 자체적으로 실행합니다. 배포에서 ML2/OVN 메커니즘 드라이버를 사용하는 경우 ML2/OVN을 사용하여 사용자 지정 역할 배포의 추가 단계를 참조하십시오. |
|
|
OpenStack Compute(nova) 제어 에이전트를 자체적으로 실행하는 독립 실행형 |
|
| Swift 오브젝트 스토리지 노드 역할. |
|
| 모든 지표 및 알람 서비스가 포함된 원격 분석 역할. |
|
7.2.4. 역할 매개 변수 검사 링크 복사링크가 클립보드에 복사되었습니다!
각 역할은 다음 매개변수를 사용합니다.
- name
-
(필수) 공백이나 특수 문자가 없는 일반 텍스트 이름인 역할의 이름입니다. 선택한 이름이 다른 리소스와 충돌하지 않는지 확인합니다. 예를 들어
Network 대신
를 사용합니다.Network
er - description
- (선택 사항) 역할에 대한 일반 텍스트 설명입니다.
- tags
(선택 사항) 역할 속성을 정의하는 YAML 태그 목록입니다. 이 매개변수를 사용하여
컨트롤러와
기본 태그 둘 다로기본
역할을 정의합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
기본 역할에 태그를 지정하지 않으면 정의된 첫 번째 역할이 기본 역할이 됩니다. 이 역할이 Controller 역할인지 확인합니다.
- 네트워크
역할에 구성할 네트워크의 YAML 목록입니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본 네트워크에는
External
,InternalApi
,Storage, Storage
Mgmt
,Tenant
및Management
가 포함됩니다.- CountDefault
- (선택 사항) 이 역할에 배포할 기본 노드 수를 정의합니다.
- HostnameFormatDefault
(선택 사항) 역할에 대한 기본 호스트 이름 형식을 정의합니다. 기본 명명 규칙은 다음 형식을 사용합니다.
[STACK NAME]-[ROLE NAME]-[NODE ID]
[STACK NAME]-[ROLE NAME]-[NODE ID]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어 기본 컨트롤러 노드의 이름은 다음과 같습니다.
overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ...
overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - disable_constraints
- (선택 사항) director와 함께 배포할 때 OpenStack Compute(nova) 및 OpenStack Image Storage(glance) 제약 조건을 비활성화할지 여부를 정의합니다. 사전 프로비저닝된 노드가 있는 오버클라우드를 배포할 때 사용합니다. 자세한 내용은 Director 설치 및 사용 가이드 의 "사전 프로비저닝된 노드를 사용하여 기본 Overcloud 구성" 을 참조하십시오.
- disable_upgrade_deployment
- (선택 사항) 특정 역할에 대한 업그레이드를 비활성화할지 여부를 정의합니다. 이렇게 하면 역할에서 개별 노드를 업그레이드하고 서비스 가용성을 보장할 수 있습니다. 예를 들어 Compute 및 Swift Storage 역할은 이 매개 변수를 사용합니다.
- update_serial
(선택 사항) OpenStack 업데이트 옵션 중에 동시에 업데이트할 노드 수를 정의합니다. 기본
roles_data.yaml
파일에서 다음을 수행합니다.-
기본값은 Controller, Object Storage 및 Ceph Storage 노드의 경우
1
입니다. -
Compute 및 Block Storage 노드의 기본값은
25
입니다.
사용자 지정 역할에서 이 매개변수를 생략하면 기본값은
1
입니다.-
기본값은 Controller, Object Storage 및 Ceph Storage 노드의 경우
- ServicesDefault
- (선택 사항) 노드에 포함할 기본 서비스 목록을 정의합니다. 자세한 내용은 7.3.2절. “구성 가능한 서비스 아키텍처 검사”를 참조하십시오.
이러한 매개 변수는 새 역할을 생성하고 포함할 서비스를 정의하는 방법을 제공합니다.
openstack overcloud deploy
명령은 roles_data
파일의 매개 변수를 Jinja2 기반 템플릿에 통합합니다. 예를 들어 특정 지점에서 overcloud.j2.yaml
Heat 템플릿은 roles_data.yaml
의 역할 목록을 반복하고 각 역할과 관련된 매개 변수와 리소스를 생성합니다.
overcloud.j2.yaml
Heat 템플릿의 각 역할에 대한 리소스 정의가 다음 코드 조각으로 표시됩니다.
이 코드 조각은 Jinja2 기반 템플릿이 {{role.name}}
변수를 통합하여 각 역할의 이름을 OS::Heat::ResourceGroup
리소스로 정의하는 방법을 보여줍니다. 그런 다음 roles_data
파일의 각 name
매개변수를 사용하여 각각의 OS::Heat::ResourceGroup
리소스 이름을 지정합니다.
7.2.5. 새 역할 생성 링크 복사링크가 클립보드에 복사되었습니다!
이 예에서 목표는 OpenStack 대시보드( Horizonizon
역할을 생성하는 것입니다. 이 경우 새 )
만 호스팅하는 새 Horizon역할
정보가 포함된 사용자 지정 역할 디렉터리를 생성합니다.
기본 역할
디렉터리의 사용자 지정 사본을 생성합니다.
cp -r /usr/share/openstack-tripleo-heat-templates/roles ~/.
$ cp -r /usr/share/openstack-tripleo-heat-templates/roles ~/.
~/roles/Horizon.yaml
이라는 새 파일을 생성하고 기본 및 핵심 OpenStack 대시보드 서비스를 포함하는 새 Horizon
역할을 만듭니다. 예를 들면 다음과 같습니다.
또한 기본 Overcloud에 항상 Horizon
노드를 포함하도록 CountDefault
를 1
로 설정하는 것이 좋습니다.
기존 오버클라우드에서 서비스를 확장하는 경우 기존 서비스를 Controller
역할에 유지합니다. 새 오버클라우드를 생성하고 OpenStack 대시보드를 독립 실행형 역할에 유지하려면 컨트롤러
역할 정의에서 OpenStack 대시보드 구성 요소를 제거합니다.
roles 디렉터리를 소스로 사용하여 새
파일을 생성합니다.
roles
_data
openstack overcloud roles generate -o roles_data-horizon.yaml \ --roles-path ~/roles \ Controller Compute Horizon
$ openstack overcloud roles generate -o roles_data-horizon.yaml \
--roles-path ~/roles \
Controller Compute Horizon
특정 노드에 태그를 지정할 수 있도록 이 역할에 대한 새 플레이버를 정의해야 할 수 있습니다. 이 예에서는 다음 명령을 사용하여 Horizon
플레이버를 생성합니다.
openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 horizon openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="horizon" horizon openstack flavor set --property resources:VCPU=0 --property resources:MEMORY_MB=0 --property resources:DISK_GB=0 --property resources:CUSTOM_BAREMETAL=1 horizon
$ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 horizon
$ openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="horizon" horizon
$ openstack flavor set --property resources:VCPU=0 --property resources:MEMORY_MB=0 --property resources:DISK_GB=0 --property resources:CUSTOM_BAREMETAL=1 horizon
다음 명령을 사용하여 노드를 새 플레이버에 태그합니다.
openstack baremetal node set --property capabilities='profile:horizon,boot_option:local' 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13
$ openstack baremetal node set --property capabilities='profile:horizon,boot_option:local' 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13
다음 환경 파일 스니펫을 사용하여 Horizon 노드 수 및 플레이버를 정의합니다.
parameter_defaults: OvercloudHorizonFlavor: horizon HorizonCount: 1
parameter_defaults:
OvercloudHorizonFlavor: horizon
HorizonCount: 1
openstack overcloud deploy
명령을 실행할 때 새 roles_data
파일 및 환경 파일을 포함합니다. 예를 들면 다음과 같습니다.
openstack overcloud deploy --templates -r ~/templates/roles_data-horizon.yaml -e ~/templates/node-count-flavor.yaml
$ openstack overcloud deploy --templates -r ~/templates/roles_data-horizon.yaml -e ~/templates/node-count-flavor.yaml
배포가 완료되면 컨트롤러 노드 1개, 컴퓨팅 노드 1개, Networker 노드 1개로 구성된 3노드 Overcloud가 생성됩니다. 오버클라우드의 노드 목록을 보려면 다음 명령을 실행합니다.
openstack server list
$ openstack server list