2

複数の 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
4

0 に答える 0