puppet是什么?puppet安裝文檔
更新時間:2019年01月24日17時00分 來源:puppet是什么 瀏覽次數(shù):
1)安裝環(huán)境:
兩臺ubuntu 12.04 的實例
server(master): ?ip:192.168.254.234 ?host:vm234.com
client: ? ? ? ? ? ? ? ? ip:192.168.254.235 ? host:vm235.com
2)安裝前的準(zhǔn)備:
請務(wù)必先給各自的主機的/etc/hosts 添加上hostname和ip,在服務(wù)節(jié)點,添加自己的hostname和所有client節(jié)點的host和ip;在client節(jié)點,只需添加server和自己的hostname和ip;這是因為在server的日志記錄里都是以hostname來區(qū)別不同的節(jié)點。
server是通過端口8140(由ruby占有)與client通信的,所以請確認(rèn)設(shè)置防火墻,開放此端口。
為了各個節(jié)點能協(xié)同的運行服務(wù),必須統(tǒng)一各個節(jié)點的時間,請給各個節(jié)點裝ntp。以server節(jié)點的時間為標(biāo)準(zhǔn)。
3)安裝:
在server節(jié)點安裝?puppetmaster:
#sudo apt-get install puppetmaster
可通過腳本?/etc/init.d/puppetmaster 來控制狀態(tài)(start,restart,stop,status)
在client節(jié)點安裝 puppet:
#sudo apt-get install puppet?
注:如系統(tǒng)未安裝運行puppet所需的ruby環(huán)境,上述兩條指令會自動安裝。
然后配置文件 /etc/puppet/puppet.conf。這是puppet的主要配置文件。
在server節(jié)點,打開/etc/puppet/puppet.conf后,在[master]下添加當(dāng)前機器的certname
[master]
certname=vm234.com
保存后重啟服務(wù):
#service puppetmaster restart?
在client節(jié)點,打開/etc/puppet/puppet.conf后,添加:
[agent]
certname=vm235.com
server=vm234.com
report=true
#pluginsync=true
注:當(dāng)有插件需要同步的時候,再取消pluginsync的注釋。
保存退出后,再打開?/etc/default/puppet , 將START=on 改為 START=yes。將puppet設(shè)置為開機默認(rèn)啟動項。這是puppet在client端強制要求的。
然后重啟puppet服務(wù)
#service puppet restart
4)服務(wù)連接:
首先在路徑?/etc/puppet/manifests/ 下創(chuàng)建 site.pp
然后是client端向server發(fā)起認(rèn)證的請求:
#puppet agent --server=vm234.com --no-daemonize --verbose
然后在server節(jié)點列出當(dāng)前請求認(rèn)證者的hostname
#puppet cert --list
結(jié)果是:
"vm235.com" (一長串密鑰的指紋)
然后server接受特定client的請求:
#puppet cert --sign ?vm235.com
或者是接受所有client的請求:
#puppet cert --sign --all?
notice: Signed certificate request for vm235.com
notice: Removing file Puppet::SSL::CertificateRequest vm235.com at '/var/lib/puppet/ssl/ca/requests/vm235.com.pem'
認(rèn)證后,client的公鑰放在文件夾?/var/lib/puppet/ssl/ca/signed/
然后在client端顯示:
info: Caching certificate for vm235.com
notice: Starting Puppet client version 2.7.11
至此認(rèn)證請求完畢,可暫停client的agent ,即按 ctrl + c;也可等它自行結(jié)束,就是時間可能會久點。但是一定要出現(xiàn)?notice: Starting Puppet client version 2.7.11 的信息確認(rèn)認(rèn)證成功后才可暫停。
可用下面小段代碼測試是puppet是否配置成功:
在?/etc/puppet/manifests/site.pp 輸入
node 'vm235.com'{
file{
"/root/helloWorld":
content=>"hello world\n" ,
mode => 0644;
}
}
保存后。在client端輸入
#puppet agent --test
將在后臺運行的 agent 放到終端顯示,顯示的信息如下:
info: Caching catalog for vm235.com
info: Applying configuration version '1374052357'
notice: /Stage[main]//Node[vm235.com]/File[/root/helloWorld]/ensure: defined content as '{md5}6f5902ac237024bdd0c176cb93063dc4'
notice: Finished catalog run in 0.03 seconds
這時,在如在client生成文件?/root/helloWorld,文件的內(nèi)容是hello world,則證明puppet已經(jīng)能正常工作了。
5)常用小技巧:
在server節(jié)點的路徑?/var/lib/puppet/ssl/ca/signed 可查看server目前已經(jīng)接受的client的公鑰
6)常見bug:
?命令 service puppet status 可查看當(dāng)前服務(wù)的狀態(tài),如果遇到錯誤:could not access PID file for agent 。這是因為服務(wù)發(fā)生異常而關(guān)閉了,
請重啟服務(wù)?service puppet restart。
輸入指令puppet agent --server=vm234.com --no-daemonize --verbose,遇到錯誤 Could not run: Could not create PID file: /var/run/puppet/agent.pid。這是因為已有puppet agent 啟動了,請刪除之前的進程(可用 pgrep和pkill),再重新啟動服務(wù)puppet agent --server=……
---------------------
作者:DamonHao
來源:CSDN
原文:https://blog.csdn.net/damonhao/article/details/11378025
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!