第9章 Ansible を使用した Red Hat OpenStack Platform の設定と管理
Ansible を使用して、オーバークラウドの設定と登録、およびコンテナーの管理を行うことができます。
9.1. Ansible ベースのオーバークラウド登録 リンクのコピーリンクがクリップボードにコピーされました!
director は、Ansible ベースのメソッドを使用して、オーバークラウドノードを Red Hat カスタマーポータルまたは Red Hat Satellite Server に登録します。
以前のバージョンの Red Hat OpenStack Platform の rhel-registration メソッドを使用していた場合は、それを無効にして Ansible ベースのメソッドに切り替える必要があります。詳しい情報は、「rhsm コンポーザブルサービスへの切り替え」 および 「rhel-registration から rhsm へのマッピング」 を参照してください。
director ベースの登録メソッドに加えて、デプロイメント後に手動で登録することもできます。詳細は、「手動による Ansible ベースの登録の実行」 を参照してください。
9.1.1. Red Hat Subscription Manager (RHSM) コンポーザブルサービス リンクのコピーリンクがクリップボードにコピーされました!
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
resource_registry:
OS::TripleO::Services::Rhsm: /usr/share/openstack-tripleo-heat-templates/deployment/rhsm/rhsm-baremetal-ansible.yaml
rhsm コンポーザブルサービスは RhsmVars パラメーターを受け入れます。これを使用して、登録に必要な複数のサブパラメーターを定義することができます。
RhsmVars パラメーターをロール固有のパラメーター (例: ControllerParameters) と共に使用することにより、異なるノードタイプ用の特定のリポジトリーを有効化する場合に柔軟性を提供することもできます。
RhsmVars サブパラメーター
rhsm コンポーザブルサービスを設定する際に、以下のサブパラメーターを RhsmVars パラメーターの一部として使用します。利用可能な Ansible パラメーターの詳細は、ロールに関するドキュメント を参照してください。
rhsm | 説明 |
|---|---|
|
|
登録の方法を選択します。 |
|
|
登録に使用する組織。この ID を特定するには、アンダークラウドノードから |
|
|
使用するサブスクリプションプール ID。サブスクリプションを自動でアタッチしない場合は、このパラメーターを使用します。この ID を特定するには、アンダークラウドノードから |
|
| 登録に使用するアクティベーションキー |
|
|
このパラメーターを使用して、互換性のあるサブスクリプションを自動的にこのシステムにアタッチします。この機能を有効にするには、値を |
|
| コンテンツを取得するためのベース URL。デフォルトの URL は Red Hat コンテンツ配信ネットワークです。Satellite サーバーを使用している場合は、この値を Satellite サーバーコンテンツリポジトリーのベース URL に変更します。 |
|
| 登録用のサブスクリプション管理サービスのホスト名。デフォルトは Red Hat Subscription Management のホスト名です。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 コンテンツ配信ネットワークです。Satellite サーバーを使用している場合は、この値を Satellite サーバーコンテンツリポジトリーのベース URL に変更します。 |
|
| 登録用のサブスクリプション管理サービスのホスト名。デフォルトは Red Hat Subscription Management のホスト名です。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) を作成します。 環境ファイルに設定を追加します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
resource_registryセクションは、各ロールで利用可能なOS::TripleO::Services::Rhsmリソースにrhsmコンポーザブルサービスを関連付けます。 -
RhsmVarsの変数は、Red Hat の登録を設定するためにパラメーターを Ansible に渡します。
-
rhsmコンポーザブルサービスをロールごとに適用するには、環境ファイルに設定を含めます。たとえば、コントローラーノード、コンピュートノード、および Ceph Storage ノードに、異なる設定セットを適用できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ControllerParameters、ComputeParameters、およびCephStorageParametersパラメーターはいずれも、個別のRhsmVarsパラメーターを使用してサブスクリプションの情報をそれぞれのロールに渡します。注記Red Hat Ceph Storage のサブスクリプションおよび Ceph Storage 固有のリポジトリーを使用するように、
CephStorageParametersパラメーター内のRhsmVarsパラメーターを設定します。rhsm_reposパラメーターに、コントローラーノードおよびコンピュートノードに必要な Enhanced Extended Update Service (EEUS)リポジトリーではなく、標準の Red Hat Enterprise Linux リポジトリーが含まれるようにします。- 環境ファイルを保存します。
9.1.4. 異なるロールに対する rhsm コンポーザブルサービスの適用 リンクのコピーリンクがクリップボードにコピーされました!
rhsm コンポーザブルサービスをロールごとに適用することができます。たとえば、コントローラーノード、Compute ノード、および Ceph Storage ノードに、異なる設定セットを適用することができます。
手順
-
設定を保存するための環境ファイル (
templates/rhsm.yml) を作成します。 環境ファイルに設定を追加します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow resource_registryは、各ロールで利用可能なOS::TripleO::Services::Rhsmリソースにrhsmコンポーザブルサービスを関連付けます。ControllerParameters、ComputeParameters、およびCephStorageParametersパラメーターはいずれも、個別のRhsmVarsパラメーターを使用してサブスクリプションの情報をそれぞれのロールに渡します。注記Red Hat Ceph Storage のサブスクリプションおよび 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) を作成します。 環境ファイルに設定を追加します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow resource_registryは、各ロールで利用可能なOS::TripleO::Services::Rhsmリソースにrhsmコンポーザブルサービスを関連付けます。RhsmVarsの変数は、Red Hat の登録を設定するためにパラメーターを Ansible に渡します。- 環境ファイルを保存します。
9.1.6. rhsm コンポーザブルサービスへの切り替え リンクのコピーリンクがクリップボードにコピーされました!
従来の rhel-registration メソッドは、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コンポーザブルサービスを含めてください。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
rhsmコンポーザブルサービスのパラメーター用の環境ファイルを今後のデプロイメント操作に追加します。
このメソッドは、rhel-registration パラメーターを rhsm サービスのパラメーターに置き換えて、サービスを有効化する Heat リソースを変更します。
resource_registry: OS::TripleO::NodeExtraConfig: rhel-registration.yaml
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
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 から rhsm へのマッピング リンクのコピーリンクがクリップボードにコピーされました!
rhel-registration メソッドから 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.yamlopenstack overcloud deploy \ <other cli args> \ -e ~/templates/rhsm.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、Ansible のオーバークラウドの設定と、Ansible ベースの登録が有効化されます。
- オーバークラウドのデプロイメントが完了するまで待ちます。
オーバークラウドノードのサブスクリプション情報を確認します。たとえば、コントローラーノードにログインして、以下のコマンドを実行します。
sudo subscription-manager status sudo subscription-manager list --consumed
$ sudo subscription-manager status $ sudo subscription-manager list --consumedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.1.9. 手動による Ansible ベースの登録の実行 リンクのコピーリンクがクリップボードにコピーされました!
director ノードで動的インベントリースクリプトを使用して、デプロイしたオーバークラウドで、手動による Ansible ベースの登録を行うことができます。このスクリプトを使用して、ホストグループとしてノードロールを定義します。続いて ansible-playbook を使用して定義したノードロールに対して Playbook を実行します。コントローラーノードを手動で登録するには、以下の例の Playbook を使用します。
手順
ノードを登録する
redhat_subscriptionモジュールを使用して Playbook を作成します。たとえば、以下の Playbook はコントローラーノードに適用されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow このプレイには 3 つのタスクが含まれます。
- ノードを登録する。
- 自動的に有効化されるリポジトリーをすべて無効にする。
-
コントローラーノードに関連するリポジトリーだけを有効にする。リポジトリーは
repos変数でリストされます。
オーバークラウドのデプロイ後には、以下のコマンドを実行して、Ansible がオーバークラウドに対して Playbook (
ansible-osp-registration.yml) を実行することができます。ansible-playbook -i /usr/bin/tripleo-ansible-inventory ansible-osp-registration.yml
$ ansible-playbook -i /usr/bin/tripleo-ansible-inventory ansible-osp-registration.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドにより、以下のアクションが行われます。
- 動的インベントリースクリプトを実行し、ホストとそのグループのリストを取得する。
-
Playbook の
hostsパラメーターで定義されているグループ (この場合はコントローラーグループ) 内のノードに、その Playbook のタスクを適用する。