第8章 カスタムロールおよびカスタムサービスの使用

通常 Red Hat OpenStack Platform は、事前定義済みロールのノード (例: Controller ロール、Compute ロール、さまざまなストレージロール種別のノード) で設定されます。これらのデフォルトロールには、それぞれコアの heat テンプレートコレクションで定義するサービスのセットが含まれます。ただし、オールインワンの Red Hat OpenStack Platform インストールは、すべての OpenStack サービスが含まれる単一のノード上で実行されます。/usr/share/openstack-tripleo-heat-templates/roles ディレクトリーの Standalone.yaml ロールファイルは、オールインワンインストールのすべてのサービスが含まれる設定ファイルです。Standalone.yaml ロールファイルのコピーを作成して変更し、インストール内のサービスを有効および無効にすることができます。

Standalone.yaml ファイルには、ロール Standalone にサービスのリストが含まれます。以下の例を使用して、このファイルの構文を説明します。

- name: Standalone
  description: |
    A standalone role that includes a minimal set of services. Use this role for testing in a single node configuration with the 'openstack tripleo deploy --standalone' command, or with the 'openstack overcloud deploy' command.
  CountDefault: 1
  tags:
    - primary
    - controller
  disable_constraints: True
  ServicesDefault:
    - OS::TripleO::Services::Aide
    - OS::TripleO::Services::AodhApi
    - OS::TripleO::Services::AodhEvaluator
    ...
    - OS::TripleO::Services::Tuned
    - OS::TripleO::Services::Vpp
    - OS::TripleO::Services::Zaqar

このロールファイルをデプロイコマンドに追加して、Standalone ロールでスタックを設定します。このロールには、ロールファイルの ServicesDefault: セクションに含めたサービスが含まれます。

[stack@all-in-one]$ sudo openstack tripleo deploy --templates -r /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml

ただし、プロダクションのマルチノード Red Hat OpenStack Platform 環境では、すべてのサービスを単一のノードに含めるのではなく、OpenStack サービスの一部が含まれるロールを各ノードに割り当てます。たとえば、デフォルトの Controller ロールには管理、ネットワーク、および高可用性サービスが含まれ、デフォルトの Compute ロールにはコンピューティングサービスが含まれます。マルチノード環境のデフォルトのロールファイルは、/usr/share/openstack-tripleo-heat-templates/roles_data.yaml ファイルです。このファイルで、以下のロール種別を定義します。

  • Controller
  • Compute
  • BlockStorage
  • ObjectStorage
  • CephStorage

以下の例を使用して、マルチノード環境におけるロールの構文を説明します。

- name: Controller
  description: |
    Controller role that contains all of the services for database, messaging and network functions.
  ServicesDefault:
    - OS::TripleO::Services::AuditD
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::CephClient
    ...
- name: Compute
  description: |
    Basic Compute Node role
  ServicesDefault:
    - OS::TripleO::Services::AuditD
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::CephClient
    ...

デプロイメントコマンドを実行するたびに、ロールファイルを指定する必要があります。デプロイメントコマンドで -r 引数を使用し、このファイルをオーバーライドしてカスタムロールファイルを使用できます。

[stack@all-in-one]$ sudo openstack tripleo deploy --templates -r ~/templates/roles_data-custom.yaml

8.1. オールインワン Red Hat OpenStack Platform 環境でのサービスの有効化および無効化

/usr/share/openstack-tripleo-heat-templates/roles ディレクトリーの Standalone.yaml ロールファイルは、オールインワンインストールのすべてのサービスが含まれる設定ファイルです。個々のサービスを有効または無効にできます。

手順

  1. サービスを無効にするには、新しい環境ファイルを作成し、無効にするサービスに値 OS::Heat::None を含めます。

        - OS::TripleO::Services::<SERVICE>: OS::Heat::None

    この環境ファイルをデプロイメントコマンドに追加します。

  2. サービスを有効にするには、新しい環境ファイルを作成し、有効にするサービスから値 OS::Heat::None を削除します。

        - OS::TripleO::Services::<SERVICE>:

    この環境ファイルをデプロイメントコマンドに追加します。