《Puppet实战手册》——2.3 使用puppet-lint检查配置清单

简介: 使用一些风格约定是很有必要的,特别是代码编写工作存在协同的情况下。除非彼此能够在空格、跳格(Tab)、引用、对齐等方面达成一致的标准,否则,代码将会被认为非常丑陋并且难以阅读和维护。

本节书摘来自异步社区《Puppet实战手册》一书中的第2章,第2.3节,作者:【英】John Arundel著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.3 使用puppet-lint检查配置清单

Puppet实验室的官方风格指南列出了一些针对Puppet代码风格的约定,其中一些内容读者已经在上一节接触过。例如,根据风格指南,配置清单:

必须使用两个空格形式的软跳格(Tab);
不得使用文字制表符;
不得包含尾随空格;
每行最好不要超过80个字符;
代码块中的参数箭头(=>)需要对齐。
遵循风格指南可以使Puppet代码容易阅读和维护,并且,如果用户计划公开发布代码,与社区风格进行兼容是非常必要的。puppet-lint这个工具可以自动根据风格指南对代码进行检查。下面就来看看如何使用它。

准备工作
下面是安装puppet-lint需要执行的操作。

运行下面的命令(将以gem方式安装puppet-lint,因为gem中的版本比Ubuntu Precise仓库中的版本要新得多)。

ubuntu@cookbook:~/puppet$ sudo gem install puppet-lint 
 --no-ri --no-rdoc
Successfully installed puppet-lint-0.3.2
1 gem installed

操作步骤
按照下面的步骤使用puppet-lint。

1. 选择希望使用puppet-lint命令检查的Puppet配置清单文件,然后执行下面的命令:

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. 可以看到,puppet-lint发现了配置清单中的一些问题。修正这些问题,保存文件,重新使用puppet-lint来检查是否还有问题。所有问题都被解决后,这条命令不再有输出。

ubuntu@cookbook:~/puppet$ puppet-lint 
 modules/admin/manifests/ntp.pp
ubuntu@cookbook:~/puppet$

更多参考
读者可以在http://puppet-lint.com/获取关于puppet-lint更多的内容。这个网站详细地列出了每一种风格检查,并且解释了每一种错误信息的含义,以及解决它们的方法。

是否必须遵循Puppet的风格指南?或者,进一步讲,保证代码是被lint工具检查过的?这完全取决于用户自己。不过,仍然有一些事情需要考虑。

使用一些风格约定是很有必要的,特别是代码编写工作存在协同的情况下。除非彼此能够在空格、跳格(Tab)、引用、对齐等方面达成一致的标准,否则,代码将会被认为非常丑陋并且难以阅读和维护。
如果正在选择一组风格约定来遵循,选择由Puppet Labs发布并被社区使用在开放模块中的风格约定,这是个合理的选择。
话虽如此,如果希望在使用puppet-lint时针对代码忽略一些项目的检查,也是可以的。例如,如果希望puppet-lint在一行代码超过80个字符时不发出警告,可以在运行puppet-lint时使用如下参数:

puppet-lint --no-80chars-check
运行puppet-lint --help,可以看到检查配置的完整命令列表。

延伸阅读
参见1.10节。
参见8.9节。

相关文章
|
2月前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
71 3
|
安全 Linux 网络协议
puppet yum模块、配置仓储、mount模块
转载:http://blog.51cto.com/ywzhou/1577335 作用:自动为客户端配置YUM源,为使用yum安装软件包提供便捷。 1、服务端配置yum模块 (1)模块清单 [root@puppet ~]# tree /etc/puppe...
1119 0
|
网络协议 安全 网络安全
|
Perl 存储 数据挖掘
|
网络安全 Ruby 网络协议