複数の VM を管理する「サイト モジュール」を作成しています。
このプロジェクトをテンプレートとして使用しました: https://github.com/nvalentine-puppetlabs/puppet-siteこれは、Craig Dunn がhttp://www.craigdunn.org/2012/05/239で説明した規則に基づいています。 /
Puppet 3.4.3 (Puppet Enterprise 3.2.1) を使用しています。
基本プロファイルを含めるように役割クラスを変更しました。
class site::role inherits site::role::params {
require site
notify { "site::role": }
include site::profile::base
}
class site::profile::base inherits site::profile::base::params {
require site::profile
notify { "site::profile::base": }
include site::users
package { [
'htop',
'rsync',
'openssl',
'man',
'wget',
'nano',
'lsb-release',
'tree' ]:
ensure => present,
}
}
クラス site::role::www をノードに追加しました。
これまでのところすべてうまくいきました。すべてのパッケージがインストールされました。
次に、www ロールと Web サーバー プロファイルを作成しようとしました。
class site::role::www inherits site::role::www::params {
require site::role
notify { "site::role::www": }
# perhaps all nodes at your site use this as a base?
include site::profile::webserver
}
class site::profile::webserver inherits site::profile::webserver::params {
require site::profile
notify { "site::profile::webserver": }
file { "/home/httpd/":
ensure => "directory",
}
->
class { 'apache':
serveradmin => 'dev@domain.com',
server_tokens => 'Prod'
}
->
apache::vhost { "$ipaddress":
port => '80',
docroot => '/home/httpd/exploit',
}
include apache::mod::php
}
しかし、webserver プロファイルで宣言された変更は考慮されません...
モジュールの構造:
site/
|-- LICENSE
|-- Modulefile
|-- README.md
|-- manifests
| |-- init.pp
| |-- params.pp
| |-- profile
| | |-- base
| | | `-- params.pp
| | |-- base.pp
| | |-- params.pp
| | |-- webserver
| | | `-- params.pp
| | `-- webserver.pp
| |-- profile.pp
| |-- role
| | |-- params.pp
| | |-- www
| | | `-- params.pp
| | `-- www.pp
| |-- role.pp
| `-- users.pp
|-- metadata.json
`-- tests
|-- init.pp
|-- site_profile.pp
|-- site_profile_base.pp
`-- site_role.pp
エージェント ノードの classes.txt の内容:
root@****:/var/opt/lib/pe-puppet# cat classes.txt
pe_mcollective
site::role::www
settings
default
pe_mcollective
pe_mcollective::params
pe_mcollective::role::agent
pe_mcollective::server
pe_mcollective::server::plugins
pe_mcollective::shared_key_files
site::role::www::params
site::params
site::role::params
site::role::www
site::role
site
site::profile::base::params
site::profile::params
site::profile::base
site::profile
site::users