7.2.3. オーバークラウドのベアメタルノードのプロビジョニング
ベアメタルノードをプロビジョニングするには、デプロイするベアメタルノードの数と属性を YAML 形式のノード定義ファイルで定義し、これらのノードにオーバークラウドロールを割り当てます。ノードのネットワークレイアウトも定義します。
プロビジョニングプロセスにより、ノード定義ファイルから Heat 環境ファイルが作成されます。この Heat 環境ファイルには、ノード数、予測ノード配置、カスタムイメージ、カスタム NIC など、ノード定義ファイルで設定したノード仕様が含まれています。オーバークラウドをデプロイする際に、このファイルをデプロイメントコマンドに追加します。プロビジョニングプロセスでは、ノード定義ファイル内の各ノードまたはロールに対して定義されたすべてのネットワークのポートリソースもプロビジョニングされます。
前提条件
- アンダークラウドがインストールされます。詳細は、Installing director を参照してください。
- ベアメタルノードは登録とイントロスペクトが行われ、プロビジョニングとデプロイメントに使用できます。詳細は、Registering nodes for the overcloud と ベアメタルノードハードウェアのインベントリー作成 を参照してください。
手順
source コマンドで
stackrcアンダークラウド認証情報ファイルを読み込みます。$ source ~/stackrcovercloud-baremetal-deploy.yamlノード定義ファイルを作成し、プロビジョニングするロールごとにノード数を定義します。たとえば、3 つのコントローラーノードと 3 つのコンピュートノードをプロビジョニングするには、以下の設定をovercloud-baremetal-deploy.yamlファイルに追加します。- name: Controller count: 3 - name: Compute count: 3オプション: 予測ノード配置を設定します。たとえば、以下の設定を使用すると、3 つのコントローラーノードがノード
node00、node01、およびnode02に、3 つのコンピュートノードがノードnode04、node05、およびnode06に、それぞれプロビジョニングされます。- name: Controller count: 3 instances: - hostname: overcloud-controller-0 name: node00 - hostname: overcloud-controller-1 name: node01 - hostname: overcloud-controller-2 name: node02 - name: Compute count: 3 instances: - hostname: overcloud-novacompute-0 name: node04 - hostname: overcloud-novacompute-1 name: node05 - hostname: overcloud-novacompute-2 name: node06オプション: デフォルトでは、プロビジョニングプロセスは
overcloud-hardened-uefi-full.qcow2イメージを使用します。イメージのローカル URL またはリモート URL を指定することで、特定のノードで使用されるイメージ、またはロールのすべてのノードで使用されるイメージを変更できます。次の例では、イメージをローカル QCOW2 イメージに変更します。特定のノード
- name: Controller count: 3 instances: - hostname: overcloud-controller-0 name: node00 image: href: file:///var/lib/ironic/images/overcloud-custom.qcow2 - hostname: overcloud-controller-1 name: node01 image: href: file:///var/lib/ironic/images/overcloud-full-custom.qcow2 - hostname: overcloud-controller-2 name: node02 image: href: file:///var/lib/ironic/images/overcloud-full-custom.qcow2ロールのすべてのノード
- name: Controller count: 3 defaults: image: href: file:///var/lib/ironic/images/overcloud-custom.qcow2 instances: - hostname: overcloud-controller-0 name: node00 - hostname: overcloud-controller-1 name: node01 - hostname: overcloud-controller-2 name: node02ロールのすべてのノードのネットワークレイアウト、または特定のノードのネットワークレイアウトを定義します。
特定のノード
次の例では、特定のコントローラーノードのネットワークをプロビジョニングし、予測可能な IP を Internal API ネットワークのノードに割り当てます。
- name: Controller count: 3 defaults: network_config: template: /home/stack/templates/nic-config/myController.j2 default_route_network: - external instances: - hostname: overcloud-controller-0 name: node00 networks: - network: ctlplane vif: true - network: external subnet: external_subnet - network: internal_api subnet: internal_api_subnet01 fixed_ip: 172.21.11.100 - network: storage subnet: storage_subnet01 - network: storage_mgmt subnet: storage_mgmt_subnet01 - network: tenant subnet: tenant_subnet01重要Red Hat OpenStack Platform 17.1 以降、
ips-from-pool.yamlファイルを使用して予測可能な IP をノードに割り当てることができなくなりました。ネットワークの IP アドレスを指定するには、ベアメタル定義ファイルのfixed_ipプロパティーを使用する必要があります。詳細は、ベアメタルノードのプロビジョニング属性 を参照してください。
ロールのすべてのノード
次の例では、コントローラーロールとコンピューティングロールのネットワークをプロビジョニングします。
+
- name: Controller
count: 3
defaults:
networks:
- network: ctlplane
vif: true
- network: external
subnet: external_subnet
- network: internal_api
subnet: internal_api_subnet01
- network: storage
subnet: storage_subnet01
- network: storage_mgmt
subnet: storage_mgmt_subnet01
- network: tenant
subnet: tenant_subnet01
network_config:
template: /home/stack/templates/nic-config/myController.j2
default_route_network:
- external
- name: Compute
count: 3
defaults:
networks:
- network: ctlplane
vif: true
- network: internal_api
subnet: internal_api_subnet02
- network: tenant
subnet: tenant_subnet02
- network: storage
subnet: storage_subnet02
network_config:
template: /home/stack/templates/nic-config/myCompute.j2
+ <1> /usr/share/ansible/roles/tripleo_network_config/templates にあるサンプル NIC テンプレートを使用して、ローカルの環境ファイルディレクトリーに独自の NIC テンプレートを作成できます。
オプション: デフォルトのディスクパーティションサイズが要件を満たさない場合は、ディスクパーティションサイズの割り当てを設定します。たとえば、
/var/logパーティションのデフォルトのパーティションサイズは 10 GB です。ログストレージおよび保存要件を考慮して、10 GB が要件を満たすかどうかを判断してください。ログストレージ用に割り当てられたディスクサイズを増やす必要がある場合は、次の設定をノード定義ファイルに追加して、デフォルトをオーバーライドします。- name: Compute count: 3 defaults: ... ansible_playbooks: - playbook: /usr/share/ansible/tripleo-playbooks/cli-overcloud-node-growvols.yaml extra_vars: role_growvols_args: default: /=8GB /tmp=1GB /var/log=<log_size>GB /var/log/audit=2GB /home=1GB /var=100%-
<log_size>を、ログファイルに割り当てるディスクのサイズに置き換えます。
-
-
Object Storage サービス (swift) とディスク全体のオーバークラウドイメージ
overcloud-hardened-uefi-fullを使用する場合に、ディスクのサイズと/varおよび/srvのストレージ要件に基づいて/srvパーティションのサイズを設定する必要があります。詳細は、Object Storage サービスのディスクパーティション全体の設定 を参照してください。 - オプション: カスタムリソースクラスまたはプロファイル機能を使用して、オーバークラウドノードを特定のロールに指定します。詳細は、リソースクラスを一致させることによるオーバークラウドノードのロールの指定 および プロファイルを一致させることによるオーバークラウドノードのロールの指定 を参照してください。
- ノードに割り当てるその他の属性を定義します。ノード定義ファイルでノード属性を設定するために使用できるプロパティーについて詳しくは、ベアメタルノードのプロビジョニング属性 を参照してください。ノード定義ファイルの例は、ノード定義ファイルの例 を参照してください。
オーバークラウドノードをプロビジョニングします。
(undercloud)$ openstack overcloud node provision \ [--templates <templates_directory> \] --stack <stack> \ --network-config \ --output <deployment_file> \ /home/stack/templates/<node_definition_file>-
オプション:
--templatesオプションを含めて、/usr/share/openstack-tripleo-heat-templatesにあるデフォルトテンプレートの代わりに独自のテンプレートを使用します。<templates_directory>は、テンプレートを含むディレクトリーへのパスに置き換えます。 -
<stack>を、ベアメタルノードがプロビジョニングされるスタックの名前に置き換えます。指定しない場合、デフォルトはovercloudです。 -
--network-configオプションの引数を含めて、cli-overcloud-node-network-config.yamlAnsible Playbook にネットワーク定義を提供します。Playbookcli-overcloud-node-network-config.yamlは、os-net-configツールを使用して、デプロイされたノードにネットワーク設定を適用します。--network-configを使用してネットワークを定義をしない場合は、network-environment.yamlファイルで{{role.name}}NetworkConfigTemplateパラメーターを設定する必要があります。設定しない場合は、デフォルトのネットワーク定義が使用されます。 -
<deployment_file>は、デプロイメントコマンドに含めるために生成する heat 環境ファイルの名前に置き換えます (例:/home/stack/templates/overcloud-baremetal-deployed.yaml)。 -
<node_definition_file>は、ノード定義ファイルの名前 (overcloud-baremetal-deploy.yamlなど) に置き換えます。
-
オプション:
別のターミナルでプロビジョニングの進捗を監視します。
(undercloud)$ watch openstack baremetal node list-
プロビジョニングが成功すると、ノードの状態が
availableからactiveに変わります。 - ノードのハードウェアまたはネットワーク設定の障害が原因でノードのプロビジョニングが失敗した場合は、プロビジョニング手順を再度実行する前に、失敗したノードを削除できます。詳細は、障害が発生したベアメタルノードをノード定義ファイルから削除する を参照してください。
-
プロビジョニングが成功すると、ノードの状態が
metalsmithツールを使用して、割り当てやポートなどを含むノードの統合ビューを取得します。(undercloud)$ metalsmith listノードとホスト名の関連付けを確認します。
(undercloud)$ openstack baremetal allocation list
次のステップ