Vagrand, Puppet, Guard (6)
参考にしている Example42 なナニが更新されているのを確認。以下で取得。
git clone --recursive git://github.com/example42/puppet-modules-nextgen.git
実は cucumber 実行する時に以下な warning が出てまして
Dynamic lookup of $operatingsystem at (略) puppet-repo/modules/apache/manifests/params.pp:24 is deprecated. Support will be removed in Puppet 2.8. Use a fully-qualified variable name (e.g., $classname::variable) or parameterized classes.
一体これは何でしょ、というあたりから始まってます。で、色々探してみるに nextgen なナニを発見した訳です。
結論から言うと
case $apache::operatingsystem {
とか
$packagename = $operatingsystem ? {
みたいな記述は NG で
case $::operatingsystem {
みたいな記述にしろよな、ということらしい。
# ってまだ試験していないのでアレですが (を
そりゃ良いとして
取得した nextgen な中の apt なパケジの記述を探してみたのですが導入な apt-get install の記述が無い。例えば jenkins というディレクトリがあったので中身を確認してみたのですが、導入云々は install.pp というマニフェストの以下な記述らしく以下 (一部のみ引用)。
class jenkins::install inherits jenkins { case $jenkins::install { package: { require jenkins::repository package { 'jenkins': ensure => $jenkins::manage_package, name => $jenkins::package, } }
jenkins::repository は何処か、と言いつつ探してみたら repository.pp というファイルで中身の一部が以下。
class jenkins::repository inherits jenkins { case $::operatingsystem { ubuntu , debian: { file { 'jenkins.list': ensure => present, path => '/etc/apt/sources.list.d/jenkins.list', mode => '0644', owner => 'root', group => 'root', content => 'deb http://pkg.jenkins-ci.org/debian binary/', before => Exec['aptkey_add_jenkins'], } exec { 'aptkey_add_jenkins': command => 'wget -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | apt-key add -', unless => 'apt-key list | grep -q D50582E6', path => '/bin:/usr/bin', } exec { 'aptget_update_jenkins': command => 'apt-get update', subscribe => File['jenkins.list'], path => '/bin:/usr/bin', } }
ええと jenkins::install が package であるとすると init.pp に以下な記述がありますね。
### Managed resources # Installation is managed in dedicated class require jenkins::install if $jenkins::source or $jenkins::template or $jenkins::install == 'package' { file { 'jenkins.conf': ensure => $jenkins::manage_file, path => $jenkins::config_file, mode => $jenkins::config_file_mode, owner => $jenkins::config_file_owner, group => $jenkins::config_file_group, require => Class['jenkins::install'], source => $jenkins::manage_file_source, content => $jenkins::manage_file_content, replace => $jenkins::manage_file_replace, audit => $jenkins::manage_audit, } }
ちょっと手元の環境に盛り込んで試験してみたいのですが、vagrant が動かず guard で云々することができていなかったりしてます。
とりあえず virtualbox だか vagrant だかの問題解決からやらないとorz
類推だらけのエントリ
全く申し訳ない限りなんですが、ご容赦頂ければ幸いです。