Puppet常見(jiàn) FAQs
puppet是一個(gè)為實(shí)現(xiàn)數(shù)據(jù)庫(kù)中心自動(dòng)化管理而設(shè)計(jì)的配置管理軟件。基于c/s架構(gòu)。puppet的服務(wù)器端保存著所有的對(duì)客戶(hù)端服務(wù)器的配置代碼,在puppet里面叫做manifest. 客戶(hù)端下載manifest之后,可以根據(jù)manifest對(duì)服務(wù)器進(jìn)行配置,例如軟件包管理,用戶(hù)管理和文件管理等等。
Q: puppet的證書(shū)機(jī)制是什么樣的?
A: puppet證書(shū)問(wèn)題是初學(xué)者最容易遇到的問(wèn)題,這里講一下怎么處理.puppet服務(wù)器端在安裝或者首次啟動(dòng)的時(shí)候,會(huì)自動(dòng)生產(chǎn)一個(gè)根證書(shū)和服務(wù)器證書(shū),證書(shū)和主機(jī)名相關(guān),因此如果證書(shū)生成后友改了主機(jī)名,那就會(huì)出問(wèn)題. puppet客戶(hù)端在首次啟動(dòng)的時(shí)候,也會(huì)自動(dòng)生成證書(shū);但是這個(gè)證書(shū)需要得到puppet服務(wù)器端的簽名才行,因此;puppet客戶(hù)端第一次連接服務(wù)器的時(shí)候,會(huì)發(fā)送一個(gè)證書(shū)請(qǐng)求; 服務(wù)器端需要對(duì)這個(gè)證書(shū)進(jìn)行簽名. puppet客戶(hù)端在下次連接服務(wù)器的時(shí)候就會(huì)下載簽名好的證書(shū).
Q:debian下面的證書(shū)出錯(cuò),怎么解決?
A:本方法是提供給初學(xué)者的測(cè)試環(huán)境,生成環(huán)境不建議這么做.首先在puppetmaster(服務(wù)器端)刪除/var/lib/puppet/ssl目錄;然后啟動(dòng)puppetmasterd ; 然后在客戶(hù)端也刪除/var/lib/puppet/ssl目錄.把puppetmaster機(jī)器的主機(jī)名和對(duì)應(yīng)的ip地址寫(xiě)入客戶(hù)端機(jī)器的/etc/hosts.然后執(zhí)行
puppetd——t e s t ——server server . example . com #發(fā)送證書(shū)請(qǐng)求
把server.example.com替換成你自己的服務(wù)器主機(jī)名. 執(zhí)行這個(gè)命令,會(huì)有提示信息,不用理會(huì).
然后登錄到puppetmaster服務(wù)器機(jī)器,執(zhí)行
puppetca ——l i s t #列出所有證書(shū)請(qǐng)求
命令,看看是否有客戶(hù)端的證書(shū)請(qǐng)求;如果沒(méi)有,請(qǐng)檢查前面的步驟是執(zhí)行正確,以及網(wǎng)絡(luò)連
接是否正常. 如果puppetca --list 能看到請(qǐng)求,那么執(zhí)行
puppetca —s —a #簽名所有證書(shū)
命令; 對(duì)所有的證書(shū)請(qǐng)求簽名.
最后回到puppet客戶(hù)端機(jī)器,執(zhí)行
puppetd ——t e s t ——server server . example . com #得到證書(shū)
就能建立連接了,如果你的site.pp寫(xiě)好了.就可以測(cè)試puppet了.
補(bǔ)充: 如果客戶(hù)端和服務(wù)器端的時(shí)間不一致也會(huì)導(dǎo)致證書(shū)認(rèn)證失敗,因此出現(xiàn)證書(shū)問(wèn)題的時(shí)候需要檢查兩臺(tái)機(jī)器的時(shí)間是否一致,如果不一致用date命令或者ntpdate命令讓兩臺(tái)機(jī)器的時(shí)間一致。
Q:redhat下面的證書(shū)問(wèn)題如何解決?
A:同debian ; ssl目錄也是在/var/lib/puppet/ssl
Q:源代碼安裝的puppet如何解決證書(shū)問(wèn)題?
A: 同debian,但是ssl目錄在/etc/puppet/ssl
Q:如何配置puppetrun?
A: 在puppet客戶(hù)端建立一個(gè)文件/etc/puppet/auth.conf ,增加兩行內(nèi)容
path / allow *
然后用下面的參數(shù)啟動(dòng)puppetd,便于調(diào)試。
puppetd ——no—c l i e n t ——l i s t e n ——verbose ——no—daemonize ——server server . puppet . com
啟動(dòng)好以后,用ss -nlp|grep puppet 命令看看puppetd是否監(jiān)聽(tīng)到了8139端口。如果正常,在其他機(jī)器上運(yùn)行
puppetrun ——host host1 . puppet . com
命令來(lái)看看puppetrun是否正常。
【編輯推薦】