1.3. Bare Metal Provisioning サービス用コントローラーノードの設定
以下の手順は、Bare Metal Provisioning Database の作成 セクションを除き、root ユーザーとして Red Hat OpenStack Platform デプロイメント内のすべてのコントローラーノードで実行する必要があります。この手順は、すべてデータベースを共有しているため、1 つのコントローラーで実行する必要があります。
コントローラーノードで Bare Metal Provisioning ネットワークが Open vSwitch に接続されていることを確認し、OpenStack デプロイメントがそれに到達できるようにする必要があります。
Open vSwitch にブリッジを追加します。
# ovs-vsctl add-br br-ironic # ovs-vsctl add-port br-ironic IRONIC_PROVISIONING_NIC # ovs-vsctl showここでは、
br-ironicはブリッジの名前であり、IRONIC_PROVISIONING_NICはベアメタルプロビジョニングネットワークに接続されている NIC です。ovs-vsctl showコマンドを使用すると、関連付けられたポートで新しいブリッジが作成されていることを確認できますが、br-int統合ブリッジに新しいブリッジへのパッチがないことがわかります。統合ブリッジに新しいブリッジを追加するには、以下のプラグインファイルを更新する必要があります。
以下のように ML2 設定ファイル
/etc/neutron/plugins/ml2/ml2_conf.iniを更新します。-
type_driversパラメーターについては、ドライバー間でflatがリストされていることを確認します(例:type_drivers = vxlan,vlan,flat,gre)。これはコンマ区切りのリストです。 -
mechanism_driversパラメーターについては、mechanism_drivers =openvswitchなど、ドライバー間で openvswitch オプションが表示されていることを確認します。これはコンマ区切りのリストです。 -
flat_networksパラメーターについては、Bare Metal Provisioning ネットワークを参照する名前を作成します(例:ironicnet)。flat_networks=datacentre,ironicnet など、この名前が一覧表示されている flat_networksにリストされていることを確認します。これはコンマ区切りのリストです。 -
Bare Metal Provisioning ネットワークに VLAN を使用している場合は、
ironicnet:VLAN_START:VLAN_ENDの形式でnetwork_vlan_rangesパラメーターを追加します(例:network_vlan_ranges =datacentre:1:1000)。これはコンマ区切りのリストです。 -
enable_security_groupパラメーターはすでに有効になっているはずです。ただし、設定されていない場合は、値をTrueに変更します(例:enable_security_group = True)。
-
/etc/neutron/plugins/ml2/openvswitch_agent.iniファイルでbridge_mappingsパラメーターを見つけ、以下のように更新します。bridge_mappings =datacentre:br-ex,ironicnet:br-ironicこのコンマ区切りのキーと値のペアの値は、Bare Metal Provisioning ネットワークの名前を、ネットワークに接続されている物理デバイスにマッピングします。
neutron-openvswitch-agent.serviceを再起動して、統合ブリッジの一部としてbr-ironicブリッジを表示します。# systemctl restart neutron-openvswitch-agent.serviceneutron-server.serviceを再起動して、新規接続を検出します。# systemctl restart neutron-server.service注記このステップを実行しなかった場合には、OpenStack Networking サービス内で Bare Metal Provisioning ネットワークを作成しようとすると、要求されたフラットネットワークが存在しないというメッセージが表示されて失敗します。
1.3.1. ベアメタルプロビジョニングデータベースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning が使用するデータベースおよびデータベースユーザーを作成します。この手順のすべての手順は、root ユーザーとしてログインし、データベースサーバーで実行する必要があります。
ベアメタルプロビジョニングデータベースの作成
データベースサービスに接続します。
# mysql -u rootironic データベースを作成します。
mysql> CREATE DATABASE ironic CHARACTER SET utf8;ironic データベースユーザーを作成し、ユーザーに ironic データベースへのアクセスを許可します。
mysql> GRANT ALL PRIVILEGES ON ironic.* TO 'ironic'@'%' IDENTIFIED BY 'PASSWORD'; mysql> GRANT ALL PRIVILEGES ON ironic.* TO 'ironic'@'localhost' IDENTIFIED BY 'PASSWORD';PASSWORD を、このユーザーとしてデータベースサーバーでの認証に使用されるセキュアなパスワードに置き換えます。
データベースの権限をフラッシュして、すぐに有効になるようにします。
mysql> FLUSH PRIVILEGES;mysql クライアントを終了します。
mysql> quit
1.3.2. Bare Metal Provisioning 用 OpenStack Compute サービスの設定 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning ドライバー用に Compute サービスを設定します。このドライバーを使用すると、Compute は仮想マシンのプロビジョニングに使用されるのと同じ API を使用して物理マシンをプロビジョニングできます。各 openstack-nova-compute ノードには指定できるドライバーは 1 つだけです。Bare Metal Provisioning ドライバーを持つノードは、物理マシンのみをプロビジョニングできます。Bare Metal Provisioning ドライバーを使用してすべてのベアメタルノードをプロビジョニングするには、1 つの openstack-nova-compute ノードを割り当てることを推奨します。次の手順はすべて、root ユーザーとしてログインし、選択したコンピュートノードで実行する必要があります。
ベアメタルプロビジョニング用の OpenStack Compute の設定
Bare Metal Provisioning スケジューラーのホストマネージャーを使用するように Compute を設定します。
# openstack-config --set /etc/nova/nova.conf \ DEFAULT scheduler_host_manager nova.scheduler.ironic_host_manager.IronicHostManagerCompute スケジューラーがインスタンスの変更を追跡できないようにします。
# openstack-config --set /etc/nova/nova.conf DEFAULT scheduler_tracks_instance_changes false以下のようにデフォルトのフィルターを設定します。
# openstack-config --set /etc/nova/nova.conf DEFAULT baremetal_scheduler_default_filters AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilterCompute がデフォルトの Bare Metal Provisioning スケジューリングフィルターを使用するように設定します。
# openstack-config --set /etc/nova/nova.conf \ DEFAULT scheduler_use_baremetal_filters TrueBare Metal Provisioning に正しい認証情報を使用するように Compute を設定します。
# openstack-config --set /etc/nova/nova.conf \ ironic admin_username ironic # openstack-config --set /etc/nova/nova.conf \ ironic admin_password PASSWORD # openstack-config --set /etc/nova/nova.conf \ ironic admin_url http://IDENTITY_IP:35357/v2.0 # openstack-config --set /etc/nova/nova.conf \ ironic admin_tenant_name service # openstack-config --set /etc/nova/nova.conf \ ironic api_endpoint http://IRONIC_API_IP:6385/v1以下の値を置き換えます。
- PASSWORD を、Bare Metal Provisioning が Identity での認証に使用するパスワードに置き換えます。
- IDENTITY_IP は、ID をホストするサーバーの IP アドレスまたはホスト名に置き換えます。
- IRONIC_API_IP は、Bare Metal Provisioning API サービスをホストするサーバーの IP アドレスまたはホスト名に置き換えます。
ironicコンピュートノードでnovaデータベースの認証情報を設定します。# openstack-config --set /etc/nova/nova.conf database connection "mysql+pymysql://nova:NOVA_DB_PASSWORD@DB_IP/nova"コンピュートコントローラーノードで Compute スケジューラーサービスを再起動します。
# systemctl restart openstack-nova-scheduler.serviceコンピュートノードでコンピュートサービスを再起動します。
# systemctl restart openstack-nova-compute.service
1.3.3. OpenStack Networking DHCP エージェントを設定して iPXE 要求にタグを付ける リンクのコピーリンクがクリップボードにコピーされました!
iPXE からの OpenStack Networking の DHCP 要求には、ipxe という DHCP タグを用意して、クライアントが boot.ipxe スクリプトを取得するために HTTP 操作を実行する必要があることを DHCP サーバーに知らせる必要があります。そのためには、OpenStack Networking DHCP Agent サービスで使用される dnsmasq 設定ファイルに dhcp-userclass エントリーを追加します。
オーバークラウドコントローラーで、DHCP エージェントが使用している
dnsmasqファイルを確認します。# grep ^dnsmasq_config_file /etc/neutron/dhcp_agent.ini dnsmasq_config_file =/etc/neutron/dnsmasq-neutron.confこのファイルを編集して、ファイルの最後に以下の行を追加します。
# Create the "ipxe" tag if request comes from iPXE user class dhcp-userclass=set:ipxe,iPXEファイルを保存して、OpenStack Networking DHCP エージェントサービスを再起動します。
# systemctl restart neutron-dhcp-agent.service