精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

成人xxxx视频| 亚洲深夜福利| 狠狠色香婷婷久久亚洲精品| 久久综合色一本| 亚洲成人av网址| 第一会所亚洲原创| 91精品国产91久久综合桃花| 国产综合中文字幕| chinese偷拍一区二区三区| 一级成人国产| 精品国产一区av| 亚洲自拍偷拍精品| 99riav视频一区二区| 欧美人妖在线| 欧美日韩免费观看一区二区三区| 国产免费内射又粗又爽密桃视频 | 日韩欧美中文字幕制服| 北条麻妃在线视频观看| 黄色网在线免费看| 久久蜜桃一区二区| 成人自拍爱视频| 一级黄色免费片| 宅男噜噜噜66国产日韩在线观看| 色噜噜国产精品视频一区二区| 污片免费在线观看| 日韩毛片免费看| 色94色欧美sute亚洲线路二| av日韩在线看| 秋霞成人影院| 欧美黄色免费影院| 在线观看亚洲大片短视频| 国产一区二区三区免费在线| 色综合色狠狠天天综合色| 日本精品一区二区三区不卡无字幕| 日本a级片免费观看| 91成人在线免费视频| 亚洲精品v亚洲精品v日韩精品| 在线观看日韩精品| 一女被多男玩喷潮视频| 精精国产xxxx视频在线中文版| 国产精品丝袜久久久久久app| 免费在线国产精品| 手机在线不卡av| 国产91丝袜在线播放| 亚洲精品女av网站| 国产一区二区三区视频免费观看| 免费在线成人| 高清欧美性猛交xxxx黑人猛交| 成人精品一二三区| 美女网站视频一区| 日韩欧美中文第一页| 日本xxxxxxxxxx75| 国产黄色大片在线观看| 1000部国产精品成人观看| 国产传媒一区二区三区| 91精品国产乱码久久| 人人超碰91尤物精品国产| 91av在线影院| 久久精品免费在线| 欧美丝袜一区| 精品国产伦一区二区三区观看体验 | caopor在线视频| 182在线播放| 亚洲香蕉伊在人在线观| 欧美性xxxxx极品| 99中文视频在线| 国产精品久久777777换脸| 免费看黄色91| 国产精品丝袜一区二区三区| 欧美 亚洲 另类 激情 另类| 日韩 欧美一区二区三区| 国产精品九九久久久久久久| 女同性αv亚洲女同志| 欧美男女交配| 色先锋资源久久综合| 成人小视频在线看| 日韩欧美少妇| 欧美欧美欧美欧美首页| 欧美一级视频在线| 日本欧美在线| 欧美色图天堂网| 午夜免费福利视频在线观看| 成人天堂yy6080亚洲高清 | 国产精品乱子伦| 日韩一区二区免费看| 97视频在线观看视频免费视频 | 一区二区三区国产精华| 欧美猛男性生活免费| 国产探花在线免费观看| 国内精品久久久久久久97牛牛| 欧美高清视频在线播放| 国产a∨精品一区二区三区仙踪林| 狠久久av成人天堂| 欧美极品少妇与黑人| xxxxxx国产| 日日噜噜夜夜狠狠视频欧美人 | caoporn成人| 亚洲黄色片网站| 国产精品久久免费观看| 女人香蕉久久**毛片精品| 国内精品久久久久久久久| 毛片毛片女人毛片毛片| 日本午夜一本久久久综合| 亚洲一区二区免费| 五月婷婷免费视频| 欧美韩国日本综合| 国产精品视频网站在线观看| 瑟瑟视频在线观看| 三区四区电影在线观看| 亚洲欧美色图小说| 3d动漫一区二区三区| 国产免费不卡| 欧美电影精品一区二区| 欧美性xxxx图片| 欧美不卡一区| 国产精品1234| 成人激情四射网| 国产日韩欧美在线一区| 日韩最新中文字幕| 女海盗2成人h版中文字幕| 欧美日韩国产乱码电影| 扒开伸进免费视频| 亚洲精品蜜桃乱晃| 欧美国产激情18| 中文字幕在线日亚洲9| 不卡的看片网站| 日本黑人久久| 欧美边添边摸边做边爱免费| 日本高清不卡aⅴ免费网站| 国产精品一区二区在线免费观看| 欧美国产一区二区三区激情无套| 色综合五月天导航| 最近中文字幕av| 26uuu另类欧美亚洲曰本| 日韩精品福利片午夜免费观看| 日韩和的一区二在线| 亚洲精品按摩视频| 国产精品老熟女一区二区| 热久久一区二区| 奇米影视首页 狠狠色丁香婷婷久久综合 | 少妇高潮流白浆| 欧美电影免费观看| 9191成人精品久久| 免费看黄色aaaaaa 片| 亚洲乱码精品| 成人午夜在线影院| 久热av在线| 精品久久久久久中文字幕一区奶水 | 99se婷婷在线视频观看| 中文字幕在线观看日本| 色婷婷国产精品综合在线观看| 亚洲啪av永久无码精品放毛片| 中文无码久久精品| 91在线视频导航| 在线激情免费视频| 欧美色区777第一页| 欧美 日韩 成人| 日韩视频二区| 国产精品一区二区免费| 色婷婷av在线| 精品久久免费看| 天天看天天摸天天操| 精品影视av免费| 在线观看精品视频| 国产精品久久久久久av公交车 | 欧美伦理免费在线| 日韩精品中文字幕在线一区| 国产乱国产乱老熟300| 国产精品一区二区不卡| 91麻豆天美传媒在线| 白嫩白嫩国产精品| 欧美插天视频在线播放| 国产a级免费视频| 一区二区三区日本| 最新版天堂资源在线| 亚洲乱亚洲高清| 免费精品视频一区| 日韩精选视频| 日韩最新在线视频| 国产丰满果冻videossex| 亚洲综合激情另类小说区| 天天躁日日躁狠狠躁av| 99国产精品视频免费观看一公开 | 狠狠综合久久av一区二区| 亚洲韩国一区二区三区| 成人手机在线免费视频| 日本va欧美va瓶| 成人手机视频在线| 亚洲图色一区二区三区| 91精品国产网站| 欧洲天堂在线观看| 欧美日韩卡一卡二| 国产性猛交普通话对白| 精品国产一区二区三区久久狼5月 精品国产一区二区三区久久久狼 精品国产一区二区三区久久久 | 男人与禽猛交狂配| 国产在线视频精品一区| 久久人人爽人人爽人人av| 大奶在线精品| 91成人在线视频| 成全电影播放在线观看国语| 欧美一级搡bbbb搡bbbb| 天天操天天爽天天干| 久久先锋影音av| 日本精品一区在线| 国内在线观看一区二区三区| 免费毛片一区二区三区久久久| 色综合久久久| 2021国产精品视频| 国产精品一卡二卡三卡| 亚洲精品视频久久| wwwwww国产| 亚洲欧美色一区| 中文文字幕文字幕高清| 狠狠色丁香婷婷综合| 欧美在线观看成人| 一区二区三区网站| 久久精品国产综合精品| 91国产一区| 欧洲成人在线视频| 免费在线看污片| 亚洲色图色老头| 亚洲精品喷潮一区二区三区| 欧美亚洲综合色| www.日本精品| 亚洲欧美日韩成人高清在线一区| 欧美图片第一页| 国产a精品视频| 日韩在线第三页| 欧美三级小说| 艳色歌舞团一区二区三区| 竹菊久久久久久久| 国产偷国产偷亚洲高清97cao| 波多野结衣视频一区二区| 日韩中文字幕在线免费观看| 嫩草在线播放| 亚洲电影成人av99爱色| h片在线免费看| 欧美日本一区二区三区四区| 亚洲成熟少妇视频在线观看| 五月综合激情日本mⅴ| 中文字幕av久久爽av| 亚洲欧洲三级电影| 国产精品久久免费观看| 成人福利视频在线看| 天天影视色综合| 日本亚洲视频在线| 欧美日韩亚洲一二三| 中文在线一区| 欧美日韩成人免费视频| 欧美日韩hd| japanese在线播放| 欧美日韩国产欧| 精品91一区二区三区| 日韩系列欧美系列| 亚洲一区精品视频| 欧美黄色录像片| 久久婷婷开心| 美女一区二区在线观看| 韩国一区二区三区美女美女秀| 国产乱论精品| 精品一区二区久久久久久久网站| 91蝌蚪精品视频| 亚洲最大福利视频| 日本亚州欧洲精品不卡| 99久久国产免费免费| 国产精品久久久久久久久久辛辛| 成人国产精品久久久| 久久的色偷偷| 97av影视网在线观看| 777久久精品| 亚洲xxxx在线| 红杏aⅴ成人免费视频| 成人在线观看av| 美女呻吟一区| 日本在线免费观看一区| 色综合久久一区二区三区| 伊人久久青草| 欧美日本一区二区高清播放视频| 99热久久这里只有精品| 国产亚洲精品自拍| 亚洲黄色小视频在线观看| 日韩精品一级中文字幕精品视频免费观看| 91av资源网| 免费成人在线观看视频| 激情图片中文字幕| 国产aⅴ综合色| 日韩黄色一区二区| 99久久伊人网影院| 国产123在线| 亚洲日本成人在线观看| 国产黄色小视频网站| 亚洲国产日韩一区二区| 精品人妻无码一区二区性色| 亚洲国产精品精华液网站| 久久国产视频播放| 一卡二卡三卡日韩欧美| 国产午夜性春猛交ⅹxxx| 欧美日韩一区中文字幕| 丰满人妻妇伦又伦精品国产| 亚洲欧美激情另类校园| 国产精品久久久久一区二区国产| 九九热精品视频国产| 亚洲日本天堂| 亚洲综合国产精品| 伊人春色精品| 日本三级中文字幕在线观看| 亚洲精品1区2区| 日韩精品视频一二三| av综合在线播放| 天天操天天摸天天舔| 亚洲成人在线网站| 久久久久久久亚洲| 日韩免费高清av| 欧美婷婷久久五月精品三区| 色香阁99久久精品久久久| 视频免费一区| 51精品国产黑色丝袜高跟鞋| 国产美女精品视频免费播放软件| 免费成人看片网址| 亚洲婷婷免费| 五月天激情播播| 99精品视频中文字幕| 国产精品精品软件男同| 欧美日韩国产丝袜另类| 99热这里只有精品99| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 国产日韩欧美在线看| 精品人人人人| 天天干天天操天天干天天操| 影音先锋在线一区| 99r国产精品视频| 久久精品这里只有精品| heyzo久久| 欧美日韩一区二区三区高清 | 樱桃视频在线观看一区| 凹凸精品一区二区三区| 亚洲精品一区二区三区福利| www.亚洲免费| 欧美诱惑福利视频| 中文字幕一区二区三区四区久久| 影音先锋欧美在线| 老牛影视一区二区三区| wwwxxxx在线观看| 综合中文字幕亚洲| 一二区在线观看| 在线观看成人黄色| 原纱央莉成人av片| 麻豆传媒一区| 亚洲一区观看| 国产a√精品区二区三区四区| 亚洲美女视频在线| 国内自拍视频在线播放| 日韩久久精品成人| 熟妇人妻av无码一区二区三区| 国产亚洲欧美日韩一区二区| 九色视频在线观看免费播放 | 羞羞的视频在线看| 不卡一区二区三区视频| 中文字幕av亚洲精品一部二部| 人妻无码视频一区二区三区 | 国产一区二区在线免费| 色综合色综合| 亚洲无在线观看| 国产精品久久久久婷婷二区次| 中文字幕你懂的| 中文字幕亚洲一区二区三区| 成人黄色毛片| 在线播放 亚洲| 国产精品888| 91香蕉一区二区三区在线观看| 91精品婷婷国产综合久久性色| 在线网址91| 97人摸人人澡人人人超一碰| 小小影院久久| 国产吃瓜黑料一区二区| 亚洲国产视频在线| 日韩精品视频无播放器在线看| 欧美一区二区视频97| 成人羞羞网站入口| 毛片一区二区三区四区| 国产精品午夜在线观看| 国产男男gay体育生网站| 日韩一区二区精品视频| 欧美成人a交片免费看| 性欧美videosex高清少妇| 精品一区二区三区免费| 日本精品人妻无码77777| 欧美精品1区2区3区| 97人人在线视频| 美国av一区二区三区| 日韩精品亚洲一区| 国产精品免费人成网站酒店| 欧美日韩高清一区二区三区| 性国产高清在线观看| 免费毛片一区二区三区久久久| 国产一区二区三区四区五区六区| 亚洲第一搞黄网站| 偷拍自拍在线| 国产美女被下药99| 亚洲人metart人体|