簡體   English   中英

簡化人偶清單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM