精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

磨刀不誤砍柴工 Puppet語法詳解

運(yùn)維 系統(tǒng)運(yùn)維
puppet把需要管理的內(nèi)容抽象成為資源,每種資源有不同的屬性,因此puppet語言就是描述這些資源的屬性以及資源之間關(guān)系的語言。本文將詳細(xì)介紹開源自動(dòng)化配置管理工具puppet的語法。

本文將介紹puppet的語法,因?yàn)閜uppet是用ruby編寫的,因此puppet的語法也和ruby類似,都是很簡單的面對對象的高級語言。再次強(qiáng)調(diào),puppet把需要管理的內(nèi)容抽象成為資源,每種資源有不同的屬性,因此puppet語言就是描述這些資源的屬性以及資源之間關(guān)系的語言。

一、資源

定義一個(gè)資源,需要指定資源的類型和資源的title。看一個(gè)例子:

f i l e {
" / etc /passwd" :
name => " / etc / passd " ,
owner => root ,
group => root ,
mode => 644;
}

上面的代碼讓/etc/passwd的權(quán)限保持644,并且屬于root用戶和root用戶組,file是指定資源的類型是"file"類型,第二行的"/etc/passwd"是資源的title, title的作用是讓puppet能唯一標(biāo)識這個(gè)資源。第三行的name指定了要對那個(gè)文件操作,默認(rèn)情況下,name都等于title,所以很多時(shí)候name是可以省略的。這點(diǎn)要注意。看下面的例子:

f i l e {
" sshdconfig " :
name => $operatingsystem ? {
s o l a r i s => " / usr / l o c a l / etc / ssh / sshd_config " ,
default => " / etc / ssh / sshd_config " ,
} ,
owner => root ,
group => root ,
mode => 644 ,
}

資源的title是sshdconfig,但是name卻可以通過判定操作系統(tǒng)自己選擇合適的值。這樣,當(dāng)其他的資源要依賴sshdconfig的時(shí)候,只需要說明依賴sshdconfig就行,不需要關(guān)心文件到底在什么路徑下面。例如下面的代碼:

s e r v i c e { " sshd " :
subscribe => F i l e [ sshdconfig ] ,
}

指定了一個(gè)sshd的服務(wù),這個(gè)服務(wù)如果發(fā)現(xiàn)文件資源sshdconfig 有變動(dòng),就會(huì)自己reload配置文件。是不是很方便呢?注意上面的subscribe后面的File,第一個(gè)字母要大寫,定義資源關(guān)系的時(shí)候,這里的字母要大寫。

通常,在puppet代碼里面可能會(huì)定義很多相同的資源,可以用[]把所有資源的title寫在一起,例如:

f i l e {
[ " / etc /passwd" , " / etc / hosts " ] :
owner => root ,
group => root ,
mode => 644;
}

你可能已經(jīng)發(fā)現(xiàn)了,每次定義文件的時(shí)候如果都輸入mode,owner,group會(huì)很繁瑣,因此你可以在puppet的site.pp的開頭定義資源的默認(rèn)值。定義資源的默認(rèn)值需要把資源的第一個(gè)資源大寫。例如下面的代碼讓所有的file資源的mode是644,owner是root。

F i l e { owner => root , mode => 644 ; }

默認(rèn)值可以被后面的設(shè)置覆蓋。

在puppet里面可以定義資源之間的關(guān)系,例如前面提到的,如果sshdconfig文件如果有修改,sshd服務(wù)就重啟。puppet里面還有另一個(gè)資源關(guān)系,依賴。例如資源A依賴資源B,如果資源B不存在,資源A就不被執(zhí)行。定義資源依賴的屬性是requre 。例如:

f i l e {
" / etc / apache2 / port . conf " :
content => "80" ,
require => Package [ "apache2" ] ;
}
package {
"apache2" :
ensure => i n s t a l l e d ;
}

file資源設(shè)置port.conf的內(nèi)容為80,但是在設(shè)置file資源之前,要求apache2這個(gè)軟件包配置好了。#p#

二、 類和函數(shù)

類的作用是把一組資源收集在一個(gè)盒子里面,一起使用,例如把sshd和他的配置文件做成一個(gè)ssh類,其他的地方要用到就直接包含ssh類就可以了,方便寫出更簡潔的代碼,便于維護(hù)。類可以繼承。看一個(gè)具體的例子:

c l a s s ssh {
f i l e {
" / etc / ssh / sshd_config " :
source => "puppet : / / $ f i l e s e r v e r / ssh / sshd_config
. cfg " ;
}
package {
" ssh " :
ensure => i n s t a l l e d ;
}
s e r v i c e {
" ssh " :
ensure => running ;
}
}

這里,file /etc/ssh/sshd_config的內(nèi)容是從puppet服務(wù)器上面下載的,file資源的內(nèi)容可以從別的url得到,也可以erb模板生成,erb模板是很強(qiáng)大的工具,這個(gè)后面會(huì)說到。package資源安裝ssh軟件,service資源保證ssh服務(wù)在運(yùn)行狀態(tài)。類的繼承這里就不講了,因?yàn)槭侨腴T手冊,另外用的不多。

puppet的官方文檔里面是沒有puppet函數(shù)這一說法的,而是叫做define ; 這里我寫做函數(shù),是因?yàn)閐efine實(shí)現(xiàn)的功能其實(shí)和函數(shù)一樣,而且在ruby里面也是用define來定義一個(gè)函數(shù)。這里寫做函數(shù),便于理解。

具體來看一個(gè)例子:

define svn_repo ( $path ) {
exec {
" / usr / bin /svnadmin? create ?$path / $ t i t l e " :
unless => " / bin / t e s t ???d?$path " ,
}
}
svn_repo {
puppet_repo :
path => " / var / svn_puppet " }
svn_repo {
other_repo :
path => " / var / svn_other " }

首先用define定義了一個(gè)svn_repo函數(shù),并且?guī)Я艘粋€(gè)參數(shù)1 。這個(gè)參數(shù)可以在函數(shù)里面的資源使用,在這里,exec資源根據(jù)提供的參數(shù)創(chuàng)建svn 倉庫。函數(shù)定義好以后,后面的兩行就用定義好的函數(shù)創(chuàng)建了兩個(gè)svn庫。#p#

三、 節(jié)點(diǎn)

puppet如何區(qū)分不同的客戶端,并且給不同的服務(wù)端分配manifest呢?puppet使用叫做node的語法來做這個(gè)事情,node 后面跟客戶端的主機(jī)名3,例如下面的例子:

node ' host1 . example . com ' {
include ssh
}
node ' host2 . example . com ' {
include apache , mysql , php
}

當(dāng)主機(jī)host1.example.com來連服務(wù)端時(shí),只會(huì)執(zhí)行node 'host1.example.com'里面的代碼,不會(huì)執(zhí)行node host2.example.com里面的代碼。正如前面所說,可以定義一個(gè)default結(jié)點(diǎn)。比如沒有針對host3的node配置,host3就用default的配置了。在這里include的意思是include 類。同樣,節(jié)點(diǎn)也支持繼承,同樣,也不打算深入。

使用節(jié)點(diǎn)的時(shí)候,盡量把所有的配置寫成類,節(jié)點(diǎn)里面定義好變量和包含相應(yīng)的類就可以了。保證代碼的簡潔。例如:

1、因?yàn)榭梢詭?shù),所以我覺得翻譯成函數(shù)更好

2、注意看函數(shù)的使用語法,是不是和使用資源一樣,path可以看作是屬性

3、主機(jī)名在puppet里面很重要

node ' host4 . example . com ' {
$networktype=" t e l e "
$nagioscheckport=" 80 ,22 ,3306 "
include ssh , apache , mysql
}

#p#

四、變量和數(shù)組

puppet也和其他語言一樣,支持變量和數(shù)組,puppet用$符號定義變量,變量的內(nèi)容用雙引號括起來。例如:

$test=" hello , guys "
f i l e {
" /tmp/ t e s t " :
content => $test ;
}

puppet可以使用由facter提交的變量,facter在客戶端收集系統(tǒng)信息整理成不同的變量提交給puppet服務(wù)器端,服務(wù)器端的代碼可以使用這些變量實(shí)現(xiàn)高級的功能,例如不同的硬件配置生成不同的應(yīng)用軟件配置文件。運(yùn)行facter命令可以看到很多變量的輸出,這些變量可以在puppet代碼里面直接使用。

puppet利用方括號來定義數(shù)組,數(shù)組的內(nèi)容由逗號分割,例如下面的例子:

[ "apache2" , " httpd " , " ssh " ]

數(shù)組可以用在資源定義里面,例如前面提到的例子。也可以用在函數(shù)里面,例如:

define php : : pear ( ) {
package { " `php??$ {name} " : ensure => i n s t a l l e d }
}
php : : pear { [ ' ldap ' , ' mysql ' , ' ps ' , 'snmp ' , ' s q l i t e ' , ' t i d y ' , '
xmlrpc ' ] : }

變量也有有效范圍,同其他語言一樣分為局部和全局變量,簡單說來,就是在里面定義的變量的使用范圍就限制在里面。同時(shí),puppet還簡單的支持if ... eles 語法,但是用的不多,不在深入。

#p#

五、 模塊

簡單來說,一個(gè)模塊就是一個(gè)/etc/puppet/modues目錄下面的一個(gè)目錄和它的子目錄,在puppet的主文件site.pp里面用import modulename可以插入模塊。新版本的puppet可以自動(dòng)插入/etc/puppet/modues目錄下的模塊。引入模塊,可以結(jié)構(gòu)化代碼,便于分享和管理。例如關(guān)于apache的所有配置都寫到apache模塊下面。一個(gè)模塊目錄下面通常包括三個(gè)目錄,files, manifests,templates 。manifests 里面必須要包括一個(gè)init.pp的文件,這是該模塊的初始文件,導(dǎo)入一個(gè)模塊的時(shí)候,會(huì)從init.pp開始執(zhí)行。可以把所有的代碼都寫到init.pp里面,也可以分成多個(gè)pp文件,init 再去包含其他文件。

files目錄是該模塊的文件發(fā)布目錄,puppet提供一個(gè)文件分發(fā)機(jī)制,類似rsync的模塊。templates 目錄包含erb模型文件,這個(gè)和file資源的template屬性有關(guān)。

puppet安裝好以后,modules目錄是沒有的,自己建立一個(gè)就行,然后在里面可以新增加你的模塊。請養(yǎng)成使用模塊的習(xí)慣。

【編輯推薦】

  1. 開源自動(dòng)化配置管理工具Puppet入門教程
  2. SVN自助更新:運(yùn)維利器Puppet實(shí)例講解(一)
  3. 運(yùn)維案例:Puppet如何成為數(shù)據(jù)中心擴(kuò)張的關(guān)鍵

【責(zé)任編輯:李晶 TEL:(010)68476606】

責(zé)任編輯:黃丹 來源: puppet-manifest-share
相關(guān)推薦

2013-10-17 15:51:29

系統(tǒng)

2009-01-03 08:56:00

局域網(wǎng)服務(wù)優(yōu)化

2009-01-11 09:26:00

局域網(wǎng)本地連接

2019-09-03 10:05:27

Linux監(jiān)控系統(tǒng)

2020-04-23 16:04:25

代碼編輯器工具程序員

2011-12-01 20:34:55

iOS

2016-01-05 15:40:07

2021-08-24 00:13:23

Windows 10Windows微軟

2019-11-28 16:48:00

華為Mate X

2021-02-01 17:29:19

FlutterHello World開發(fā)

2018-02-08 09:34:34

2014-07-14 16:43:39

華為

2012-05-07 08:57:56

puppet extlpuppet hier

2012-09-04 14:52:28

Puppet

2011-08-23 13:16:41

SQLEXPLAIN

2024-06-21 09:37:02

DefPython函數(shù)

2010-09-06 13:15:48

CSS定位

2009-12-18 15:06:10

Ruby常用庫

2010-11-11 10:18:59

select into
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

丰满少妇高潮一区二区| 亚洲在线色站| 亚洲av无码不卡| 五月久久久综合一区二区小说| 91精品国产高清一区二区三区| 黄色污污在线观看| 四虎影视在线观看2413| 久久国产精品一区二区| 91精品国产99| www深夜成人a√在线| 欧美高清视频看片在线观看| 欧美专区日韩专区| 99色这里只有精品| 日本www在线观看| 99久久久久免费精品国产 | 国产精品自拍网站| 欧洲午夜精品久久久| 日本一级二级视频| 青青草91久久久久久久久| 亚洲精品在线电影| 亚洲美女爱爱视频| 三级成人黄色影院| 亚洲福利一二三区| 青青草原网站在线观看| 触手亚洲一区二区三区| 99久久99久久精品免费看蜜桃| 成人在线免费观看视视频| 91黑人精品一区二区三区| 亚洲经典自拍| 欧美精品在线观看| 中文字幕在线观看2018| 精品国产乱码久久久| 亚洲精品二三区| 免费观看一区二区三区| 日韩在线激情| 欧美日韩精品一区二区天天拍小说| 成人午夜精品久久久久久久蜜臀| 黄色免费网站在线观看| 中文字幕成人在线观看| 秋霞久久久久久一区二区| 日本黄色不卡视频| 不卡视频免费播放| 国产一区二区三区免费不卡| 精品久久无码中文字幕| 国内精品写真在线观看| 成人免费自拍视频| 国产尤物视频在线观看| 紧缚捆绑精品一区二区| 国产精品亚洲网站| 在线亚洲欧美日韩| 麻豆一区二区三| 国产欧美一区二区白浆黑人| 国产亚洲久一区二区| 日韩和欧美一区二区| 国产成人精品在线观看| 在线观看日本网站| 男女男精品视频网| 成人性教育视频在线观看| 国产乱淫片视频| 国产激情偷乱视频一区二区三区| 亚洲在线免费视频| 亚洲国产精品一| 不卡高清视频专区| 欧美一区二区高清在线观看| 黄色大片在线看| 中文字幕二三区不卡| 亚洲第一页在线视频| 大片免费在线观看| 亚洲影院理伦片| 黄色一级在线视频| 精品123区| 日韩一二在线观看| www.超碰97| 久久视频在线| 欧美精品一二区| 国产性猛交╳xxx乱大交| 日韩黄色片在线观看| 91久久久久久久久久久| 日本激情一区二区三区| 久久久久九九视频| 男女h黄动漫啪啪无遮挡软件| 青春草免费在线视频| 欧美午夜宅男影院在线观看| 亚洲成人av免费看| 日韩免费高清视频网站| 日韩精品亚洲元码| 一区二区三区影视| 久久久天天操| 91亚洲永久免费精品| 婷婷久久久久久| 国产精品久久久一本精品 | 久久综合九色99| 亚洲精品传媒| 婷婷久久综合九色综合伊人色| 欧美日韩大尺度| 深夜激情久久| 国产亚洲精品美女久久久久| 国产精品久久久久久久精| 亚洲在线观看| 91香蕉国产在线观看| 肉丝一区二区| 亚洲精品成a人| 手机看片福利日韩| 9l视频自拍蝌蚪9l视频成人| 在线观看日韩视频| 日本少妇性生活| 国产在线视频不卡二| 欧美一区二区影视| av女在线播放| 日韩欧美成人激情| 亚洲一级理论片| 国产精品免费看| 99在线高清视频在线播放| av中文资源在线| 欧美性xxxx极品hd欧美风情| 亚洲丝袜在线观看| 欧美freesextv| 国产激情综合五月久久| 无码精品视频一区二区三区 | 男女视频网站在线观看| 97久久中文字幕| 国产一区二区三区中文| 五月天综合激情| 丁香一区二区三区| 久久人妻无码一区二区| 2019中文亚洲字幕| 日韩亚洲欧美成人| 国产三级理论片| 日本一区二区三级电影在线观看| 国产一区二区网| 成人在线超碰| 欧美精品videosex牲欧美| 国产视频一二三四区| 国产精品国产三级国产aⅴ入口 | 日本成人在线网站| 综合av色偷偷网| 日本a级c片免费看三区| 91亚洲男人天堂| 欧洲黄色一级视频| 亚洲色图美女| 欧美在线视频免费观看| 人人九九精品| 色哟哟一区二区三区| 少妇毛片一区二区三区| 先锋a资源在线看亚洲| 免费成人深夜夜行视频| 欧美91看片特黄aaaa| 亚洲男人第一av网站| 69国产精品视频免费观看| 91在线播放网址| 欧美韩国日本在线| 教室别恋欧美无删减版| 国产精品日韩av| 蜜桃视频在线观看www社区 | 在线观看的av| 7777精品伊人久久久大香线蕉超级流畅 | 成人久久精品人妻一区二区三区| 亚洲色图欧美偷拍| 亚洲av综合色区无码另类小说| 激情久久久久久| 快播亚洲色图| 高清亚洲高清| 欧美高清视频免费观看| 欧美 日韩 人妻 高清 中文| 欧美日韩免费看| 91视频免费在观看| 国产成人综合在线观看| 国产妇女馒头高清泬20p多| 欧美福利在线播放网址导航| 国产91在线播放| 精品孕妇一区二区三区| 精品粉嫩超白一线天av| 日韩精品手机在线| 国产精品进线69影院| 下面一进一出好爽视频| 亚洲综合三区| 一区二区精品免费视频| 亚洲小说春色综合另类电影| 97超碰国产精品女人人人爽 | 国产高清第一页| 午夜欧美在线一二页| 在线小视频你懂的| 国产精品99久久久久久久vr| 国产视频一视频二| 国产精品久久久乱弄| 韩国一区二区三区美女美女秀| 日韩欧美精品电影| 欧美成人精品一区二区| 男同在线观看| 日韩一区二区精品在线观看| 久久久久久久久黄色| 亚洲精品乱码久久久久久黑人 | 亚洲成av人在线观看| 国产传媒国产传媒| 成人丝袜视频网| 日本在线一二三区| 国产日韩欧美一区| 久久久无码中文字幕久...| 免费毛片在线不卡| 成人欧美一区二区三区视频 | 西西裸体人体做爰大胆久久久| 综合操久久久| 精品久久中文| 国偷自产av一区二区三区小尤奈| 深夜日韩欧美| 国产91免费观看| 欧美激情网站| 色综合天天狠天天透天天伊人| 国产日韩精品在线看| 亚洲第一偷拍网| 国产熟女一区二区三区五月婷| 欧美性xxxxx| 日韩成人高清视频| 一区二区三区四区在线播放| 精品国产aaa| 99r精品视频| 动漫av在线免费观看| 久久99国产精品久久99果冻传媒| 国产激情在线观看视频| 国产精品一级| 青青青免费在线| 国内激情久久| 国产高潮呻吟久久久| 色婷婷色综合| 亚洲欧美在线网| 人人狠狠综合久久亚洲婷| 免费看成人片| 免费精品国产的网站免费观看| 国产色综合一区二区三区| 视频二区欧美毛片免费观看| 91久久精品在线| 经典三级久久| 91日本在线视频| 国产成人久久精品一区二区三区| 国产精品你懂得| 三级成人在线| 国产精品女人网站| 久久久免费人体| 成人精品一区二区三区| 国产精品麻豆| 97久久夜色精品国产九色| 精品一区二区三区在线观看视频| 成人免费直播live| 亚洲精品视频一二三区| 国产精品久久一区二区三区| 伊人精品综合| 国产乱码精品一区二区三区日韩精品 | 欧产日产国产精品视频| 欧美亚洲国产日韩2020| 性欧美xxx69hd高清| 秋霞成人午夜鲁丝一区二区三区| 91久久国产综合久久91猫猫| 日韩av色综合| 国产日本久久| 亚洲一区二区三区毛片| 亚洲一区 二区| 久久天天狠狠| 奇米影视亚洲| 视色,视色影院,视色影库,视色网| 国产精品videosex极品| 欧美,日韩,国产在线| 久久久久国产一区二区| 午夜宅男在线视频| 国产乱人伦偷精品视频免下载| 蜜臀av粉嫩av懂色av| 久久女同互慰一区二区三区| 中文字幕有码在线播放| 亚洲欧洲成人精品av97| 精品无码黑人又粗又大又长| 精品国产鲁一鲁一区二区张丽| 欧美一区免费看| 91超碰这里只有精品国产| 成人午夜视频一区二区播放| 日韩高清免费观看| 午夜伦全在线观看| 久久久久久国产精品美女| 在线亚洲人成| 91精品免费看| 天堂99x99es久久精品免费| 视频一区视频二区视频三区视频四区国产| 91影院成人| 你真棒插曲来救救我在线观看| 日韩中文字幕1| 欧美熟妇另类久久久久久多毛| 91丨九色porny丨蝌蚪| 中文字幕乱码av| 五月激情综合色| 一级片在线免费观看视频| 精品国产乱码久久久久久图片| 韩日视频在线| 韩国v欧美v日本v亚洲| а√天堂资源国产精品| 国产高清自拍一区| 欧美成人激情| 亚洲美免无码中文字幕在线| 美国欧美日韩国产在线播放| 久久久久久久人妻无码中文字幕爆| 国产天堂亚洲国产碰碰| 国产亚洲精品久久久久久无几年桃 | 国产精品麻豆视频| 国产精品xxxx喷水欧美| 欧美一区二区视频免费观看| 巨骚激情综合| 97精品视频在线| 麻豆视频久久| 正在播放国产精品| 免费久久99精品国产自在现线| 国产欧美精品一二三| 久久久精品国产免大香伊| 免费麻豆国产一区二区三区四区| 91福利在线看| 亚洲欧洲视频在线观看| 欧美俄罗斯乱妇| 亚洲成a人片777777久久| 欧美一级片免费观看| 99pao成人国产永久免费视频| 日韩av福利在线观看| 中文字幕不卡一区| 无码人妻丰满熟妇精品| 日韩电影视频免费| 99久久精品免费看国产小宝寻花 | 国产99久久九九精品无码免费| 一本一道久久a久久精品逆3p | 9191在线播放| 91精品综合久久久久久五月天| 成人在线丰满少妇av| 黄色一级二级三级| 久久精品免费在线观看| 免费看日批视频| 亚洲欧洲免费视频| 亚洲色图官网| 欧美三日本三级少妇三99| 99亚洲视频| 久久久久国产精品区片区无码| 午夜不卡av免费| 午夜黄色小视频| 欧美激情视频免费观看| 日韩在线精品强乱中文字幕| 警花观音坐莲激情销魂小说| 国产麻豆精品95视频| 疯狂撞击丝袜人妻| 在线综合+亚洲+欧美中文字幕| 日本福利在线| 91精品视频网站| 欧美1区视频| 国产乱淫av麻豆国产免费| 一区二区三区丝袜| 好吊色一区二区三区| 久久久久久久久久久免费精品 | 色姑娘综合网| 蜜臀91精品一区二区三区| 极品美妇后花庭翘臀娇吟小说| 5566中文字幕一区二区电影| 2024最新电影在线免费观看| 91青青草免费观看| 在线精品一区二区| 中文字幕一区二区人妻在线不卡| 色诱视频网站一区| 在线国产91| 国产精品国模大尺度私拍| 国产精品婷婷| 黄色激情小视频| 日韩一本二本av| 人狥杂交一区欧美二区| 免费看成人片| 国模一区二区三区白浆| 精品无码久久久久久久| 亚洲女人被黑人巨大进入| 日韩漫画puputoon| 欧美 亚洲 视频| 久久婷婷综合激情| 国产精品久久影视| 久久久在线免费观看| 国产精品自拍区| 9191在线视频| 欧美午夜精品伦理| a级片国产精品自在拍在线播放| 国产精品免费一区二区三区| 久久影院亚洲| 欧美卡一卡二卡三| 亚洲区中文字幕| 欧美成年网站| 国产v亚洲v天堂无码久久久| 亚洲视频在线观看一区| 五月婷婷在线播放| 国产日本欧美视频| 一本一本久久| www.99re7| 国产一区二区激情| 高潮按摩久久久久久av免费| 国产三级日本三级在线播放| 一区二区欧美国产| 国产美女视频一区二区三区| 超碰97网站| 精品在线免费视频| 天堂在线免费观看视频| 久久999免费视频| 精品国产乱码久久久久久蜜坠欲下 | 成人在线免费高清视频| 国产日产欧美一区|