1,安裝puppet注意:客戶端和服務器版本盡量保持一致,如果不能一致,客戶端的version也不能太舊,服務端的version不能低于client端
安裝及簡單配置步驟:
安裝準備(server&client端適用):
首先,要更改計算機名:hostname puppet.nn.local 或者:hostname -F /etc/hostname (這個文件里寫上你的計算機名,如果不存在自己創建一個)
其次,更改/etc/hosts文件,這個很重要.(最好把agent端也寫進去) 確保兩端能ping 通 如:
192.168.1.1 puppet.nn.local //server 端
192.168.1.2 agent.nn.local //agent端
然后,關掉 iptables 和 selinux
iptables -F (或者放開8140端口:iptables -A INPUT -p tcp -m state --state NEW -s 192.168.1.0/24 --dport 8140 -j ACCEPT)
setenforce 0 或者修改/etc/selinux/config 里的 enforce改為disabled -----》 reboot your computer
最后,一定要保證server與client的時間一直,否則,client獲取證書時會出錯。適用ntp服務是最好的選擇,我是將ntp的服務端安裝在了puppet上(實驗環境,生產環境不推薦)
最好使用各版本的包管理器來安裝,下面的安裝方法是使用redhat系的系統來安裝
a, 先安裝epel的源,下載地址:https://fedoraproject.org/wiki/EPEL/zh-cn,選擇自己的版本下載。如:epel-release-7.noarch.rpm
安裝: rpm -Uvh epel-release-7.noarch.rpm 然后:yum update
b,安裝ruby及ruby庫:
yum -y install ruby ruby-libs ruby-shadow(puppet需要)
c,安裝puppet服務端:
yum -y install puppet(client端) puppet-server facter(相當于資產管理的一個東西,能自動匯報或者獲取客戶端信息(如,軟件環境,操作系統等))
*****將puppetmaster(主程序)加入開機啟動項:
RHEL7之前版本:chkconfig --level 3 5 on puppetmaster
RHEL7: systemctl enable puppetmaster.service
d,配置server端
puppet的主配置文件為:/etc/puppet/puppet.conf
添加如下內容:
[master]
certname=puppet.nn.local //服務端的名字
更改 證書保存地址,建議放在 /var/puppet/ssl (/var/puppet/ 文件夾需要手動創建,并將擁有者改為:puppet用戶和組)
[main]
ssldir=/var/puppet/ssl
保存退出
創建 /etc/puppet/manifests/site.pp 文件,如果有就不用創建,如果沒有請創建,這個文件關系到puppetmaster能否啟動。
啟動: service puppetmaster start(RHEL7: systemctl start puppetmaster.service), 第一次啟動建議使用:puppet master --verbose --no-daemonize 能夠看到詳細的信息。
e,配置client端:
client的配置文件同樣是:/etc/puppet/puppet.conf
添加如下內容:
[agent]
certname=agent.nn.local
server=puppet.nn.local
report=true
更改ssldir選項如server端一樣
[main]
ssldir=/var/puppet/ssl
保存退出
啟動: service puppet start 或者 systemctl start puppet.service (RHEL7)
f, 測試:
客戶端:
puppet agent --server=puppet.nn.local --verbose --no-daemonize --debug (如果server端是no-daemonize模式啟動的,client也要加上這個選項)
這個指令的作用是將puppet agent不用守護進程的模式啟動,好處是能看到與服務器端的通信及證書簽名的過程,方便debug。 默認puppet每2分鐘向服務器端申請一次簽名
直到獲得服務器端發來的經過簽名的證書才 start agent 服務。也可以通過--waitforcert=time 來設置等待時間,如果time為0 則不等待
服務端:
查看客戶端的簽名申請: puppet cert --list
給客戶端簽名:puppet cert --sign agent.nn.local
清除用戶證書:puppet cert --clean agent.nn.local (client端要同時刪除證書:rm -rf /var/puppet/ssl/agent.nn.local)
g,完事 ,著重提醒:你的防火墻,多數故障是由它造成的,至少我遇到的問題是這樣的,如: no route to host之類的東西。
參考資料:《精通puppet》
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。