puppet module是puppet的基礎子產品工具,agent和master都可以使用,主要包含下載下傳、更新、查找、更新、建立等功能.它可以從Puppetforge上查找已經開發好的puppet基礎子產品代碼為我們使用,不需要自己再去編寫,提升工作效率.
檢視puppet module的幫助資訊:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<code>[root@puppet ~]</code><code># puppet help module</code>
<code>USAGE: puppet module <action> [--environment production ]</code>
<code>[--modulepath $basemodulepath ]</code>
<code>This subcommand can </code><code>find</code><code>, </code><code>install</code><code>, and manage modules from the Puppet Forge,</code>
<code>a repository of user-contributed Puppet code. It can also generate empty</code>
<code>modules, and prepare locally developed modules </code><code>for</code> <code>release on the Forge.</code>
<code>OPTIONS:</code>
<code> </code><code>--render-as FORMAT - The rendering </code><code>format</code> <code>to use.</code>
<code> </code><code>--verbose - Whether to log verbosely.</code>
<code> </code><code>--debug - Whether to log debug information.</code>
<code> </code><code>--environment production - The environment Puppet is running </code><code>in</code><code>. For</code>
<code> </code><code>clients (e.g., `puppet agent`) this</code>
<code> </code><code>determines the environment itself, </code><code>which</code> <code>is</code>
<code> </code><code>used to </code><code>find</code> <code>modules and much </code><code>more</code><code>. For</code>
<code> </code><code>servers (i.e., `puppet master`) this provides</code>
<code> </code><code>the default environment </code><code>for</code> <code>nodes we know</code>
<code> </code><code>nothing about.</code>
<code> </code><code>--modulepath $basemodulepath - The search path </code><code>for</code> <code>modules, as a list of</code>
<code> </code><code>directories separated by the system path</code>
<code> </code><code>separator character. (The POSIX path</code>
<code> </code><code>separator is </code><code>':'</code><code>, and the Windows path</code>
<code> </code><code>separator is </code><code>';'</code><code>.) Setting a global value </code><code>for</code>
<code> </code><code>`modulepath` </code><code>in</code> <code>puppet.conf is deprecated.</code>
<code> </code><code>Please use directory environments instead. If</code>
<code> </code><code>you need to use something other than the</code>
<code> </code><code>default modulepath of `<ACTIVE ENVIRONMENT'S</code>
<code> </code><code>MODULES DIR>:$basemodulepath`, you can </code><code>set</code>
<code> </code><code>`modulepath` </code><code>in</code> <code>environment.conf. For </code><code>more</code>
<code> </code><code>info, see</code>
<code> </code><code>http:</code><code>//docs</code><code>.puppetlabs.com</code><code>/puppet/latest/reference/environments</code><code>.html</code>
<code>ACTIONS:</code>
<code> </code><code>build Build a module release package.</code>
<code> </code><code>changes Show modified files of an installed module.</code>
<code> </code><code>generate Generate boilerplate </code><code>for</code> <code>a new module.</code>
<code> </code><code>install</code> <code>Install a module from the Puppet Forge or a release archive.</code>
<code> </code><code>list List installed modules</code>
<code> </code><code>search Search the Puppet Forge </code><code>for</code> <code>a module.</code>
<code> </code><code>uninstall Uninstall a puppet module.</code>
<code> </code><code>upgrade Upgrade a puppet module.</code>
<code>See </code><code>'puppet man module'</code> <code>or </code><code>'man puppet-module'</code> <code>for</code> <code>full help.</code>
build 構模組化塊源碼軟體包
changes顯示一個已經安裝的子產品的改變
generate 建立一個新的子產品
install 從puppet forge安裝一個子產品
list 查找子產品
uninstall 解除安裝子產品
upgrade 更新一個子產品
#檢視本地安裝的puppet子產品
<code>[root@puppet ~]</code><code># puppet module list</code>
<code>/etc/puppet/modules</code> <code>(no modules installed)</code>
<code>/usr/share/puppet/modules</code> <code>(no modules installed)</code>
#搜尋vmware-vcenter子產品
<code>[root@puppet ~]</code><code># puppet module search vmware-vcenter</code>
<code>Notice: Searching https:</code><code>//forgeapi</code><code>.puppetlabs.com ...</code>
<code>NAME DESCRIPTION AUTHOR KEYWORDS </code>
<code>vmware-vcenter VMware vCenter puppet module @vmware vmware vcenter</code>
#安裝vmware-vcenter子產品
<code>[root@puppet ~]</code><code># puppet module install vmware-vcenter</code>
<code>Notice: Preparing to </code><code>install</code> <code>into </code><code>/etc/puppet/modules</code> <code>...</code>
<code>Notice: Downloading from https:</code><code>//forgeapi</code><code>.puppetlabs.com ...</code>
<code>Notice: Installing -- </code><code>do</code> <code>not interrupt ...</code>
<code>/etc/puppet/modules</code>
<code>└─┬ vmware-vcenter (v0.10.0)</code>
<code> </code><code>├── nanliu-staging (v1.0.3)</code>
<code> </code><code>├── puppetlabs-stdlib (v4.19.0)</code>
<code> </code><code>└── vmware-vmware_lib (v0.7.0)</code>
#解除安裝vmware-vcenter子產品
<code>[root@puppet ~]</code><code># puppet module uninstall vmware-vcenter</code>
<code>Notice: Preparing to uninstall </code><code>'vmware-vcenter'</code> <code>...</code>
<code>Removed </code><code>'vmware-vcenter'</code> <code>(v0.10.0) from </code><code>/etc/puppet/modules</code>
generate參數建立一個子產品,名為example-meng
<code>[root@puppet ~]</code><code># puppet module generate example-meng</code>
<code>We need to create a metadata.json </code><code>file</code> <code>for</code> <code>this module. Please answer the</code>
<code>following questions; </code><code>if</code> <code>the question is not applicable to this module, feel </code><code>free</code>
<code>to leave it blank.</code>
#這個子產品的版本,預設為0.1.0.
41
42
43
44
45
46
47
48
49
50
51
52
53
<code>Puppet uses Semantic Versioning (semver.org) to version modules.</code>
<code>What version is this module? [0.1.0]</code>
<code>--> </code>
<code>#這個子產品誰寫的?</code>
<code>Who wrote this module? [example]</code>
<code>--> example-meng</code>
<code>#這個子產品屬于哪個許可機構?</code>
<code>What license does this module code fall under? [Apache 2.0]</code>
<code>--> apache</code>
<code>#一句話描述這個子產品?</code>
<code>How would you describe this module </code><code>in</code> <code>a single sentence?</code>
<code>--> My name is meng</code>
<code>#這個子產品的源碼倉庫在哪?</code>
<code>Where is this module's </code><code>source</code> <code>code repository?</code>
<code>--> </code><code>/tmp</code>
<code>#其他人去哪學習這個子產品?</code>
<code>Where can others go to learn </code><code>more</code> <code>about this module?</code>
<code>--> 51cto.com</code>
<code>#關于這個子產品的檔案問題去哪解決?</code>
<code>Where can others go to </code><code>file</code> <code>issues about this module?</code>
<code>--> no </code>
<code>----------------------------------------</code>
<code>{</code>
<code> </code><code>"name"</code><code>: </code><code>"example-meng"</code><code>,</code>
<code> </code><code>"version"</code><code>: </code><code>"0.1.0"</code><code>,</code>
<code> </code><code>"author"</code><code>: </code><code>"example-meng"</code><code>,</code>
<code> </code><code>"summary"</code><code>: </code><code>"My name is meng"</code><code>,</code>
<code> </code><code>"license"</code><code>: </code><code>"apache"</code><code>,</code>
<code> </code><code>"source"</code><code>: </code><code>"/tmp"</code><code>,</code>
<code> </code><code>"issues_url"</code><code>: </code><code>"no"</code><code>,</code>
<code> </code><code>"project_page"</code><code>: </code><code>"51cto.com"</code><code>,</code>
<code> </code><code>"dependencies"</code><code>: [</code>
<code> </code><code>{</code><code>"version_requirement"</code><code>:</code><code>">= 1.0.0"</code><code>,</code><code>"name"</code><code>:</code><code>"puppetlabs-stdlib"</code><code>}</code>
<code> </code><code>]</code>
<code>}</code>
<code>About to generate this metadata; </code><code>continue</code><code>? [n</code><code>/Y</code><code>]</code>
<code>--> y</code>
<code>Notice: Generating module at </code><code>/root/example-meng</code><code>...</code>
<code>Notice: Populating templates...</code>
<code>Finished; module generated </code><code>in</code> <code>example-meng.</code>
<code>example-meng</code><code>/Gemfile</code>
<code>example-meng</code><code>/spec</code>
<code>example-meng</code><code>/spec/classes</code>
<code>example-meng</code><code>/spec/classes/init_spec</code><code>.rb</code>
<code>example-meng</code><code>/spec/spec_helper</code><code>.rb</code>
<code>example-meng</code><code>/tests</code>
<code>example-meng</code><code>/tests/init</code><code>.pp</code>
<code>example-meng</code><code>/manifests</code>
<code>example-meng</code><code>/manifests/init</code><code>.pp</code>
<code>example-meng</code><code>/README</code><code>.md</code>
<code>example-meng</code><code>/metadata</code><code>.json</code>
<code>example-meng</code><code>/Rakefile</code>
本文轉自青衫解衣 51CTO部落格,原文連結:http://blog.51cto.com/215687833/1963792