[英]Simplifying Puppet Manifest
我想使用現有的人偶模塊在服務器上配置多套東西,最簡單的例子是:
file { "/var/www/MYVARIABLEHERE":
ensure => "directory",
}
mysql::db { MYVARIABLEHERE:
user => MYVARIABLEHERE,
password => MYVARIABLEHERE,
host => 'localhost',
grant => ['all'],
}
有沒有一種方法可以將其抽象出來,這樣我可以說出一組預定義的選項,然后將它們傳遞到現有的人偶模塊中,這樣我就不會得到數千行長的清單文件?
按照下面的答案,我已經設置:
define mySites {
mysql::db { $name:
user => $name,
password => $name,
host => 'localhost',
grant => ['all'],
}
file { "/var/www/${name}.drupal.dev":
ensure => "directory",
}
}
然后,我致電:
mySites {"site": $name => "test", }
並得到以下錯誤:
Could not parse for environment production: Syntax error at 'name'; expected '}'
您可以使用define
類型來簡化:
define mydef( $usern, $passn) {
file { "/var/www/$usern":
ensure => "directory",
}
mysql::db { $usern :
user => $usern,
password => $passn,
host => "localhost",
grant => ['all'],
}
}
# You have to call the define type for each cases.
mydef{"u1": usern => "john", password => "pass", }
# It might be possible to provide multiple arrays to a define
# type if you use puppet's future parser
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.