18.3. DNS がポートに割り当てる名前の指定
Red Hat OpenStack Platform (RHOSP) Networking サービス (neutron) のポートエクステンション用 dns_domain (dns_domain_ports
) を有効にすると、内部 DNS によりポートに割り当てられる名前を指定することができます。
YAML 形式の環境ファイルで RHOSP Orchestration (heat) NeutronPluginExtensions
パラメーターを宣言して、ポートエクステンション用 dns_domain を有効にします。対応するパラメーター NeutronDnsDomain
を使用して、デフォルト値 openstacklocal
をオーバーライドするドメイン名を指定します。オーバークラウドの再デプロイ後に、OpenStack Client ポートコマンド port set
または port create
で --dns-name
を指定して、ポート名を割り当てることができます。
また、ポートエクステンション用 dns_domain を有効にすると、仮想マシンインスタンスのブート中に、Compute サービスが dns_name
属性にインスタンスの hostname
属性を自動的に設定します。ブートプロセスの最後に、dnsmasq はインスタンスのホスト名で割り当てられたポートを認識します。
手順
アンダークラウドに stack ユーザーとしてログインし、source コマンドで
stackrc
ファイルを読み込み、director コマンドラインツールを有効にします。例
$ source ~/stackrc
カスタム YAML 環境ファイル (
my-neutron-environment.yaml
) を作成します。注記丸かっこ内の値は、この手順のコマンド例で使用されるサンプルの値です。これらのサンプル値を、実際のサイトに適した値に置き換えてください。
例
$ vi /home/stack/templates/my-neutron-environment.yaml
ヒントアンダークラウドには、オーバークラウドの作成プランを形作るさまざまな Orchestration サービスのテンプレートが含まれます。YAML フォーマットの環境ファイルを使用して、オーバークラウドの特性をカスタマイズすることができます。このファイルで、Orchestration サービスのコアテンプレートコレクションのパラメーターおよびリソースを上書きします。必要に応じていくつでも環境ファイルを追加することができます。
環境ファイルに
parameter_defaults
セクションを追加します。このセクションで、ポートエクステンション用 dns_domaindns_domain_ports
を追加します。例
parameter_defaults: NeutronPluginExtensions: "qos,port_security,dns_domain_ports"
注記dns_domain_ports
を設定する場合は、デプロイメントで DNS Integration エクステンションdns_domain
も使用しないようにしてください。これらのエクステンションは互換性がなく、両方のエクステンションを同時に定義することはできません。また、
parameter_defaults
セクションで、NeutronDnsDomain
パラメーターを使用してドメイン名 (example.com
) を追加します。例
parameter_defaults: NeutronPluginExtensions: "qos,port_security,dns_domain_ports" NeutronDnsDomain: "example.com"
コア Orchestration テンプレート、環境ファイル、およびこの新しい環境ファイルを指定して、
openstack overcloud deploy
コマンドを実行します。重要後で実行される環境ファイルで定義されているパラメーターとリソースが優先されることになるため、環境ファイルの順序は重要となります。
例
$ openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yaml
検証
オーバークラウドにログインし、ネットワーク (
public
) に新しいポート (new_port
) を作成します。DNS 名 (my_port
) をポートに割り当てます。例
$ source ~/overcloudrc $ openstack port create --network public --dns-name my_port new_port
ポート (
new_port
) の詳細を表示します。例
$ openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_port
出力
+-------------------------+----------------------------------------------+ | Field | Value | +-------------------------+----------------------------------------------+ | dns_assignment | fqdn='my_port.example.com', | | | hostname='my_port', | | | ip_address='10.65.176.113' | | dns_domain | example.com | | dns_name | my_port | | name | new_port | +-------------------------+----------------------------------------------+
dns_assignment
セクションにおいて、ポートの完全修飾ドメイン名 (fqdn
) 値には、DNS 名 (my_port
) と、前のステップでNeutronDnsDomain
で設定したドメイン名 (example.com
) の連結が含まれています。作成したポート (
new_port
) を使用して、新しい仮想マシンインスタンス (my_vm
) を作成します。例
$ openstack server create --image rhel --flavor m1.small --port new_port my_vm
ポート (
new_port
) の詳細を表示します。例
$ openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_port
出力
+-------------------------+----------------------------------------------+ | Field | Value | +-------------------------+----------------------------------------------+ | dns_assignment | fqdn='my_vm.example.com', | | | hostname='my_vm', | | | ip_address='10.65.176.113' | | dns_domain | example.com | | dns_name | my_vm | | name | new_port | +-------------------------+----------------------------------------------+
Compute サービスは、
dns_name
属性を元の値 (my_port
) からポートが関連付けられたインスタンスの名前 (my_vm
) に変更します。
関連情報
- Advanced Overcloud Customization の Environment files
- Advanced Overcloud Customization ガイドの Including environment files in overcloud creation
- コマンドラインインターフェイスリファレンス の port
- コマンドラインインターフェイスリファレンス の server create