Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

A.2. コンテナー化されたコンポーザブルサービス

以下のパラメーターは、コンテナー化されたすべてのコンポーザブルサービスに適用されます。

puppet_config

このセクションは、Puppet を使用した設定ファイルの作成をアクティブ化する入れ子状のキーと値のペアのセット。必須のパラメーターは以下のとおりです。

puppet_tags
Puppet を使用して設定ファイルを生成するのに使用される Puppet リソースタグ名。ファイルの生成には、名前の付けられた設定リソースだけが使用されます。タグを指定するすべてのサービスでは、デフォルトのタグ (file、concat、file_line、augeas、cron) が設定に追加されます。例: keystone_config
config_volume
このサービス用に設定ファイルが生成されるボリューム (ディレクトリー) 名。実行中の設定用 Kolla コンテナーにマウントをバインドする場所として、このパラメーターを使用します。
config_image
設定ファイルを生成するのに使用される Docker イメージ名。通常は、ランタイムサービスが使用するコンテナーと同一です。一部のサービスは、共通のベースコンテナーで生成される設定ファイルの共通のセットを共有します。
step_config
この設定により、Puppet を使用して docker 設定ファイルを作成するのに使用されるマニフェストを制御します。このコンテナーの設定ディレクトリー生成には、このマニフェストと共に下記の Puppet タグが使用されます。

kolla_config

コンテナー内の Kolla 設定のマッピングの作成。形式は設定ファイルの絶対パスで始まり、それを以下のサブパラメーターに使用します。

command
コンテナーの起動時に実行するコマンド。
config_files
サービス起動前のサービス設定ファイルの場所 (source) およびコンテナー上の送付先 (dest)。また、コンテナー上でこれらのファイルをマージするか置き換えるか (merge)、ファイルのアクセス権限およびその他のプロパティーを維持するかどうか (preserve_properties) に関するオプションも含まれます。
permissions
コンテナー上の特定ディレクトリーのアクセス権限の設定。pathowner、および 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

コンテナー設定の各ステップで docker-cmd フックに渡されるデータ

  • step_0: Hiera 設定により生成されるコンテナーの設定ファイル
  • step_1: ロードバランサーの設定

    1. ベアメタルの設定
    2. コンテナーの設定
  • step_2: コアサービス (Database/Rabbit/NTP/etc.)

    1. ベアメタルの設定
    2. コンテナーの設定
  • step_3: OpenStack サービスの初期設定 (Ringbuilder など)

    1. ベアメタルの設定
    2. コンテナーの設定
  • step_4: 一般的な OpenStack サービス

    1. ベアメタルの設定
    2. コンテナーの設定
    3. Keystone コンテナーポストの初期化 (テナント、サービス、エンドポイントの作成)
  • step_5: サービスのアクティブ化 (Pacemaker)

    1. ベアメタルの設定
    2. コンテナーの設定

YAML はパラメーターセットを使用して、各ステップで実行するコンテナーおよび各コンテナーに関連付けられた docker 設定を定義します。以下に例を示します。

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 コンテナーが作成され、使用するイメージ、ネットワーク種別、および環境変数などの詳細を定義するための該当パラメーターが使用されます。

docker_puppet_tasks

docker-puppet.py ツールを直接アクティブ化するためのデータを提供します。タスクが実行されるのは、(各ノードではなく) クラスター全体で 1 度だけで、keystone エンドポイントやデータベースユーザーなどの初期化に必要な、さまざまな Puppet スニペットに対して有用です。以下に例を示します。

docker_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