天天看點

《Puppet實戰手冊》——2.7 數組中多個元素的周遊

本節書摘來自異步社群《puppet實戰手冊》一書中的第2章,第2.7節,作者:【英】john arundel著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

數組是puppet中的一個強大的功能,無認想對一組元素做何種相同的操作,數組都能夠有所幫助。使用者可以通過把數組的内容放在方括号中來建立一個數組。

<code>$lunch = [ 'franks', 'beans', 'mustard' ]</code>

操作步驟

下面是一個常見的如何使用數組的例子。

1. 把下面的代碼添加到配置清單中。

2. 執行puppet指令,然後可以發現每個軟體包都應該安裝好了。

工作原理

當puppet遇到數組作為一個資源的名稱時,它會為數組中每個元素的建立一個資源。在這個例子中,$packages數組中的每一個軟體包都會被puppet建立一個新的package資源,并且使用相同的參數(ensure =&gt; installed)。這是一種簡化相似資源書寫的方式。

更多參考

雖然使用puppet的過程中會大量地使用數組,但是了解一個更加靈活的資料結構也是很有用的:散列(hash)。

使用散列

散列就像是一個數組,但每個元素都可以通過名字(稱為鍵)存儲和搜尋,如下:

任何能賦給變量的内容都能夠作為散列的值:字元串、函數調用、表達式,甚至其他散列或數組也可以。

使用split函數建立數組

使用者可以使用方括号來聲明數組,如下所示。

但是,puppet也可以使用split函數将字元串拆分為數組,如下所示:

需要注意的是,split有兩個參數:第一個是要進行拆分的字元串,第二個是分割字元(在這個例子中,分割字元是一個空格)。當puppet周遊字元串的時候,一旦遇到空格,就會将其了解為一個元素的結束和下一個元素的開始。是以,puppet處理給定的字元串egg beans chips,會将其分割成三個元素。

要拆分的可以是任何字元或一個字元串。

分割字元也可以是一個正規表達式。例如,可以使用“|”(管道符)分隔的一組可選字元作為分割字元。