官术网_书友最值得收藏!

  • Puppet 3 Cookbook
  • John Arundel
  • 493字
  • 2021-04-09 23:52:27

Checking your manifests with puppet-lint

The Puppet Labs official style guide outlines a number of style conventions for Puppet code, some of which we've touched on in the preceding section. For example, according to the style guide, manifests:

  • Must use two-space soft tabs
  • Must not use literal tab characters
  • Must not contain trailing white space
  • Should not exceed an 80 character line width
  • Should align parameter arrows (=>) within blocks

Following the style guide will make sure that your Puppet code is easy to read and maintain and, if you're planning to release your code to the public, style compliance is essential. The puppet-lint tool will automatically check your code against the style guide. Here's how to use it:

Getting ready

Here's what you need to do to install puppet-lint:

  1. Run the following command (we'll install puppet-lint as a gem, because that version is much more up-to-date than the APT package available in the Ubuntu Precise repo):
    ubuntu@cookbook:~/puppet$ sudo gem install puppet-lint 
     --no-ri --no-rdoc
    Successfully installed puppet-lint-0.3.2
    1 gem installed
    

How to do it...

Follow these steps to use puppet-lint:

  1. Choose a Puppet manifest file that you want to check with puppet-lint, and run the following command:
    ubuntu@cookbook:~/puppet$ puppet-lint modules/admin/manifests/ntp.pp
    WARNING: indentation of => is not properly aligned on line 9
    ERROR: trailing whitespace found on line 13
    WARNING: double quoted string containing no variables
     on line 3
    
  2. As you can see, puppet-lint found a number of problems with the manifest. Correct them, save the file, and rerun puppet-lint to check that all is well. If so, you'll see no output:
    ubuntu@cookbook:~/puppet$ puppet-lint 
     modules/admin/manifests/ntp.pp
    ubuntu@cookbook:~/puppet$
    

There's more...

You can find out more about puppet-lint at the website

http://puppet-lint.com/

The website lists each of the style checks in detail, and explains what the error messages mean and what to do about them.

Should you follow the Puppet style guide and, by extension, keep your code lint-clean? It's up to you, but here are a couple of things to think about:

  • It makes sense to use some style conventions, especially when you're working collaboratively on code. Unless you and your colleagues can agree on standards for whitespace, tabs, quoting, alignment, and so on, your code will be messy and difficult to read or maintain.
  • If you're choosing a set of style conventions to follow, the logical choice would be that issued by Puppet Labs and adopted by the community for use in public modules.

Having said that, it's possible to tell puppet-lint to ignore certain checks if you've chosen not to adopt them in your codebase. For example, if you don't want puppet-lint to warn you about code lines exceeding 80 characters, you can run puppet-lint with the following option:

puppet-lint --no-80chars-check

Run puppet-lint --help to see the complete list of check configuration commands.

See also

  • The Automatic syntax checking with Git hooks recipe in Chapter 1, Puppet Infrastructure
  • The Testing your manifests with rspec-puppet recipe in Chapter 8, External Tools and the Puppet Ecosystem
主站蜘蛛池模板: 德庆县| 仁布县| 遵化市| 霍邱县| 明光市| 吴江市| 南昌县| 茂名市| 东源县| 新泰市| 汝阳县| 通山县| 荔浦县| 恩平市| 铜梁县| 灌南县| 高邮市| 南和县| 平利县| 翁源县| 黄山市| 玉屏| 革吉县| 万年县| 汉川市| 溧水县| 安泽县| 佛冈县| 丹东市| 资中县| 胶南市| 永昌县| 平泉县| 馆陶县| 同江市| 襄汾县| 靖江市| 黄冈市| 高要市| 凤山县| 九龙坡区|