Menu Close
Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
5.7. Puppet: オーバークラウドへのカスタム設定の適用
これまで、新規バックエンドの設定を OpenStack Puppet モジュールに追加する方法を説明しました。本項では、director が新規設定を適用する方法を説明します。
Heat テンプレートは、OS::Heat::SoftwareConfig
リソースで Puppet 設定を適用可能なフックを提供します。このプロセスは、Bash スクリプトを追加して実行する方法に似ています。ただし、group: script
フックを使用するのではなく、group: puppet
フックを使用します。
たとえば、公式の Cinder Puppet モジュールを使用して NFS Cinder バックエンドを有効化する Puppet マニフェスト (example-puppet-manifest.pp
) があるとします。
cinder::backend::nfs { 'mynfsserver': nfs_servers => ['192.168.1.200:/storage'], }
Puppet の設定は、cinder::backend::nfs
の定義型を使用して新規リソースを作成します。Heat を使用してこのリソースを適用するには、Puppet マニフェストを実行する基本的な heat テンプレート (puppet-config.yaml
) を作成します。
heat_template_version: 2014-10-16 parameters: servers: type: json resources: ExtraPuppetConfig: type: OS::Heat::SoftwareConfig properties: group: puppet config: get_file: example-puppet-manifest.pp options: enable_hiera: True enable_facter: False ExtraPuppetDeployment: type: OS::Heat::SoftwareDeployments properties: config: {get_resource: ExtraPuppetConfig} servers: {get_param: servers} actions: ['CREATE','UPDATE']
次に、OS::TripleO::NodeExtraConfigPost
リソース種別として heat テンプレートを登録する環境ファイル (puppet_config.yaml
) を作成します。
resource_registry: OS::TripleO::NodeExtraConfigPost: puppet_config.yaml
この例は、前項の script
フックの例から SoftwareConfig
および SoftwareDeployments
を使用する点で似ています。ただし、この例では以下の点が異なります。
-
puppet
フックを実行するためにgroup: puppet
を設定します。 -
config
属性はget_file
属性を使用して、追加の設定が含まれる Puppet マニフェストを参照します。 options
属性には、Puppet 設定固有のオプションが含まれます。-
enable_hiera
オプションは、Puppet 設定で Hiera データを使用できるようにします。 -
enable_facter
オプションは、facter
コマンドからシステムファクトを使用する Puppet 設定を有効にします。
-
この例では、Puppet マニフェストをオーバークラウドのソフトウェア設定の一部として追加する方法を示します。これにより、オーバークラウドのイメージで既存の Puppet モジュールから特定の設定クラスを適用する方法ができ、特定のソフトウェアやハードウェアを使用するようにオーバークラウドをカスタマイズしやすくなります。