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

  • Mastering Puppet 5
  • Ryan Russell Yates Jason Southgate
  • 210字
  • 2021-07-16 17:46:07

Having a single point of entry to the module

init.pp should be the single entry point for the module. In this way, someone reviewing the documentation in particular, as well as the code in init.pp, can have a complete overview of the module's behavior.

If you've used encapsulation effectively and used descriptive class names, you can get a very good sense just by looking at init.pp of how the module actually manages the software.

Modules that have configurable parameters should be configurable in a single way and in this single place. The only exception to this would be, for example, a module such as the Apache module, where one or more virtual directories are also configurable.

Ideally, you can use your module with a simple include statement, as follows:

include mymodule

You can also use it with the use of a class declaration, as follows:

class {'mymodule':
myparam => false,
}

The Apache virtual directory style of configuring a number of defined types would be the third way to use your new module:

mymodule::mydefine {‘define1':
myotherparam => false,
}

The anti-pattern to this recommendation would be to have a number of classes other than init.pp and your defined types with parameters expecting to be set.

主站蜘蛛池模板: 方正县| 治县。| 清涧县| 金昌市| 淅川县| 黄骅市| 克拉玛依市| 郑州市| 东乡族自治县| 萨嘎县| 兰西县| 冷水江市| 灵寿县| 滨州市| 海淀区| 济南市| 兰溪市| 陆丰市| 平泉县| 皋兰县| 兴隆县| 涿州市| 通河县| 凯里市| 东乡族自治县| 长治市| 深水埗区| 五河县| 博爱县| 大余县| 洞口县| 麻栗坡县| 民勤县| 洛扎县| 通山县| 三台县| 平江县| 湖口县| 平乡县| 屏山县| 利辛县|