国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 操作系統(tǒng) > 正文

[翻譯]用 Puppet 搭建易管理的服務(wù)器基礎(chǔ)架構(gòu)(1)

2024-06-28 13:19:53
字體:
供稿:網(wǎng)友
[翻譯]用 Puppet 搭建易管理的服務(wù)器基礎(chǔ)架構(gòu)(1)

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

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

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

關(guān)于 Puppet

Puppet 是一種 linux、Unix、Windows 平臺的集中配置管理系統(tǒng),使用自有的 Puppet 描述語言,可管理配置文件、用戶、cron任務(wù)、軟件包、系統(tǒng)服務(wù)等。Puppet把這些系統(tǒng)實體稱之為資源,其設(shè)計目標(biāo)是簡化對這些資源的管理以及妥善處理資源之間的依賴關(guān)系。

在這一系列中,作者提供了一個可操作的全面教程,來逐步解釋如何使用 Puppet 搭建一個集中式管理的 Linux 服務(wù)器基礎(chǔ)結(jié)構(gòu)。

目標(biāo)讀者

我相信有一類Linux系統(tǒng)管理員會從這個系列教程中收獲最多,他們已經(jīng)在管理一個小規(guī)模的服務(wù)器系統(tǒng)網(wǎng)絡(luò),想知道如何擴大現(xiàn)有的基礎(chǔ)結(jié)構(gòu),并且為管理新增系統(tǒng)付出的的時間和精力,不會和新增系統(tǒng)的數(shù)目成正比。或許你目前在管理5個服務(wù)器系統(tǒng),你可以問一下自己有沒有更好的方法,可以在不增加人手的情況下,來管理50個服務(wù)器系統(tǒng)。或者你已經(jīng)聽說過集中式配置管理和Puppet, 并且渴望嘗試一下。

先決條件

如果你的電腦安裝了Linux、Windows 或者 Mac OS X 桌面操作系統(tǒng),擁有至少4G內(nèi)存,16G可用磁盤空間,并且CPU可以運行虛擬機,那就足夠了。所有你要做的事情和需要的信息,我會在這個系列課程中為你說明。

開始

我無需說服你使用Puppet實現(xiàn)基于工具的配置管理,既然你能讀到這里,你可能已經(jīng)想要使用它了,所以讓我們馬上開始吧。

我承諾這是一個易上手的全面的教程,為此,我們需要準(zhǔn)備一個環(huán)境,這樣我們可以不僅可以討論如何使用Puppet,而且能夠創(chuàng)建一個雖然很小但是真實的服務(wù)器基礎(chǔ)結(jié)構(gòu),在這個基礎(chǔ)結(jié)構(gòu)中,我們會運行一個Puppet服務(wù)器,它會管理一個Puppet客戶端。換句話說,我們需要兩個Linux虛擬機。

在這個教程中,我愿意使用兩個Ubuntu 12.04 LTS PRecise Pangolin系統(tǒng),這只是因為我對這個Linux發(fā)行版本最有經(jīng)驗。如果你使用更新版本的Ubuntu或者Debian 7.0 Wheezy,那么這里描述的步驟應(yīng)該不會有很大的區(qū)別。

我們要做的第一件事情是從Oracle網(wǎng)站下載安裝VirtualBox。這是一個免費的虛擬機管理軟件,我們可以使用它來運行上面提到的兩個虛擬Ubuntu系統(tǒng)。在寫這篇教程時,VirtualBox的最新發(fā)布版本是4.3.8-92456,你可以前往http://download.virtualbox.org/virtualbox/4.3.8/,然后根據(jù)使用的操作系統(tǒng),來下載VirtualBox-4.3.8-92456-Win.exe,VirtualBox-4.3.8-92456-OSX.dmg, 或者VirtualBox-4.3.8-92456-Linux_amd64.run。一旦下載完成后,你就可以使用默認(rèn)選項進行安裝了。

一旦將VirtualBox安裝到你的電腦后,你就需要下載Ubuntu 12.04 LTS 64位服務(wù)器版本的安裝媒介了,你可以前往http://releases.ubuntu.com/12.04/,然后選擇64-bit PC (AMD64) server install CD鏈接來進行下載,我們會使用這個ISO來安裝兩個虛擬機。

一旦將ISO文件完全下載到你的電腦后,你可以打開VirtualBox,在Machine菜單下選擇New…

我們開始安裝虛擬機,這個虛擬機會被當(dāng)做Puppet服務(wù)器,因此在彈出窗口中,我們將虛擬機的名字設(shè)置為puppetserver。接下來將Type設(shè)置為Linux,將Version設(shè)置為Ubuntu(64bit)。 將內(nèi)存大小設(shè)置為512M就足夠了。讓VirtualBox來為虛擬機創(chuàng)建一個硬盤文件(將大小設(shè)置為8G就足夠了)。

現(xiàn)在你就可以啟動最新創(chuàng)建的虛擬機了。VirtualBox會向你詢問安裝媒介,這里需要指向你已經(jīng)下載完畢的Ubuntu ISO文件的路徑。

VirtualBox就會啟動虛擬機并引導(dǎo)進入Ubuntu的安裝CD,選擇English作為安裝過程中使用的語言,然后選擇Install Ubuntu Server繼續(xù)安裝。

在安裝過程中,你應(yīng)該進行如下設(shè)置:

  • 語言:English
  • 國家:選擇你的國家
  • Locale:en_US.UTF-8
  • 鍵盤:選擇最適合你需要的鍵盤布局
  • 默認(rèn)用戶:ubuntu,密碼ubuntu
  • 加密home目錄:No
  • 時區(qū):選擇你所在的時區(qū)
  • 分區(qū):Guided – use entire disk
  • 當(dāng)被詢問需要安裝哪些包時,只選擇OpenSSH server
  • 將grub安裝進MBR
  • 將系統(tǒng)時鐘設(shè)置為UTC
  • 不要自動安裝安全更新。

一旦第一個虛擬機的安裝完成后,啟動它并進入。然后,我們創(chuàng)建第二個虛擬機,這個虛擬機是我們的puppet客戶端。你可以參考安裝第一個虛擬機時的處理方式,但其中有一個例外:在VirtualBox內(nèi)部安裝Ubuntu的過程中,將第二臺虛擬機的名字設(shè)置為puppetclient,而不是puppetserver

在完成安裝后,你可以像操作第一臺虛擬機那樣,啟動并進入第二臺虛擬機。這時你會看到兩個VirtualBox的窗口,都在運行Ubuntu 12.04, 都向你提示輸入登錄信息。接下來,我們需要對VirtualBox進行一些配置,因此你需要登陸到兩臺虛擬機(用戶名:ubuntu,密碼:ubuntu),然后通過命令sudo poweroff來關(guān)閉它們。

網(wǎng)絡(luò)

因為我們要建立一個Puppet服務(wù)器和客戶端,所以這兩臺虛擬機需要通過網(wǎng)絡(luò)彼此通信。同時,如果能夠從我們自己的電腦連接到這兩臺虛擬機,也會比較方便,這樣我們可以通過SSH的方式連接到虛擬機,而不是通過一個很小的不易用的VirtualBox控制臺。最后還有重要的一點,這兩臺虛擬機需要能夠連接到互聯(lián)網(wǎng),這樣才可以安裝相關(guān)軟件。

為了實現(xiàn)這些,我們需要兩個虛擬的網(wǎng)絡(luò),一個Host-only網(wǎng)絡(luò)和一個NAT網(wǎng)絡(luò)。這兩臺虛擬機則各需要有兩個以太網(wǎng)適配器,其中eth0用來連接到Host-only網(wǎng)絡(luò),eth1用來連接到NAT網(wǎng)絡(luò)。

Host-only網(wǎng)絡(luò)允許這兩臺虛擬機可以彼此連接,也允許我們可以使用自己的電腦連接到這兩臺虛擬機上。NAT網(wǎng)絡(luò)則允許這兩臺虛擬機可以訪問互聯(lián)網(wǎng)。

VirtualBox本身已經(jīng)建立了這兩種網(wǎng)絡(luò)。選擇File->Preference,然后找到Network,其中NAT Networks選項卡中雖然沒有列出任何網(wǎng)絡(luò),但其實一直會存在一個可用的網(wǎng)絡(luò),因此我們不需要再額外配置一個。然后切換到Host-only Networks選項卡。我們需要確保有一個名為vboxnet0的網(wǎng)絡(luò)是可用的。點擊在列表旁邊的小螺絲刀圖標(biāo),在彈出的窗口中,需要確認(rèn)AdapterDHCP Server的配置如下所示。

Host-only網(wǎng)絡(luò)中,我們自己的電腦的IP地址被自動設(shè)置為192.168.56.1,我們的puppetserver虛擬機應(yīng)該設(shè)置為192.168.56.2,puppetclient虛擬機應(yīng)該設(shè)置為192.168.56.3。

為了做到如上配置,我們需要在兩個虛擬機內(nèi)打開Settings對話框,找到Network,然后將Adapter 1綁定到Host-only Adapter,并將Name設(shè)置為vboxnet0。然后將Adapter 2綁定到NAT(注意:不是NAT Network!)。這些配置在兩臺虛擬機上必須保持一致。

現(xiàn)在啟動兩臺虛擬機并使用ubuntu用戶信息登錄系統(tǒng)。我們需要在兩臺虛擬機內(nèi)編輯/etc/network/interfaces文件來配置網(wǎng)絡(luò)接口。對于puppetserver來說,該文件如下所示。

/etc/network/interfaces on puppetserver

12345678910auto loiface lo inet loopbackauto eth0iface eth0 inet staticaddress 192.168.56.2netmask 255.255.255.0auto eth1iface eth1 inet dhcp

對于puppetclient來說,該文件如下所示。

/etc/network/interfaces on puppetclient

12345678910auto loiface lo inet loopbackauto eth0iface eth0 inet staticaddress 192.168.56.3netmask 255.255.255.0auto eth1iface eth1 inet dhcp

如你所見,這兩臺虛擬機的配置中,唯一不同的地方就是IP地址。通過如上配置,我們的虛擬機就可以通過eth1來訪問互聯(lián)網(wǎng),并通過eth0中設(shè)置的靜態(tài)IP地址來訪問彼此。

最后一步,我們需要將兩臺虛擬機的名字放到兩臺虛擬機的hosts文件中,這樣我們就可以通過名字而不是IP地址來訪問它們。puppetserver虛擬機上的etc/hosts文件內(nèi)容如下所示。

/etc/hosts on puppetserver

12345678910127.0.0.1 localhost127.0.1.1 puppetserver192.168.56.3 puppetclient# The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters

puppetclient虛擬機上的/etc/hosts文件內(nèi)容如下所示。

/etc/hosts on puppetclient

12345678910127.0.0.1 localhost127.0.1.1 puppetclient192.168.56.2 puppetserver# The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters

在重啟兩臺虛擬機后,你應(yīng)該能夠從puppetserver虛擬機上成功運行ping puppetclient命令,反過來也可以從puppetclient虛擬機上成功連接到puppetserver虛擬機,同樣你也應(yīng)該能夠在自己的電腦上成功運行ping 192.168.56.2ping 192.168.56.3

搭建Puppet服務(wù)器

現(xiàn)在,我們已經(jīng)建立了Puppet服務(wù)器和Puppet客戶端的虛擬機,在虛擬機上安裝了Ubuntu,并配置好了網(wǎng)絡(luò)并正在運行,我們可以開始搭建Puppet服務(wù)器系統(tǒng)了。

Ubuntu軟件庫為我們提供了將服務(wù)器系統(tǒng)變?yōu)镻uppet服務(wù)器所需的全部內(nèi)容,我們不需要手動安裝任何軟件或者操作外部軟件包。

為了安裝必要的軟件包,我們需要使用ubuntu用戶登錄到puppetserver虛擬機,然后運行如下命令。

On the puppetserver VM

12~# <strong>sudo apt-get update~# <strong>sudo apt-get install puppetmaster

我們不需要做其他步驟了,現(xiàn)在Puppet服務(wù)器可以使用一個合理的默認(rèn)配置來運行了。

搭建Puppet客戶端

建立Puppet客戶端(或者用Puppet術(shù)語,代理)并在puppetclient虛擬機上運行它,和建立Puppet服務(wù)器并沒有太大的區(qū)別。首先我們需要安裝Puppet客戶端軟件包。

On the puppetclient VM

12~# sudo apt-get update~# sudo apt-get install puppet

然后,我們需要編輯etc/puppet/puppet.conf文件,來告訴Puppet代理Puppet服務(wù)器的域名,為此我們需要在該文件中添加一行:server=puppetserver

/etc/puppet/puppet.conf on puppetclient

12345678910111213141516[main]server=puppetserverlogdir=/var/log/puppetvardir=/var/lib/puppetssldir=/var/lib/puppet/sslrundir=/var/run/puppetfactpath=$vardir/lib/factertemplatedir=$confdir/templatesprerun_command=/etc/puppet/etckeeper-commit-prepostrun_command=/etc/puppet/etckeeper-commit-post[master]# These are needed when the puppetmaster is run by passenger# and can safely be removed if webrick is used.ssl_client_header = SSL_CLIENT_S_DN ssl_client_verify_header = SSL_CLIENT_VERIFY

這樣設(shè)置后,客戶端就可以連接到puppetserver虛擬機上的Puppet master進程了,但它還不能真正和服務(wù)器進行通信,因為它還沒有在已驗證并允許的客戶端列表里面。為了實現(xiàn)這一點,我們需要發(fā)起從客戶端到服務(wù)器的第一個連接。

在 puppetclient VM

1~# sudo puppet agent --verbose --no-daemonize --onetime

這會向Puppet master進程發(fā)起一個連接,這個進程會監(jiān)聽puppetserver虛擬機上的8140端口。這個連接的輸出會很詳細(xì),然后客戶端(代理)就不再繼續(xù)以后臺daemon的方式運行。同時,它只會運行一次,也就是說,當(dāng)這個連接關(guān)閉后,代理進程也會結(jié)束。

如果所有的配置都正確,那么第一次運行時的輸出如下所示。

在 puppetclient VM 上,運行 Puppet 代理之后,

1234info: Creating a new SSL key for puppetclientinfo: Creating a new SSL certificate request for puppetclientinfo: Certificate Request fingerprint (md5): 20:74:A7:BD:69:5D:50:8D:6A:79:67:6E:DC:5E:41:E0Exiting; no certificate found and waitforcert is disabled

這個看上去似乎像是一個錯誤,但它實際上不是。客戶端已經(jīng)通過這次運行讓服務(wù)器知道了它的信息了,但是服務(wù)器還沒有接受這個客戶端。下一步,我們必須簽署puppetclient虛擬機已經(jīng)創(chuàng)建的SSL認(rèn)證請求,并將其發(fā)送給服務(wù)器。我們可以通過如下命令在服務(wù)器上查看那些還沒有被簽署的認(rèn)證請求列表。

在 puppetserver VM 上

~#sudo puppet cert --list

這個命令會打印如下的列表。

在 puppetserver VM 上

"puppetclient" (20:74:A7:BD:69:5D:50:8D:6A:79:67:6E:DC:5E:41:E0)

現(xiàn)在我們可以簽署這個請求,這樣我們就允許客戶端在接下來的連接中可以收到服務(wù)器的信息。

在 puppetserver VM 上

1234~# sudo puppet cert --sign puppetclientnotice: Signed certificate request for puppetclientnotice: Removing file Puppet::SSL::CertificateRequest puppetclient at '/var/lib/puppet/ssl/ca/requests/puppetclient.pem'

切換回puppetclient虛擬機,我們現(xiàn)在能夠初始化一個指向服務(wù)器的完整連接了。

在 puppetserver VM 上

12345678~# sudo puppet agent --verbose --no-daemonize --onetimeinfo: Caching certificate for puppetclientinfo: Caching certificate_revocation_list for cainfo: Caching catalog for puppetclientinfo: Applying configuration version '1395687915'info: Creating state file /var/lib/puppet/state/state.yamlnotice: Finished catalog run in 0.02 seconds

就是這樣——我們的Puppet基礎(chǔ)結(jié)構(gòu)已經(jīng)完全建好并開始運行了。但是,在這個基礎(chǔ)結(jié)構(gòu)還并不能做任何事情。我們的目標(biāo)是通過運行在puppetserver虛擬機上的Puppet master,來管理puppetclient虛擬機上的配置。但是我們目前還沒有定義任何信息來觸發(fā)客戶端的配置改動。這就是我們要在使用Puppet來構(gòu)建可管理的服務(wù)器基礎(chǔ)結(jié)構(gòu): 第二部分會涉及的內(nèi)容。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宿州市| 安吉县| 石景山区| 石家庄市| 绍兴市| 伊金霍洛旗| 诏安县| 辉南县| 会东县| 临邑县| 商洛市| 徐闻县| 蒙自县| 来安县| 新昌县| 灵武市| 改则县| 西青区| 鱼台县| 明溪县| 新河县| 修文县| 寻乌县| 和林格尔县| 安丘市| 海晏县| 本溪| 井研县| 丰城市| 新宁县| 唐山市| 金昌市| 太白县| 吉首市| 锦屏县| 武汉市| 谷城县| 石景山区| 自贡市| 南阳市| 青海省|