ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 使用 Puppet 社区规范 > A society made up of individuals who were all capable of original thought would probably be unendurable. > > — H. L. Mencken “随大溜” 有时会是个好主意。如果其他人需要阅读或管理你的配置清单, 或者如果你想要分享代码到社区, 那么尽可能遵循现有的样式约定会是个好主意。 #### 操作步骤 1. 将你的资源名用双引号括起来;例如使用 package { "exim4": 而不是 package { exim4: 当使用一些像连字符和空格这样的字符时很容易引起 Puppet 解析器的混乱, 明智而又安全的做法是始终使用双引号将所有的资源名括起来。 2. 总是将非 Puppet 保留字的参数值用双引号括起来,例如: ``` name => "Nucky Thompson", mode => "0700", owner => "deploy", ``` 但保留字不用使用引号: ``` ensure => installed, enable => true, ensure => running, ``` 当在字符串中引用变量的值时,始终使用大括号将变量名括起来。例如: ``` source => "puppet:///modules/webserver/${brand}.conf", ``` 否则 Puppet 的解析器不得不猜测哪些字符是变量名的一部分。使用大括号将使其变得清晰。 3. 总是以逗号结束参数声明的行,即使它是最后一个参数: ``` service { "memcached": ensure => running, enable => true, } ``` 很多时候,当你编辑文件时会追加一个额外的参数, 而忘记在原来最后一行的末尾添加必要的逗号! 4. 当声明仅有一个参数的资源时,将声明放在一行上且无需使用结尾的逗号: ``` package { "puppet": ensure => installed } ``` 5. 当声明有多个参数的资源时,每个参数占一行: ``` package { "rake": ensure => installed, provider => gem, require => Package["rubygems"], } ``` 6. 当声明 **符号链接**(**symlinks**)时,使用 ensure => link: ``` file { "/etc/php5/cli/php.ini": ensure => link, target => "/etc/php.ini", } ``` 7. 为了使代码便于阅读,所有的箭头以最长一个参数对齐,例如: ``` file { "/var/www/${app}/shared/config/rvmrc": owner => "deploy", group => "deploy", content => template("rails/rvmrc"), require => File["/var/www/${app}/shared/config"], } ``` 每个资源中的箭头(=>)都要对齐,而不是每个文件中的箭头都对齐; 否则会在不同文件之间复制代码时带来麻烦。 #### 更多用法 Puppet Labs 网站上维护着 Puppet 社区规范指南文档: [http://docs.puppetlabs.com/guides/style_guide.html](http://docs.puppetlabs.com/guides/style_guide.html) 。 Tim Sharpe 写了一个 puppet-lint 工具, 你可以用它检查你的配置清单是否符合规范。 运行 gem install puppet-lint 安装它,详细的信息请参考 [https://github.com/rodjek/puppet-lint](https://github.com/rodjek/puppet-lint) 。