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

Chapter 5. Extending Your Puppet Infrastructure with Modules

In the previous chapter, you learned about the tools that create modularized and reusable Puppet code in the form of classes and defined types. We discussed that almost all the Puppet resources should be separated into appropriate classes, except if they logically need to be part of a defined type. This is almost enough syntax to build manifests for an entire fleet of agent nodes - each selecting the appropriate composite classes, which in turn include further required classes, with all the classes recursively instantiating the defined types.

What has not been discussed up until now is the organization of the manifests in the filesystem. It is obviously undesirable to stuff all of your code into one large site.pp file. The answer to this problem is provided by modules and will be explained in this chapter.

Besides organizing classes and defines, modules are also a way to share common code. They are software libraries for Puppet manifests and plugins. They also offer a convenient place to locate the interface descriptions that were hinted at in the previous chapter. Puppet Labs runs a dedicated service for hosting open source modules, called the Puppet Forge.

The existence and general location of the modules were mentioned briefly in Chapter 3, A Peek under the Hood – Facts, Types, and Providers. It is now time to explore these and other aspects in greater detail. We'll cover the following topics in this chapter:

  • An overview of Puppet's modules
  • Maintaining environments
  • Following modules' best practices
  • Building a specific module
  • Finding helpful Forge modules
主站蜘蛛池模板: 剑川县| 安庆市| 江口县| 彝良县| 张掖市| 钦州市| 连江县| 余姚市| 勃利县| 弋阳县| 寻乌县| 武义县| 上饶市| 杭锦旗| 涟源市| 大荔县| 商洛市| 鲁甸县| 枣阳市| 云和县| 云龙县| 四川省| 茌平县| 庆城县| 读书| 改则县| 石门县| 枣庄市| 香河县| 苍梧县| 屯留县| 册亨县| 鄂伦春自治旗| 内丘县| 滨州市| 阜康市| 平昌县| 延安市| 德安县| 巴青县| 海门市|