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-
nameパラメーターをカスタムロールの名前に設定します。カスタムロール名の最大長は 47 文字です。 -
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