[英]puppet understanding parameters class
我是木偶新手。 我有一個偽造的基本基礎設施。 我從安裝
puppetforge“ example42 / lighttpd”
我能夠將此類毫無問題地部署到人偶控制的節點。 我現在的問題是..如何在此類中使用參數? 我不知道我可以在哪里激活參數。我想使用自定義的index.html和不同的日志文件路徑來部署lighttpd。我希望你能給我一個機會:)
在文件params.pp中
This class is not intended to be used directly.
It may be imported or inherited by other classes
但是我怎么導入呢?
首先,要開始使用puppet,您應該查看所涉及模塊的文檔(即README,README.md等)。 接下來,了解params模式。 人偶模塊中的params
類通常是不包含任何資源的類,用於保存模塊的默認數據(數據不是從外部資源(例如hiera)提供的)。 大多數情況下,您會看到類似以下內容的信息:
inherits lighttpd::param
在init或模塊中的另一個清單文件中。 那是因為它繼承了params類的值。
希望這至少可以有所幫助。
簡而言之,不要直接使用params.pp(通過聲明)。 此類是params設計模式的一部分,該模式指出可以將參數的默認值放在params.pp中。puppet類可以由所有需要訪問在params.pp中定義的參數的類繼承。
我認為最好的起點是每個Puppet模塊都有的init.pp類。 它可以在從Puppet Forge下載的Puppet模塊的清單目錄中找到。
/Users/bjusufbe/.puppetlabs/etc/code/modules/lighttpd/manifests
Bakirs-MacBook-Pro:manifests bjusufbe$ ls -la
total 56
drwxr-xr-x 6 bjusufbe staff 204 Oct 23 19:27 .
drwxr-xr-x 10 bjusufbe staff 340 Oct 23 19:27 ..
-rw-r--r-- 1 bjusufbe staff 1705 Oct 23 19:26 dotconf.pp
-rw-r--r-- 1 bjusufbe staff 15763 Oct 23 19:27 init.pp
-rw-r--r-- 1 bjusufbe staff 2633 Jul 17 2013 params.pp
-rw-r--r-- 1 bjusufbe staff 560 Apr 10 2013 spec.pp
如果打開init.pp,將看到以下類定義:
class lighttpd (
$use_ssl = params_lookup( 'use_ssl' ),
$my_class = params_lookup( 'my_class' ),
$source = params_lookup( 'source' ),
$source_dir = params_lookup( 'source_dir' ),
...
所有參數都使用params_lookup自定義函數(Puppet不提供,但是example42命名空間中其他模塊的一部分)。 您可以在以下鏈接上查看有關如何使用此功能的詳細信息:本章的“ 如何使用params_lookup ”:PARAMS LOOKUP ORDER
但是,為了使您更輕松,可以在site.pp(如果使用Puppet主/代理方案)中或在無主方案的任何* .pp文件中使用以下語法聲明此類,只需調用以下方法即可應用:
puppet apply <name_of_pp_file>.pp
簡單的聲明如下:
class { 'lighttpd':
<anyparameterfromthisclassdefinition> => <value>
}
例:
class { 'lighttpd':
use_ssl => true,
}
如果您不想在類聲明中傳遞任何參數,則將使用由自定義函數params_lookup為該類中的每個參數計算的默認值。 在這種情況下,您可以簡單地執行以下操作:
include lighttpd
希望這能給您足夠的起點。 干杯!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.