6.6. 新規ロールの作成
コンポーザブルサービスのアーキテクチャーを使用して、デプロイメントの要件に応じて新規ロールを作成することができます。たとえば、OpenStack Dashboard (horizon
) だけをホストする新しい Horizon
ロールを作成するケースを考えます。
ロール名は文字で始まり、文字または数字で終わり、文字、数字、およびハイフンのみを含む必要があります。ロール名にはアンダースコアを使用しないでください。
手順
デフォルトの
roles
ディレクトリーのカスタムコピーを作成します。$ cp -r /usr/share/openstack-tripleo-heat-templates/roles ~/.
~/roles/Horizon.yaml
という名前の新規ファイルを作成して、ベースおよびコアの OpenStack Dashboard サービスが含まれたHorizon
ロールを新規作成します。- name: Horizon CountDefault: 1 HostnameFormatDefault: '%stackname%-horizon-%index%' ServicesDefault: - OS::TripleO::Services::CACerts - OS::TripleO::Services::Kernel - OS::TripleO::Services::Ntp - OS::TripleO::Services::Snmp - OS::TripleO::Services::Sshd - OS::TripleO::Services::Timezone - OS::TripleO::Services::TripleoPackages - OS::TripleO::Services::TripleoFirewall - OS::TripleO::Services::SensuClient - OS::TripleO::Services::FluentdClient - OS::TripleO::Services::AuditD - OS::TripleO::Services::Collectd - OS::TripleO::Services::MySQLClient - OS::TripleO::Services::Apache - OS::TripleO::Services::Horizon
CountDefault
を1
に設定して、デフォルトのオーバークラウドに常にHorizon
ノードが含まれるようにすると良いでしょう。(オプション) 既存のオーバークラウド内でサービスをスケーリングする場合は、既存のサービスを
Controller
ロール上に保持します。新規オーバークラウドを作成して、OpenStack Dashboard がスタンドアロンのロールに残るようにするには、Controller
ロールの定義から OpenStack Dashboard コンポーネントを削除します。- name: Controller CountDefault: 1 ServicesDefault: ... - OS::TripleO::Services::GnocchiMetricd - OS::TripleO::Services::GnocchiStatsd - OS::TripleO::Services::HAproxy - OS::TripleO::Services::HeatApi - OS::TripleO::Services::HeatApiCfn - OS::TripleO::Services::HeatApiCloudwatch - OS::TripleO::Services::HeatEngine # - OS::TripleO::Services::Horizon # Remove this service - OS::TripleO::Services::IronicApi - OS::TripleO::Services::IronicConductor - OS::TripleO::Services::Iscsid - OS::TripleO::Services::Keepalived ...
~/roles
ディレクトリーをソースに使用して、新しいroles_data-horizon.yaml
ファイルを生成します。$ openstack overcloud roles generate -o roles_data-horizon.yaml \ --roles-path ~/roles \ Controller Compute Horizon
特定のノードにタグ付けできるように、このロールの新しいフレーバーを定義します。この例では、以下のコマンドを使用して
horizon
フレーバーを作成します。horizon
フレーバーを作成します。(undercloud)$ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 horizon
注記これらのプロパティーはインスタンスのスケジューリングには使用されませんが、Compute スケジューラーはディスクサイズを使用してルートパーティションサイズを決定します。
ダッシュボードサービス (horizon) 用に指定する各ベアメタルノードに、カスタムリソースクラスでタグを付けます。
(undercloud)$ openstack baremetal node set --resource-class baremetal.HORIZON <NODE>
<NODE>
をベアメタルノードの ID に置き換えます。Horizon
フレーバーをカスタムリソースクラスに関連付けます。(undercloud)$ openstack flavor set --property resources:CUSTOM_BAREMETAL_HORIZON=1 horizon
ベアメタルノードのリソースクラスに対応するカスタムリソースクラスの名前を指定するには、リソースクラスを大文字に変換し、句読点をアンダースコアに置き換え、
CUSTOM_
が付いた値の接頭辞を追加します。注記フレーバーが要求できるのは、ベアメタルリソースクラスの 1 つのインスタンスだけです。
以下のフレーバー属性を設定して、Compute スケジューラーがインスタンスのスケジューリングにベアメタルフレーバー属性を使用するのを防ぎます。
(undercloud)$ openstack flavor set --property resources:VCPU=0 --property resources:MEMORY_MB=0 --property resources:DISK_GB=0 horizon
以下の環境ファイルのスニペットを使用して、Horizon ノードの数とフレーバーを定義します。
parameter_defaults: OvercloudHorizonFlavor: horizon HorizonCount: 1
ご自分のデプロイメントに該当するその他の環境ファイルと共に、新しい
roles_data-horizon.yaml
ファイルおよび環境ファイルをopenstack overcloud deploy
コマンドに追加します。$ openstack overcloud deploy --templates -r ~/templates/roles_data-horizon.yaml -e ~/templates/node-count-flavor.yaml
この設定により、コントローラーノードが 1 台、コンピュートノードが 1 台、ネットワーカーノードが 1 台の 3 ノード設定のオーバークラウドが作成されます。オーバークラウドのノードリストを表示するには、以下のコマンドを実行します。
$ openstack server list