9장. Ansible을 사용하여 Red Hat OpenStack Platform 구성 및 관리
Ansible을 사용하여 오버클라우드를 구성 및 등록하고 컨테이너를 관리할 수 있습니다.
9.1. Ansible 기반 오버클라우드 등록 링크 복사링크가 클립보드에 복사되었습니다!
director는 Ansible 기반 방법을 사용하여 오버클라우드 노드를 Red Hat Customer Portal 또는 Red Hat Satellite Server에 등록합니다.
i:f 이전 Red Hat OpenStack Platform 버전의 rhel-registration 방법을 사용한 경우 이를 비활성화하고 Ansible 기반 방법으로 전환해야 합니다. 자세한 내용은 9.1.6절. “rhsm 구성 가능 서비스로 전환” 및 9.1.7절. “rhel-registration to rhsm mappings”을 참조하십시오.
director 기반 등록 방법 외에도 배포 후 수동으로 등록할 수도 있습니다. 자세한 내용은 다음을 참조하십시오. 9.1.9절. “Ansible 기반 등록 수동 실행”
9.1.1. RHSM(Red Hat Subscription Manager) 구성 가능 서비스 링크 복사링크가 클립보드에 복사되었습니다!
rhsm 구성 가능 서비스를 사용하여 Ansible을 통해 오버클라우드 노드를 등록할 수 있습니다. 기본 roles_data 파일의 각 역할에는 기본적으로 비활성화된 OS::TripleO::Services::Rhsm 리소스가 포함되어 있습니다. 서비스를 활성화하려면 리소스를 rhsm 구성 가능 서비스 파일에 등록합니다.
resource_registry:
OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/deployment/rhsm/rhsm-baremetal-ansible.yaml
The rhsm 구성 가능 서비스는 RhsmVars 매개변수를 사용할 수 있으며, 등록과 관련된 여러 하위 매개변수를 정의하는 데 사용할 수 있습니다.
parameter_defaults:
RhsmVars:
rhsm_repos:
- rhel-9-for-x86_64-baseos-e4s-rpms
- rhel-9-for-x86_64-appstream-e4s-rpms
- rhel-9-for-x86_64-highavailability-e4s-rpms
…
rhsm_username: "myusername"
rhsm_password: "p@55w0rd!"
rhsm_org_id: "1234567"
rhsm_release: 9.2
또한 RhsmVars 매개변수(예: ControllerParameters )와 함께 사용하여 다른 노드 유형에 대한 특정 리포지토리를 활성화할 때 유연성을 제공할 수 있습니다.
RhsmVars 하위 매개변수
rhsm 구성 가능 서비스를 구성할 때 RhsmVars 매개변수의 일부로 다음 하위 매개변수를 사용합니다. 사용 가능한 Ansible 매개변수에 대한 자세한 내용은 역할 설명서 를 참조하십시오.
rhsm | 설명 |
|---|---|
|
|
등록 방법을 선택합니다. |
|
|
등록에 사용하려는 조직입니다. 이 ID를 찾으려면 언더클라우드 노드에서 |
|
|
사용하려는 서브스크립션 풀 ID입니다. 서브스크립션을 자동 첨부하지 않으려면 이 매개변수를 사용합니다. 이 ID를 찾으려면 언더클라우드 노드에서 |
|
| 등록에 사용할 활성화 키입니다. |
|
|
이 매개변수를 사용하여 호환 가능한 서브스크립션을 이 시스템에 자동으로 첨부합니다. 이 기능을 활성화하려면 값을 |
|
| 콘텐츠를 가져오는 기본 URL입니다. 기본 URL은 Red Hat Content Delivery Network입니다. Satellite 서버를 사용하는 경우 이 값을 Satellite 서버 콘텐츠 리포지토리의 기본 URL로 변경합니다. |
|
| 등록을 위한 서브스크립션 관리 서비스의 호스트 이름입니다. 기본값은 Red Hat 서브스크립션 관리 호스트 이름입니다. Satellite 서버를 사용하는 경우 이 값을 Satellite 서버 호스트 이름으로 변경합니다. |
|
| 활성화하려는 리포지토리 목록입니다. |
|
| 등록할 사용자 이름입니다. 가능한 경우 등록에 활성화 키를 사용합니다. |
|
| 등록할 암호입니다. 가능한 경우 등록에 활성화 키를 사용합니다. |
|
| 리포지토리 고정을 위한 Red Hat Enterprise Linux 릴리스. Red Hat OpenStack Platform의 경우 9.2로 설정됩니다. |
|
|
HTTP 프록시의 호스트 이름입니다. 예: |
|
|
HTTP 프록시 통신용 포트입니다. 예: |
|
| HTTP 프록시에 액세스할 사용자 이름입니다. |
|
| HTTP 프록시에 액세스할 암호입니다. |
rhsm_method 가 portal 으로 설정된 경우에만 rhsm_activation_key 및 rhsm_repos 를 함께 사용할 수 있습니다. rhsm_method 가 satellite 로 설정된 경우 rhsm_activation_key 또는 rhsm_repos 중 하나만 사용할 수 있습니다.
9.1.2. RhsmVars 하위 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
rhsm 구성 가능 서비스를 구성할 때 RhsmVars 매개변수의 일부로 다음 하위 매개변수를 사용합니다. 사용 가능한 Ansible 매개변수에 대한 자세한 내용은 역할 설명서 를 참조하십시오.
rhsm | 설명 |
|---|---|
|
|
등록 방법을 선택합니다. |
|
|
등록에 사용하려는 조직입니다. 이 ID를 찾으려면 언더클라우드 노드에서 |
|
|
사용하려는 서브스크립션 풀 ID입니다. 서브스크립션을 자동 첨부하지 않으려면 이 매개변수를 사용합니다. 이 ID를 찾으려면 언더클라우드 노드에서 |
|
| 등록에 사용할 활성화 키입니다. |
|
|
이 매개변수를 사용하여 호환 가능한 서브스크립션을 이 시스템에 자동으로 첨부합니다. 이 기능을 활성화하려면 값을 |
|
| 콘텐츠를 가져오는 기본 URL입니다. 기본 URL은 Red Hat Content Delivery Network입니다. Satellite 서버를 사용하는 경우 이 값을 Satellite 서버 콘텐츠 리포지토리의 기본 URL로 변경합니다. |
|
| 등록을 위한 서브스크립션 관리 서비스의 호스트 이름입니다. 기본값은 Red Hat 서브스크립션 관리 호스트 이름입니다. Satellite 서버를 사용하는 경우 이 값을 Satellite 서버 호스트 이름으로 변경합니다. |
|
| 활성화하려는 리포지토리 목록입니다. |
|
| 등록할 사용자 이름입니다. 가능한 경우 등록에 활성화 키를 사용합니다. |
|
| 등록할 암호입니다. 가능한 경우 등록에 활성화 키를 사용합니다. |
|
| 리포지토리 고정을 위한 Red Hat Enterprise Linux 릴리스. Red Hat OpenStack Platform의 경우 9.2로 설정됩니다. |
|
|
HTTP 프록시의 호스트 이름입니다. 예: |
|
|
HTTP 프록시 통신용 포트입니다. 예: |
|
| HTTP 프록시에 액세스할 사용자 이름입니다. |
|
| HTTP 프록시에 액세스할 암호입니다. |
rhsm_method 가 portal 으로 설정된 경우에만 rhsm_activation_key 및 rhsm_repos 를 함께 사용할 수 있습니다. rhsm_method 가 satellite 로 설정된 경우 rhsm_activation_key 또는 rhsm_repos 중 하나만 사용할 수 있습니다.
9.1.3. rhsm 구성 가능 서비스를 사용하여 오버클라우드 등록 링크 복사링크가 클립보드에 복사되었습니다!
rhsm 구성 가능 서비스를 활성화하고 구성하는 환경 파일을 생성합니다. director는 이 환경 파일을 사용하여 노드를 등록하고 서브스크립션합니다.
절차
-
templates/rhsm.yml이라는 환경 파일을 만들어 구성을 저장합니다. 환경 파일에 구성을 포함합니다. 예를 들면 다음과 같습니다.
resource_registry: OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/deployment/rhsm/rhsm-baremetal-ansible.yaml parameter_defaults: RhsmVars: rhsm_repos: - rhel-9-for-x86_64-baseos-e4s-rpms - rhel-9-for-x86_64-appstream-e4s-rpms - rhel-9-for-x86_64-highavailability-e4s-rpms … rhsm_username: "myusername" rhsm_password: "p@55w0rd!" rhsm_org_id: "1234567" rhsm_pool_ids: "1a85f9223e3d5e43013e3d6e8ff506fd" rhsm_method: "portal" rhsm_release: 9.2-
resource_registry섹션은 각 역할에서 사용할 수 있는OS::TripleO::Services::Rhsm리소스와rhsm구성 가능 서비스를 연결합니다. -
RhsmVars변수는 Red Hat 등록을 구성하기 위해 매개 변수를 Ansible에 전달합니다.
-
역할별로
rhsm구성 가능 서비스를 적용하려면 환경 파일에 구성을 포함합니다. 예를 들어 컨트롤러 노드, 컴퓨팅 노드 및 Ceph Storage 노드에 다양한 구성 세트를 적용할 수 있습니다.parameter_defaults: ControllerParameters: RhsmVars: rhsm_repos: - rhel-9-for-x86_64-baseos-e4s-rpms - rhel-9-for-x86_64-appstream-e4s-rpms - rhel-9-for-x86_64-highavailability-e4s-rpms - openstack-17.1-for-rhel-9-x86_64-rpms - fast-datapath-for-rhel-9-x86_64-rpms - rhceph-6-tools-for-rhel-9-x86_64-rpms rhsm_username: "myusername" rhsm_password: "p@55w0rd!" rhsm_org_id: "1234567" rhsm_pool_ids: "55d251f1490556f3e75aa37e89e10ce5" rhsm_method: "portal" rhsm_release: 9.2 ComputeParameters: RhsmVars: rhsm_repos: - rhel-9-for-x86_64-baseos-e4s-rpms - rhel-9-for-x86_64-appstream-e4s-rpms - rhel-9-for-x86_64-highavailability-e4s-rpms - openstack-17.1-for-rhel-9-x86_64-rpms - rhceph-6-tools-for-rhel-9-x86_64-rpms - fast-datapath-for-rhel-9-x86_64-rpms rhsm_username: "myusername" rhsm_password: "p@55w0rd!" rhsm_org_id: "1234567" rhsm_pool_ids: "55d251f1490556f3e75aa37e89e10ce5" rhsm_method: "portal" rhsm_release: 9.2 CephStorageParameters: RhsmVars: rhsm_repos: - rhel-9-for-x86_64-baseos-rpms - rhel-9-for-x86_64-appstream-rpms - rhel-9-for-x86_64-highavailability-rpms - openstack-17.1-deployment-tools-for-rhel-9-x86_64-rpms rhsm_username: "myusername" rhsm_password: "p@55w0rd!" rhsm_org_id: "1234567" rhsm_pool_ids: "68790a7aa2dc9dc50a9bc39fabc55e0d" rhsm_method: "portal" rhsm_release: 9.2ControllerParameters,ComputeParameters및CephStorageParameters매개 변수는 각각 별도의RhsmVars매개변수를 사용하여 서브스크립션 세부 정보를 해당 역할에 전달합니다.참고Ceph Storage와 관련된 Red Hat Ceph Storage 서브스크립션 및 리포지토리를 사용하도록
CephStorageParameters매개변수 내에서RhsmVars매개변수를 설정합니다.rhsm_repos매개변수에 컨트롤러 및 컴퓨팅 노드에 필요한 Enhanced Extended Update Service(EEUS) 리포지토리 대신 표준 Red Hat Enterprise Linux 리포지토리가 포함되어 있는지 확인합니다.- 환경 파일을 저장합니다.
9.1.4. 다른 역할에 rhsm 구성 가능 서비스 적용 링크 복사링크가 클립보드에 복사되었습니다!
역할별로 rhsm 구성 가능 서비스를 적용할 수 있습니다. 예를 들어 컨트롤러 노드, 컴퓨팅 노드 및 Ceph Storage 노드에 다양한 구성 세트를 적용할 수 있습니다.
절차
-
templates/rhsm.yml이라는 환경 파일을 만들어 구성을 저장합니다. 환경 파일에 구성을 포함합니다. 예를 들면 다음과 같습니다.
resource_registry: OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/deployment/rhsm/rhsm-baremetal-ansible.yaml parameter_defaults: ControllerParameters: RhsmVars: rhsm_repos: - rhel-9-for-x86_64-baseos-e4s-rpms - rhel-9-for-x86_64-appstream-e4s-rpms - rhel-9-for-x86_64-highavailability-e4s-rpms - openstack-17.1-for-rhel-9-x86_64-rpms - fast-datapath-for-rhel-9-x86_64-rpms - rhceph-6-tools-for-rhel-9-x86_64-rpms rhsm_username: "myusername" rhsm_password: "p@55w0rd!" rhsm_org_id: "1234567" rhsm_pool_ids: "55d251f1490556f3e75aa37e89e10ce5" rhsm_method: "portal" rhsm_release: 9.2 ComputeParameters: RhsmVars: rhsm_repos: - rhel-9-for-x86_64-baseos-e4s-rpms - rhel-9-for-x86_64-appstream-e4s-rpms - rhel-9-for-x86_64-highavailability-e4s-rpms - openstack-17.1-for-rhel-9-x86_64-rpms - rhceph-6-tools-for-rhel-9-x86_64-rpms - fast-datapath-for-rhel-9-x86_64-rpms rhsm_username: "myusername" rhsm_password: "p@55w0rd!" rhsm_org_id: "1234567" rhsm_pool_ids: "55d251f1490556f3e75aa37e89e10ce5" rhsm_method: "portal" rhsm_release: 9.2 CephStorageParameters: RhsmVars: rhsm_repos: - rhel-9-for-x86_64-baseos-rpms - rhel-9-for-x86_64-appstream-rpms - rhel-9-for-x86_64-highavailability-rpms - openstack-17.1-deployment-tools-for-rhel-9-x86_64-rpms rhsm_username: "myusername" rhsm_password: "p@55w0rd!" rhsm_org_id: "1234567" rhsm_pool_ids: "68790a7aa2dc9dc50a9bc39fabc55e0d" rhsm_method: "portal" rhsm_release: 9.2resource_registry는 각 역할에서 사용할 수 있는OS::TripleO::Services::Rhsm리소스와rhsm구성 가능 서비스를 연결합니다.ControllerParameters,ComputeParameters및CephStorageParameters매개 변수는 각각 별도의RhsmVars매개변수를 사용하여 서브스크립션 세부 정보를 해당 역할에 전달합니다.참고Ceph Storage와 관련된 Red Hat Ceph Storage 서브스크립션 및 리포지토리를 사용하도록
CephStorageParameters매개변수 내에서RhsmVars매개변수를 설정합니다.rhsm_repos매개변수에 컨트롤러 및 컴퓨팅 노드에 필요한 Enhanced Extended Update Service(EEUS) 리포지토리 대신 표준 Red Hat Enterprise Linux 리포지토리가 포함되어 있는지 확인합니다.- 환경 파일을 저장합니다.
9.1.5. 오버클라우드를 Red Hat Satellite Server에 등록 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat 고객 포털 대신 Red Hat Satellite에 노드를 등록하도록 rhsm 구성 가능 서비스를 활성화하고 구성하는 환경 파일을 생성합니다.
절차
-
templates/rhsm.yml이라는 환경 파일을 만들어 구성을 저장합니다. 환경 파일에 구성을 포함합니다. 예를 들면 다음과 같습니다.
resource_registry: OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/deployment/rhsm/rhsm-baremetal-ansible.yaml parameter_defaults: RhsmVars: rhsm_activation_key: "myactivationkey" rhsm_method: "satellite" rhsm_org_id: "ACME" rhsm_server_hostname: "satellite.example.com" rhsm_baseurl: "https://satellite.example.com/pulp/repos" rhsm_release: 9.2resource_registry는 각 역할에서 사용할 수 있는OS::TripleO::Services::Rhsm리소스와rhsm구성 가능 서비스를 연결합니다.RhsmVars변수는 Red Hat 등록을 구성하기 위해 매개 변수를 Ansible에 전달합니다.- 환경 파일을 저장합니다.
9.1.6. rhsm 구성 가능 서비스로 전환 링크 복사링크가 클립보드에 복사되었습니다!
이전 rhel-registration 메서드는 Overcloud 등록을 처리하는 bash 스크립트를 실행합니다. 이 메서드의 스크립트 및 환경 파일은 /usr/share/openstack-tripleo-heat-templates/extraconfig/pre_deploy/rhel-registration/ 의 코어 heat 템플릿 컬렉션에 있습니다.
rhel-registration 메서드에서 rhsm 구성 가능 서비스로 전환하려면 다음 단계를 완료합니다.
절차
rhel-registration환경 파일을 향후 배포 작업에서 제외합니다. 대부분의 경우 다음 파일을 제외합니다.-
rhel-registration/environment-rhel-registration.yaml -
rhel-registration/rhel-registration-resource-registry.yaml
-
사용자 지정
roles_data파일을 사용하는 경우roles_data파일의 각 역할에OS::TripleO::Services::Rhsm구성 가능 서비스가 포함되어 있는지 확인합니다. 예를 들면 다음과 같습니다.- name: Controller description: | Controller role that has all the controller services loaded and handles Database, Messaging and Network functions. CountDefault: 1 ... ServicesDefault: ... - OS::TripleO::Services::Rhsm ...-
향후 배포 작업에 환경 파일 for
rhsmcomposable 서비스 매개변수를 추가합니다.
이 메서드는 rhel-registration 매개변수를 rhsm 서비스 매개변수로 교체하고 서비스를 활성화하는 heat 리소스를 변경합니다.
resource_registry:
OS::TripleO::NodeExtraConfig: rhel-registration.yaml
다음으로 변경합니다.
resource_registry:
OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/deployment/rhsm/rhsm-baremetal-ansible.yaml
배포를 통해 /usr/share/openstack-tripleo-heat-templates/environments/rhsm.yaml 환경 파일을 배포하여 서비스를 활성화할 수도 있습니다.
9.1.7. rhel-registration to rhsm mappings 링크 복사링크가 클립보드에 복사되었습니다!
rhel-registration 방법에서 the rhsm 메서드로 세부 정보를 전환하는 데 도움이 되도록 다음 표를 사용하여 매개변수와 값을 매핑합니다.
rhel-registration | rhsm / RhsmVars |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9.1.8. rhsm 구성 가능 서비스를 사용하여 오버클라우드 배포 링크 복사링크가 클립보드에 복사되었습니다!
Ansible이 오버클라우드 노드의 등록 프로세스를 제어하도록 rhsm 구성 가능 서비스로 오버클라우드를 배포합니다.
절차
openstack overcloud deploy명령을 사용하여rhsm.yml환경 파일을 포함합니다.openstack overcloud deploy \ <other cli args> \ -e ~/templates/rhsm.yaml이렇게 하면 오버클라우드의 Ansible 구성 및 Ansible 기반 등록이 활성화됩니다.
- Overcloud 배포가 완료될 때까지 기다립니다.
오버클라우드 노드에서 서브스크립션 세부 정보를 확인합니다. 예를 들어 컨트롤러 노드에 로그인하고 다음 명령을 실행합니다.
$ sudo subscription-manager status $ sudo subscription-manager list --consumed
9.1.9. Ansible 기반 등록 수동 실행 링크 복사링크가 클립보드에 복사되었습니다!
director 노드에 동적 인벤토리 스크립트를 사용하여 배포된 오버클라우드에 Ansible 기반 수동 등록을 수행할 수 있습니다. 이 스크립트를 사용하여 노드 역할을 호스트 그룹으로 정의한 다음 ansible-playbook 을 사용하여 플레이북을 실행합니다. 다음 예제 플레이북을 사용하여 컨트롤러 노드를 수동으로 등록합니다.
절차
redhat_subscription모듈을 사용하여 노드를 등록하는 플레이북을 생성합니다. 예를 들어 다음 플레이북은 컨트롤러 노드에 적용됩니다.--- - name: Register Controller nodes hosts: Controller become: yes vars: repos: - rhel-9-for-x86_64-baseos-e4s-rpms - rhel-9-for-x86_64-appstream-e4s-rpms - rhel-9-for-x86_64-highavailability-e4s-rpms - openstack-17.1-for-rhel-9-x86_64-rpms - fast-datapath-for-rhel-9-x86_64-rpms tasks: - name: Register system redhat_subscription: username: myusername password: p@55w0rd! org_id: 1234567 release: 9.2 pool_ids: 1a85f9223e3d5e43013e3d6e8ff506fd - name: Disable all repos command: "subscription-manager repos --disable *" - name: Enable Controller node repos command: "subscription-manager repos --enable {{ item }}" with_items: "{{ repos }}"이 플레이에는 세 가지 작업이 포함됩니다.
- 노드를 등록합니다.
- 자동 활성화 리포지토리를 비활성화합니다.
-
컨트롤러 노드와 관련된 리포지토리만 활성화합니다. 리포지토리는
repos변수를 사용하여 나열됩니다.
오버클라우드를 배포한 후 Ansible이 오버클라우드에 대해 플레이북(
ansible-osp-registration.yml)을 실행하도록 다음 명령을 실행할 수 있습니다.$ ansible-playbook -i /usr/bin/tripleo-ansible-inventory ansible-osp-registration.yml이 명령은 다음 작업을 수행합니다.
- 동적 인벤토리 스크립트를 실행하여 호스트 및 해당 그룹 목록을 가져옵니다.
-
플레이북의
hosts매개 변수에 정의된 그룹의 노드에 플레이북 작업을 적용합니다. 이 경우 Controller 그룹입니다.