亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

[翻譯]用 Puppet 搭建易管理的服務器基礎架構(2)

2024-06-28 13:19:52
字體:
來源:轉載
供稿:網友
[翻譯]用 Puppet 搭建易管理的服務器基礎架構(2)

我通過伯樂在線翻譯了一個Puppet簡明教程,一共分為四部分,這是第二部分。

原文地址:http://blog.jobbole.com/87680/

本文由伯樂在線-Wing翻譯,黃利民校稿。未經許可,禁止轉載!英文出處:Manue Kiessling。歡迎加入翻譯組。

關于

第一部分中,我們已經建立了兩個linux系統虛擬機:puppetserverpuppetclient。我們已經實現了一個重要的里程碑:在虛擬機上分別安裝了Puppet服務器和Puppet客戶端軟件,并且在Puppet服務器端對Puppet客戶端進行了認證。接下來我們要在此基礎上,開始通過在puppetserver虛擬機上的Puppet服務器,來配置puppetclient虛擬機系統。

你好,Puppet

我們以一個非?;镜氖纠_始。在這個示例中,我們為puppetclient虛擬機建立一個非常簡單的配置:在puppetclient虛擬機系統的/home/Ubuntu目錄下創建一個名為helloworld.txt文件,文件的內容是”Hello World!”。

Puppet自帶一個功能強大的聲明式配置語言。我們使用這種語言來編寫的內容被稱為清單(manifest。Puppet清單是一個文件,它描述了目標系統中的某些方面應該是什么樣的。在這個系列教程中,我們會編寫很多不同的清單:其中一些會在目標系統上創建一些文件;一些會創建用戶賬戶;一些會安裝軟件包。

清單會被應用到目標系統上。對Puppet來說,目標系統被稱為節點(node)。我們的puppetclient虛擬機系統就是這樣一個節點。我們已經為它做了Puppet服務器認證,這樣可以保證Puppet服務器來管理這個節點。但我們的服務器還沒有任何信息,可以用來管理這個節點。我們可以通過編寫一個清單并將其放在節點上來改變它。

為此,我們會創建一個非常簡單的清單定義,這個定義會被放在puppetserver虛擬機系統的主清單文件中,文件的路徑是/etc/puppet/manifests/site.pp:

/etc/puppet/manifests/site.pp on puppetserver

12345678910node "puppetclient" {file { "/root/helloworld.txt":ensure => file,owner => "root",group => "root",mode => 0644}}

我們稍后會看到,清單可以通過模塊化的方式放到任意數目的不同文件中(這樣可以幫助我們針對大型復雜的站點建立清單結構)。但是一切都還是從site.pp開始。

我們來仔細分析一下這個最簡化的清單,它包含兩部分:一個包含file定義的node,因為file部分包含在node部分中,這樣file部分的定義產生的結果會應用到名為puppetclient的節點上。

通過在puppetclient虛擬機系統上運行Puppet代理,我們可以很容易理解上面描述的內容。

On the puppetclient VM

1234~# sudo puppet agent --verbose --no-daemonize --onetimeinfo: Caching catalog for puppetclientinfo: Applying configuration version '1395862307'notice: /Stage[main]//Node[puppetclient]/File[/home/ubuntu/helloworld.txt]/ensure: creatednotice: Finished catalog run in 0.03 seconds

或許這看上去沒有什么大驚小怪:puppetclient虛擬機上的Puppet代理聯系到puppetserver虛擬機上的Puppet master。然后它接收目錄,這個目標就是在master上定義的所有和這個指定客戶端有關的清單。如果你感興趣的話,這個目錄被存在一個yaml結構中,它存儲在/var/lib/puppet/client_yaml/catalog/puppetclient.yaml中,這不僅僅是復制了我們的.pp清單,而是通過對清單進行解析,生成的一個關于目標配置信息的編譯版本。

接下來,Puppet代理開始采取行動——當且僅當滿足以下條件才會采取行動:Puppet代理會比較清單中期望的狀況和目標節點上清單的狀況,如果其中有一些不同(如果目標節點上找到的狀況并沒有同步到期望達到的狀況)——那么代理就會做任何必需的操作來移除這些區別,來實現目標狀況。

在我們這個特定的示例中,代理知道在目標節點的/home/ubuntu目錄下,應該有一個名為helloworld.txt的文件,這個文件的所有者和所在組是ubuntu,用戶對該文件的訪問權限是0644。然而,當檢查本地系統時,發現并沒有發現這個文件。代理會采取行動,來創建這個期待中的文件。

我們可以通過再次運行代理來驗證這個行為:

On the puppetclient VM

1234~# sudo puppet agent --verbose --no-daemonize --onetimeinfo: Caching catalog for puppetclientinfo: Applying configuration version '1395862542'notice: Finished catalog run in 0.03 seconds

如我們所見,這次代理并沒有做任何事情,這是因為目標節點的狀況已經滿足了。那如果我們修改目標節點上的狀況會怎么樣呢?讓我們來修改這個文件的訪問模式:

在 puppetclient VM 上

~#chmod 0640 /home/ubuntu/helloworld.txt

然后再次運行代理:

在 puppetclient VM 上

123456~# sudo puppet agent --verbose --no-daemonize --onetimeinfo: Caching catalog for puppetclientinfo: Applying configuration version '1395862307'notice: /Stage[main]//Node[puppetclient]/File[/home/ubuntu/helloworld.txt]/ensure: creatednotice: Finished catalog run in 0.03 seconds

代理注意到了區別,然后通過修改文件訪問模式來移除了這個區別。

如果我們修改了文件的內容,會發生什么呢?

在 puppetclient VM 上

~#echo "This is a test" > /home/ubuntu/helloworld.txt

…這時運行代理?

在 puppetclient VM 上

12345~# sudo puppet agent --verbose --no-daemonize --onetimeinfo: Caching catalog for puppetclientinfo: Applying configuration version '1395862542'notice: Finished catalog run in 0.03 seconds

沒有發生任何事情。為什么?因為在清單中,我們沒有對文件內容進行任何描述。我們所做的是讓Puppet來保證這個指定名字的文件是存在的,并且這個文件的一些元數據(擁有者、用戶組、訪問模式)應該有指定設置。Puppet只會關心那些我們讓它去關心的事情。

我們在之前示例中看到的行為,正好表明了Puppet哲學的核心。在我們的清單中,我們不告訴Puppet做什么,我們也不告訴它怎么去做,我們只告訴Puppet最終的結果應該是什么樣子

這種哲學帶來了巨大的能量,因為它對配置系統所需要的繁重的工作進行了抽象。它撫平了不同的操作系統帶來的差別??紤]下面一個場景,你有一個由不同的Linux系統構成的網絡:有些運行Red Hat Linux,有些在運行Ubuntu Linux。我們進一步假設你希望在所有的系統上安裝htop包。如果我們需要告訴Puppet做什么和怎么做,那么我們不得不編寫一個清單,它在Ubuntu上使用apt-get,在Red Hat上使用yum。相反,我們所需要放到清單中的內容如下所示:

123package { "htop":ensure => installed}

目標節點中的puppet代理會去搞清楚如何做,才能實現清單中描述的目標場景。Red Hat系統中的代理會使用yum來安裝包,而Ubuntu系統中的代理則會使用apt-get

我們在稍后會回來討論包安裝,讓我們繼續之前的文件示例。通過Puppet來創建一個空文件,通常都不是特別有用——當然我們更喜歡部署一些帶內容的文件。Puppet可以很容易做到:我們可以將文件放在puppetserver虛擬機上,然后通過Puppet將其傳輸到puppetclient虛擬機上。

首先,我們在puppetserver虛擬機上創建源文件:

在 puppetserver VM 上

123~# sudo -s~# mkdir /etc/puppet/files~# echo "Hello World." > /etc/puppet/files/helloworld.txt

然后,我們需要允許Puppet客戶端來訪問這個文件,為此,我們需要修改puppetserver虛擬機上的/etc/puppet/fileserver.conf文件,添加一個allow *語句:

/etc/puppet/fileserver.conf on puppetserver

123456789101112131415161718# This file consists of arbitrarily named sections/modules# defining where files are served from and to whom# Define a section 'files'# Adapt the allow/deny settings to your needs. Order# for allow/deny does not matter, allow always takes PRecedence# over deny[files]path /etc/puppet/filesallow *# allow *.example.com# deny *.evil.example.com# allow 192.168.0.0/24[plugins]# allow *.example.com# deny *.evil.example.com# allow 192.168.0.0/24

現在我們可以修改/etc/puppet/manifest/site.pp清單文件,擴展其中已有的file塊:

/etc/puppet/manifests/site.pp on puppetserver

1234567891011node "puppetclient" {file { "/root/helloworld.txt":ensure => file,owner => "root",group => "root",mode => 0644,source => "puppet://puppetserver/files/helloworld.txt"}}

讓我們再次運行客戶端系統上的代理:

在 puppetclient VM 上

12345678~# sudo puppet agent --verbose --no-daemonize --onetimeinfo: Caching catalog for puppetclientinfo: Applying configuration version '1395878127'info: FileBucket adding {md5}ff22941336956098ae9a564289d1bf1binfo: /Stage[main]//Node[puppetclient]/File[/home/ubuntu/helloworld.txt]: Filebucketed /home/ubuntu/helloworld.txt to puppet with sum ff22941336956098ae9a564289d1bf1bnotice: /Stage[main]//Node[puppetclient]/File[/home/ubuntu/helloworld.txt]/content: content changed '{md5}ff22941336956098ae9a564289d1bf1b' to '{md5}770b95bb61d5b0406c135b6e42260580'notice: Finished catalog run in 0.09 seconds

現在Puppet代理的確會關心文件的內容,它會使用從puppetserver虛擬機上得到的文件,來覆蓋現有文件。

第三部分中,我們會看一個更復雜的清單,以及如何將清單組織成不同的模塊。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩另类| 欧美电影在线观看网站| 国产精品揄拍500视频| 伊人伊成久久人综合网小说| 欧美日韩另类在线| 欧美亚洲国产视频小说| 欧美专区中文字幕| 欧美视频专区一二在线观看| 亚洲欧美日韩直播| 日韩精品久久久久久福利| 欧美在线不卡区| 九九热最新视频//这里只有精品| 精品久久香蕉国产线看观看亚洲| 国产精品私拍pans大尺度在线| 欧美日韩另类字幕中文| 亚洲成人av在线| 亚洲精品一区二区三区婷婷月| 国产亚洲精品美女| 欧日韩在线观看| 精品国产一区二区三区久久| 在线观看91久久久久久| 欧美黄色片视频| 欧美成人自拍视频| 欧美国产日韩一区二区三区| 91精品国产91久久久久福利| 日本不卡免费高清视频| 91精品久久久久久综合乱菊| 久久久精品欧美| 精品视频在线播放免| 亚洲午夜精品久久久久久久久久久久| 日韩经典中文字幕在线观看| 曰本色欧美视频在线| 91网站免费观看| 日韩精品中文字幕久久臀| 丝袜美腿精品国产二区| 日韩最新在线视频| 91麻豆桃色免费看| 91精品啪aⅴ在线观看国产| 法国裸体一区二区| 97国产精品免费视频| 日韩在线视频免费观看高清中文| 国模视频一区二区| 国产综合在线视频| 热草久综合在线| 久久精品国产91精品亚洲| 在线观看免费高清视频97| 久久免费少妇高潮久久精品99| 久久久欧美一区二区| 一区二区三区 在线观看视| 57pao成人国产永久免费| 少妇激情综合网| 97精品在线观看| 精品国产一区二区三区在线观看| 欧美精品一区二区免费| 久久久亚洲精品视频| 欧美尤物巨大精品爽| 国产精品一区二区三区久久| 国产精品日韩电影| 亚洲成人999| 7m精品福利视频导航| 久久久噜噜噜久久中文字免| 成人有码在线视频| 久久精品国产96久久久香蕉| 国产精品一区二区久久久| 欧美综合国产精品久久丁香| 成人午夜高潮视频| 北条麻妃一区二区三区中文字幕| 色偷偷噜噜噜亚洲男人| 欧美中文字幕在线视频| 国产精品狠色婷| 91在线观看免费观看| 欧美在线性爱视频| 亚洲精品狠狠操| 一本一本久久a久久精品综合小说| 欧洲日韩成人av| 成人激情视频在线观看| 欧美性猛交xxxx富婆| 欧美日韩国产一区二区三区| 日本成人激情视频| 亚洲va久久久噜噜噜久久天堂| 国模吧一区二区| 这里只有精品视频| 国产ts一区二区| 国产午夜精品一区二区三区| 日本免费一区二区三区视频观看| 欧美中文在线观看国产| 不卡av在线播放| 国产视频观看一区| 国语自产精品视频在线看一大j8| 91wwwcom在线观看| 国产999精品久久久影片官网| 91久久在线播放| 日韩精品极品在线观看播放免费视频| 疯狂蹂躏欧美一区二区精品| 欧美亚洲另类视频| 91精品国产91久久久久久最新| 国产有码在线一区二区视频| 欧美风情在线观看| 国产精品一区二区久久| 欧美激情乱人伦一区| 亚洲一区二区中文字幕| 最近2019中文字幕在线高清| 91免费看片在线| 欧美乱人伦中文字幕在线| 美女福利精品视频| 国产精品视频精品视频| 欧美性猛交xxxx富婆| 久久天堂电影网| 精品中文字幕在线观看| 日韩国产在线播放| 国产视频欧美视频| 色悠悠国产精品| 欧美精品中文字幕一区| 亚洲欧洲视频在线| 国产精品久久久久久久久久小说| 狠狠久久五月精品中文字幕| 性欧美办公室18xxxxhd| 日韩电影免费在线观看| 国产精品免费久久久久影院| 91国产美女视频| 欧美性资源免费| 国产精品亚洲精品| 国产丝袜一区二区三区免费视频| 国产精品亚洲一区二区三区| 欧美交受高潮1| 热久久视久久精品18亚洲精品| 亚洲精品一区二区在线| 亚洲小视频在线| 欧美日韩免费在线| 日韩av在线网站| 欧美日韩电影在线观看| 亚洲人成亚洲人成在线观看| 一区二区三区天堂av| 亚洲性日韩精品一区二区| 91免费看片网站| 国语自产精品视频在线看| 中文综合在线观看| 日韩成人激情视频| 国产精品久久久久久一区二区| 成人激情视频网| 欧美国产日本在线| 久久99视频精品| 欧美日韩性生活视频| 91av在线免费观看| 成人黄色在线免费| 性欧美xxxx| 国产一区二区三区在线视频| 欧美性猛xxx| 色偷偷88888欧美精品久久久| 91久久精品日日躁夜夜躁国产| 国产成人福利网站| 宅男66日本亚洲欧美视频| 亚洲欧美福利视频| 成人久久久久爱| 色综合五月天导航| 伊人伊成久久人综合网小说| 97久久伊人激情网| 国产丝袜视频一区| 亚洲伦理中文字幕| 亚洲欧美日韩在线高清直播| 日韩成人中文字幕在线观看| 青草青草久热精品视频在线网站| 精品国产依人香蕉在线精品| 色吧影院999|