天天看點

Puppet學習之文法(3)

《Puppet實踐》學習筆記

1.基本概念

資源(Resource):是puppet最基本的元素。資源可以是檔案,服務,軟體包,自定義腳本等。 屬性(Attribute):屬性,定義資源能夠做什麼。 類(class):将多個資源組織起來進行重新定義。 子產品(modules):多個類的封裝在一起。 模闆(templates): 變量(variables):通常使用facter收集agent本地資訊,并以變量的形式傳遞給puppet server。 參數(parameter):傳遞給變量的實際值。 節點(node):即puppet agent的hostname,多個agent可以歸并至主機組(hostgroup)中。node的節點名,應該和hostname一緻。 舉例說明如下: vi /etc/puppet/modules/nginx/manifests/init.pp class nginx { file { 'nginx.conf' : mode => 640, owner => root, group => root, }

service { 'nginx': hasrestart = > true, hasstatus => true, subscribe => File["nginx.conf"], } } 在nginx子產品中,定義了一個類ngnix,這個類中有兩個資源,其中subscribe将兩個資源關聯起來。

2.命名規則 主機名和資源名,沒有嚴格要求。 子產品名,以小寫字母開頭。 類名,以小寫字母開頭,雙冒号“::”将子類和父類關聯 變量名:以$開始,指派用“=” 參數名:以$開始,第一個字元必須是小寫字母。

3.文法規則 3.1文法概括: 以大括号“{}”分類,以冒号“:”聲明,以逗号“,”屬性結束。 3.2縮進 必須使用兩個空格标示縮進。 不能使用文字制表符。 尾部不能有空格。 寬度不能超過80字元 使用=>符号進行對其。 3.3注釋說明 兩種方式: #這是注釋

3.3變量的引用 3.3.1包含變量的字元串引用 不包含變量的字元串,應該使用單引号(‘’)。 引用變量使用雙引号(“”) 字元串中所有變量,使用大括号{} 舉例: "/etc/$(file).conf"

3.3.2對變量本身的引用 不需要使用引号 mode => $my_mode

3.4資源 資源名采用單引号(‘)或者雙引号(“)括起來,以冒号(:)結束。 聲明資源時,首先指定ensure