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
# ovs-vsctl add-br br-ironic # ovs-vsctl add-port br-ironic IRONIC_PROVISIONING_NIC # ovs-vsctl show
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、
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
bridge_mappings =datacentre:br-ex,ironicnet:br-ironic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコンマ区切りのキーと値のペアの値は、Bare Metal Provisioning ネットワークの名前を、ネットワークに接続されている物理デバイスにマッピングします。
neutron-openvswitch-agent.service
を再起動して、統合ブリッジの一部としてbr-ironic
ブリッジを表示します。systemctl restart neutron-openvswitch-agent.service
# systemctl restart neutron-openvswitch-agent.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow neutron-server.service
を再起動して、新規接続を検出します。systemctl restart neutron-server.service
# systemctl restart neutron-server.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このステップを実行しなかった場合には、OpenStack Networking サービス内で Bare Metal Provisioning ネットワークを作成しようとすると、要求されたフラットネットワークが存在しないというメッセージが表示されて失敗します。
1.3.1. ベアメタルプロビジョニングデータベースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning が使用するデータベースおよびデータベースユーザーを作成します。この手順のすべての手順は、root ユーザーとしてログインし、データベースサーバーで実行する必要があります。
ベアメタルプロビジョニングデータベースの作成
データベースサービスに接続します。
mysql -u root
# mysql -u root
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ironic データベースを作成します。
mysql> CREATE DATABASE ironic CHARACTER SET utf8;
mysql> CREATE DATABASE ironic CHARACTER SET utf8;
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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';
mysql> GRANT ALL PRIVILEGES ON ironic.* TO 'ironic'@'%' IDENTIFIED BY 'PASSWORD'; mysql> GRANT ALL PRIVILEGES ON ironic.* TO 'ironic'@'localhost' IDENTIFIED BY 'PASSWORD';
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PASSWORD を、このユーザーとしてデータベースサーバーでの認証に使用されるセキュアなパスワードに置き換えます。
データベースの権限をフラッシュして、すぐに有効になるようにします。
mysql> FLUSH PRIVILEGES;
mysql> FLUSH PRIVILEGES;
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mysql クライアントを終了します。
mysql> quit
mysql> quit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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.IronicHostManager
# openstack-config --set /etc/nova/nova.conf \ DEFAULT scheduler_host_manager nova.scheduler.ironic_host_manager.IronicHostManager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Compute スケジューラーがインスタンスの変更を追跡できないようにします。
openstack-config --set /etc/nova/nova.conf DEFAULT scheduler_tracks_instance_changes false
# openstack-config --set /etc/nova/nova.conf DEFAULT scheduler_tracks_instance_changes false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のようにデフォルトのフィルターを設定します。
openstack-config --set /etc/nova/nova.conf DEFAULT baremetal_scheduler_default_filters AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter
# openstack-config --set /etc/nova/nova.conf DEFAULT baremetal_scheduler_default_filters AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Compute がデフォルトの Bare Metal Provisioning スケジューリングフィルターを使用するように設定します。
openstack-config --set /etc/nova/nova.conf \ DEFAULT scheduler_use_baremetal_filters True
# openstack-config --set /etc/nova/nova.conf \ DEFAULT scheduler_use_baremetal_filters True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Bare Metal Provisioning に正しい認証情報を使用するように Compute を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えます。
- 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"
# openstack-config --set /etc/nova/nova.conf database connection "mysql+pymysql://nova:NOVA_DB_PASSWORD@DB_IP/nova"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンピュートコントローラーノードで Compute スケジューラーサービスを再起動します。
systemctl restart openstack-nova-scheduler.service
# systemctl restart openstack-nova-scheduler.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンピュートノードでコンピュートサービスを再起動します。
systemctl restart openstack-nova-compute.service
# systemctl restart openstack-nova-compute.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
# grep ^dnsmasq_config_file /etc/neutron/dhcp_agent.ini dnsmasq_config_file =/etc/neutron/dnsmasq-neutron.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このファイルを編集して、ファイルの最後に以下の行を追加します。
Create the "ipxe" tag if request comes from iPXE user class
# Create the "ipxe" tag if request comes from iPXE user class dhcp-userclass=set:ipxe,iPXE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、OpenStack Networking DHCP エージェントサービスを再起動します。
systemctl restart neutron-dhcp-agent.service
# systemctl restart neutron-dhcp-agent.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow