6.13. 初回起動での設定のカスタマイズ
director は、オーバークラウドの初期設定時に全ノードに設定を行うメカニズムを提供し、
cloud-init
でこの設定をアーカイブします。アーカイブした内容は、OS::TripleO::NodeUserData
リソース種別を使用して呼び出すことが可能です。
以下の例は、全ノード上の IP アドレスを使用してネームサーバーを更新することを目的とします。まず基本的な Heat テンプレート (
/home/stack/templates/nameserver.yaml
) を作成する必要があります。このテンプレートは、固有のネームサーバーが指定された各ノードの resolv.conf
を追加するスクリプトを実行します。OS::TripleO::MultipartMime
リソース種別を使用して、この設定スクリプトを送信します。
heat_template_version: 2014-10-16 description: > Extra hostname configuration resources: userdata: type: OS::Heat::MultipartMime properties: parts: - config: {get_resource: nameserver_config} nameserver_config: type: OS::Heat::SoftwareConfig properties: config: | #!/bin/bash echo "nameserver 192.168.1.1" >> /etc/resolv.conf outputs: OS::stack_id: value: {get_resource: userdata}
次に、
OS::TripleO::NodeUserData
リソース種別として Heat テンプレートを登録する環境ファイル (/home/stack/templates/firstboot.yaml
) を作成します。
resource_registry: OS::TripleO::NodeUserData: /home/stack/templates/nameserver.yaml
初回起動の設定を追加するには、最初にオーバークラウドを作成する際に、この環境ファイルをスタックに追加します。たとえば、以下のコマンドを実行します。
$ openstack overcloud deploy --templates -e /home/stack/templates/firstboot.yaml
-e
は、オーバークラウドのスタックに環境ファイルを適用します。
これにより、初回作成/起動時に、全ノードに設定が追加されます。オーバークラウドのスタックの更新など、これらのテンプレートを後ほど追加しても、このスクリプトは実行されません。
重要
OS::TripleO::NodeUserData
は、1 つの Heat テンプレートに対してのみ登録することが可能です。それ以外に使用すると、最初に使用した Heat テンプレートの内容が上書きされてしまいます。