A.2. コンテナー化されたコンポーザブルサービス
以下のパラメーターは、コンテナー化されたすべてのコンポーザブルサービスに適用されます。
puppet_config
このセクションは、Puppet を使用した設定ファイルの作成をアクティブ化する入れ子状のキーと値のペアのセット。必須のパラメーターは以下のとおりです。
- puppet_tags
-
Puppet を使用して設定ファイルを生成するのに使用される Puppet リソースタグ名。ファイルの生成には、名前の付けられた設定リソースだけが使用されます。タグを指定するすべてのサービスでは、デフォルトのタグ (file、concat、file_line、augeas、cron) が設定に追加されます。例:
keystone_config
- config_volume
- このサービス用に設定ファイルが生成されるボリューム (ディレクトリー) 名。実行中の設定用 Kolla コンテナーにマウントをバインドする場所として、このパラメーターを使用します。
- config_image
- 設定ファイルを生成するために使用されるコンテナーイメージ名。通常は、ランタイムサービスが使用するコンテナーと同一です。一部のサービスは、共通のベースコンテナーで生成される設定ファイルの共通のセットを共有します。
- step_config
- この設定は、Puppet を使用した設定ファイルの作成で使用されるマニフェストを制御。以下の Puppet タグをマニフェストと共に使用して、このコンテナーの設定ディレクトリーを生成します。
kolla_config
コンテナー内の kolla 設定のマッピングの作成。設定ファイルの絶対パスで始まり、以下のサブパラメーターが続くフォーマットを使用します。
- command
- コンテナーの起動時に実行するコマンド。
- config_files
-
サービス起動前のサービス設定ファイルの場所 (
source
) およびコンテナー上の送付先 (dest
)。また、コンテナー上でこれらのファイルをマージするか置き換えるか (merge
)、ファイルのアクセス権限およびその他のプロパティーを維持するかどうか (preserve_properties
) に関するオプションも含まれます。 - permissions
-
コンテナー上の特定ディレクトリーのアクセス権限の設定。
path
、owner
(および group) を設定する必要があります。再帰的にアクセス権限を適用することもできます (recurse
)。
以下は、keystone サービス用の kolla_config
パラメーターの一例です。
kolla_config: /var/lib/kolla/config_files/keystone.json: command: /usr/sbin/httpd -DFOREGROUND config_files: - source: "/var/lib/kolla/config_files/src/*" dest: "/" merge: true preserve_properties: true /var/lib/kolla/config_files/keystone_cron.json: command: /usr/sbin/crond -n config_files: - source: "/var/lib/kolla/config_files/src/*" dest: "/" merge: true preserve_properties: true permissions: - path: /var/log/keystone owner: keystone:keystone recurse: true
docker_config
各ステップでコンテナーを設定するために paunch
コマンドに渡されるデータ。
-
step_0
: hiera 設定ごとに生成されるコンテナーの設定ファイル step_1
: ロードバランサーの設定- ベアメタルの設定
- コンテナーの設定
step_2
: コアサービス (Database/Rabbit/NTP/etc.)- ベアメタルの設定
- コンテナーの設定
step_3
: OpenStack サービスの初期設定 (Ringbuilder など)- ベアメタルの設定
- コンテナーの設定
step_4
: 一般的な OpenStack サービス- ベアメタルの設定
- コンテナーの設定
- Keystone コンテナーポストの初期化 (テナント、サービス、エンドポイントの作成)
step_5
: サービスのアクティブ化 (Pacemaker)- ベアメタルの設定
- コンテナーの設定
YAML はパラメーターセットを使用して、各ステップで実行するコンテナーおよび各コンテナーに関連付けられた podman
設定を定義します。以下に例を示します。
docker_config: step_3: keystone: start_order: 2 image: *keystone_image net: host privileged: false restart: always healthcheck: test: /openstack/healthcheck volumes: *keystone_volumes environment: - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
これにより keystone
コンテナーが作成され、使用するイメージ、ネットワーク種別、および環境変数などの詳細を定義するための該当パラメーターが使用されます。
container_puppet_tasks
container-puppet.py
ツールを直接実行するためのデータの提供。タスクが実行されるのは、(各ノードではなく) クラスター全体で 1 回だけで、keystone エンドポイントやデータベースユーザーなどの初期化に必要ないくつかの Puppet スニペットに対して有用です。以下に例を示します。
container_puppet_tasks: # Keystone endpoint creation occurs only on single node step_3: config_volume: 'keystone_init_tasks' puppet_tags: 'keystone_config,keystone_domain_config,keystone_endpoint,keystone_identity_provider,keystone_paste_ini,keystone_role,keystone_service,keystone_tenant,keystone_user,keystone_user_role,keystone_domain' step_config: 'include ::tripleo::profile::base::keystone' config_image: *keystone_config_image
host_prep_tasks
コンテナー化されたサービス用にノードホストを準備するためにホスト上で実行する Ansible スニペット。たとえば、コンテナー作成時に、コンテナーにマウントする特定のディレクトリーを作成しなければならない場合があります。
fast_forward_upgrade_tasks
Fast Forward Upgrade プロセスを容易にする Ansible スニペット。このスニペットは統合された Playbook に追加されます。それぞれの操作では、タグを使用して step
および release
を定義します。
通常、step
は以下のような段階を経ます。
-
step=0
: 実行中のサービスを確認する -
step=1
: サービスを停止する -
step=2
: クラスターを停止する -
step=3
: リポジトリーを更新する -
step=4
: データベースのバックアップ -
step=5
: パッケージ更新前コマンド -
step=6
: パッケージの更新 -
step=7
: パッケージ更新後コマンド -
step=8
: データベースの更新 -
step=9
: 検証
tag
はリリースに対応します。
-
tag=ocata
: OpenStack Platform 11 -
tag=pike
: OpenStack Platform 12 -
tag=queens
: OpenStack Platform 13