Puppet をスタンドアロンモードで (初めて) 実行して mongodb をインストールすると、次のpuppet apply -v node.pp
エラーが発生します。
Error: undefined method `downcase' for :undef:Symbol at /etc/puppet/modules/mongodb/manifests/install.pp:12 on node ec2.internal
Wrapped exception:
undefined method `downcase' for :undef:Symbol
Error: undefined method `downcase' for :undef:Symbol at /etc/puppet/modules/mongodb/manifests/install.pp:12 on node ec2.internal
私は簡単なグーグル検索を行いましたが、何も明らかになりませんでした。何が欠けているのか誰か説明してもらえますか? Puppet をスタンドアロンモードで実行することとは関係ないと思います。ところで、Debian wheezy で Puppet v3.2.1 と Ruby v1.8.7 を実行しています。
これは私のmongodbモジュールの簡易版で、aptは git からダウンロードした標準の puppet-modue です。
params.pp:
# == Class: mongodb::params ==
#
class mongodb::params {
$server_pkg_name = $::operatingsystem ? {
Debian => 'mongodb-10gen',
Redhat => 'mongo-10gen-server',
}
}
repos.pp:
# == mongodb::repos ==
#
class mongodb::repos {
if $::operatingsystem == 'Debian' {
class { 'apt': }
apt::source { '10gen':
location => 'http://downloads-distro.mongodb.org/repo/debian-sysvinit',
release => 'dist',
repos => '10gen',
key => '7F0CEB10',
key_server => 'keyserver.ubuntu.com',
include_src => false;
}
}
#...... Other operatingsystem .......
}
インストール.pp:
# == Class: mongodb::install
#
class mongodb::install {
class { 'mongodb::params': }
anchor { 'mongodb::install::begin': }
anchor { 'mongodb::install::end': }
package { 'mongodb-server':
name => "$::mongodb::params::server_pkg_name",
ensure => installed,
require => [ Anchor['mongodb::install::begin'], Class[$::mongodb::repos] ],
before => Anchor['mongodb::install::end']
}
}
init.pp:
# == Class: mongodb ==
#
class mongodb {
include mongodb::repos
include mongodb::install
}
node.pp:
node default {
class { 'mongodb': }
}
何が欠けているのか誰か知っていますか?他に必要な情報があれば教えてください。前もって感謝します。乾杯!!