自动生成 HTML 文档

An expert is someone who is one page ahead of you in the manual.

— David Knight

像大多数工程师一样,我从来没有阅读过手册,除非或者直到产品实际出现了十万火急的情况。 然而,随着你的配置清单代码不断增多且越来越复杂,使用 Puppet 的自动文档工具 puppet doc 为你的节点(node)和类(class)生成 HTML 文档是非常有用的。

操作步骤

在你的配置清单目录下运行如下的 puppet doc 命令:

puppet doc --all --outputdir=/var/www/html/puppet --mode rdoc \
  --manifestdir=/etc/puppet/manifests/

img/ch02sec04_1.png

工作原理

puppet doc 在 /var/www/html/puppet 目录下生成结构化的 HTML 文档树, 这与 RDoc 生成的文档很类似,RDoc 是流行的 Ruby 文档生成器。 这使理解不同配置清单代码之间的相互关系便得更容易, 因为你可以点击被包含的类名称便能看到它的定义。

更多用法

puppet doc 将根据你当前的配置清单生成基本的文档。 然而,你可以在你的配置清单文件中使用标准的 RDoc 语法包含更多的有用信息。 下面是一个在类中添加一些注释文档的例子:

class puppet {
 # This class sets up the Puppet client.
 #
 # ==Actions
 # Install a cron job to run Puppet.
 #
 # ==Requires
 # * Package["puppet"]
 #
    cron { "run-puppet":
        command => "/usr/sbin/puppet agent --test >/dev/null 2>&1",
        minute => inline_template("<%= hostname.hash.abs % 60 %>"),
    }
}

你在文档中为每个类添加的注释,会显示在生成的 HTML 文件里,如图所示:

img/ch02sec04_2.png