- Puppet 3 Cookbook
- John Arundel
- 516字
- 2021-04-09 23:52:27
Using community Puppet style
If other people need to read or maintain your manifests, or if you want to share code with the community, it's a good idea to follow the existing style conventions as closely as possible. These govern such aspects of your code as layout, spacing, quoting, alignment, and variable references, and the official Puppet Labs recommendations on style are available at
http://docs.puppetlabs.com/guides/style_guide
How to do it…
In this section I'll show you a few of the more important examples and how to make sure that your code is style-compliant.
Indent your manifests using two spaces (not tabs), as follows:
node 'monitoring' inherits 'server' { include icinga::server include repo::apt }
Always quote your resource names, for example:
package { 'exim4':
Not
package { exim4:
Use single quotes for all strings, except when:
- The string contains variable references (for example,
${name}
) - The string contains character escape sequences (for example,
\n
)
In these cases you should use double quotes. Puppet doesn't process variable references or escape sequences unless they're inside double quotes.
Always quote parameter values that are not reserved words in Puppet. For example, the following values are not reserved words:
name => 'Nucky Thompson', mode => '0700', owner => 'deploy',
But these values are reserved words and therefore not quoted:
ensure => installed, enable => true, ensure => running,
Always include curly braces ({}
) around variable names when referring to them in strings, for example:
source => "puppet:///modules/webserver/${brand}.conf",
Otherwise Puppet's parser has to guess which characters should be a part of the variable name and which belong to the surrounding string. Curly braces make it explicit.
Always end lines that declare parameters with a comma, even if it is the last parameter:
service { 'memcached': ensure => running, enable => true, }
This is allowed by Puppet, and makes it easier if you want to add parameters later, or re-order the existing parameters.
When declaring a resource with a single parameter, make the declaration all on one line and with no trailing comma:
package { 'puppet': ensure => installed }
Where there is more than one parameter, give each parameter its own line:
package { 'rake': ensure => installed, provider => gem, require => Package['rubygems'], }
To make the code easier to read, line up the parameter arrows in line with the longest parameter, as follows:
file { "/var/www/${app}/shared/config/rvmrc": owner => 'deploy', group => 'deploy', content => template('rails/rvmrc.erb'), require => File["/var/www/${app}/shared/config"], }
The arrows should be aligned per resource, but not across the whole file, otherwise it can make it difficult for you to cut and paste code from one file to another.
There's more…
When several people are working on a codebase, it's easy for style inconsistencies to creep in. Fortunately, there's a tool available which can automatically check your code for compliance with the style guide: puppet-lint
. We'll see how to use this in the next section.
- Word 2010實戰技巧精粹
- 剪映短視頻剪輯與運營全攻略:視頻剪輯+音頻處理+后期特效+運營管理
- Mastering phpMyAdmin 3.1 for Effective MySQL Management
- 零基礎學AutoCAD 2018(全視頻教學版)
- 中文版Photoshop 2022基礎教程
- Maya 2020 超級學習手冊
- Python氣象應用編程
- 中文版Photoshop平面設計入門教程
- SketchUP草圖繪制從新手到高手
- 企業微信公眾平臺開發實戰:再小的個體也有自己的品牌
- Photoshop攝影后期必修5項核心技法 基本調整+光影校正+色彩修飾+局部處理+銳化降噪
- 中文版3ds Max 2012基礎培訓教程(第2版)
- CG數碼插畫場景藝術設計
- 平面設計綜合教程(Photoshop+Illustrator+CorelDRAW+InDesign)(第2版)
- jQuery UI Themes Beginner's Guide