本篇博客主要介紹Puppet的安裝部署,後續會更新其餘相關內容
mysql
1、簡介sql
2、環境介紹數據庫
3、安裝Puppetvim
4、配置Puppet-dashboardwindows
5、配置Puppet Kickruby
1、簡介bash
Puppet是一個基於Ruby語言所研發的一款開源軟件,Puppet是一種Linux、Unix、windows平臺的集中配置管理系統,使用自有的Puppet描述語言,可管理配置文件、用戶、cron任務、軟件包、系統服務等。Puppet把這些系統實體稱之爲資源,Puppet的設計目標是簡化對這些資源的管理以及妥善處理資源間的依賴關係
服務器
Puppet採用C/S星狀的結構,全部的客戶端和一個或幾個服務器交互。Puppet一般能夠用來管理一臺主機的整個生命週期:從初始化到安裝、升級、維護以及後續將服務遷移並下架。每一個客戶端週期的(默認半個小時)向服務器發送請求,得到其最新的配置信息,保證和該配置信息同步。每一個Puppet客戶端每半小時(能夠設置)鏈接一次服務器端, 下載最新的配置文件,而且嚴格按照配置文件來配置服務器. 配置完成之後,Puppet客戶端能夠反饋給服務器端一個消息. 若是出錯,也會給服務器端反饋一個消息...app
2、環境介紹ide
系統版本:Centos-6.4-x86_64
Puppet版本:puppet-2.7.23 下載地址
主機規劃 ------------------------------------------------------------------------ ######Master主機 [root@master ~]# hostname master.allen.com [root@master ~]# cat /etc/hosts 172.16.14.1 master.allen.com 172.16.14.2 client.allen.com [root@master ~]# ifconfig eth0 | awk '/inet addr:/{print $1,$2}' inet addr:172.16.14.1 ------------------------------------------------------------------------ ######Client主機 [root@client ~]# hostname client.allen.com [root@client ~]# cat /etc/hosts 172.16.14.1 master.allen.com 172.16.14.2 client.allen.com [root@client ~]# ifconfig eth0 | awk '/inet addr:/{print $1,$2}' inet addr:172.16.14.2
3、安裝Puppet
安裝前請確認SELinux與Iptables已經處於關閉狀態
一、配置好YUM源;並作時間同步
# wget http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm # rpm -ivh epel-release-6-8.noarch.rpm
二、安裝Puppet軟件
註釋:如下軟件壓縮成一個軟件包,下載解壓出來便可得到全部軟件 ------------------------------------------------------------------------ ######在Master主機上安裝 [root@master ~]# yum -y --nogpgcheck localinstall puppet-server-2.7.23-1.el6.noarch.rpm facter-1.7.3-1.el6.x86_64.rpm puppet-2.7.23-1.el6.noarch.rpm ------------------------------------------------------------------------ ######在Client主機上安裝 [root@client ~]# yum -y --nogpgcheck localinstall facter-1.7.3-1.el6.x86_64.rpm puppet-2.7.23-1.el6.noarch.rpm
三、修改Master主機上的主配置文件
[root@master ~]# puppet master --genconfig > /etc/puppet/puppet.conf #從新生成配置文件 [root@master ~]# vim /etc/puppet/puppet.conf #修改以下兩項配置 rundir = /var/run/puppet pidfile = $rundir/master.pid
四、啓動Puppet服務端進程
註釋:按"Ctrl+C"組合鍵結束上面啓動的進程,以守護進程方式啓動並設置爲開機自啓動 [root@master ~]# service puppetmaster start [root@master ~]# chkconfig puppetmaster on
五、修改Client主機上的主配置文件
註釋:在[main]段添加以下配置 server = master.allen.com #指定puppet服務器主機名,要能正常解析
六、啓動Puppet客戶端服務
七、在第6個步驟中客戶端建立過證書申請後,此時能夠在Puppet服務器端查看並簽署證書
若是服務器至關多的話,這樣簽署證書效率至關的低,並且還會簽證書籤到手抽筋;有什麼方法可讓服務器自動簽署證書呢?答案是固然有了...
註釋:在服務器端Puppet配置文件目錄下添加以下文件並寫入以下信息;表示服務器將會自會簽署來自"allen.com"這個域中主機的全部證書申請 # echo "*.allen.com" > /etc/puppet/autosign.conf
八、此時,客戶端會顯示證書成功簽署併成功啓動服務
九、再次測試Puppet客戶端鏈接服務器;而後啓動Puppet客戶端服務
十、測試客戶端是否能成功從服務端獲取到文件
Master主機:
[root@master ~]# vim /etc/puppet/manifests/site.pp file {"/tmp/puppet.txt": content => "puppet test\n", }
Client主機:
[root@client ~]# puppet agent --server=master.allen.com --no-daemonize --verbose --test [root@client ~]# service puppet restart 註釋:執行以上兩條命令任務一條便可;這裏使用第一條便於查看是否同步成功
到此Puppet的基本安裝與測試已完成
4、配置Puppet-dashboard
一、安裝數據庫;這裏爲了方便就安裝在Master主機上了
[root@master ~]# yum -y install mysql-server [root@master ~]# service mysqld start [root@master ~]# mysql mysql> create database dashboard character set utf8; mysql> grant all privileges on dashboard.* to 'dashboard'@'172.16.%.%' identified by 'password'; mysql> flush privileges; ------------------------------------------------------------------------ 註釋:執行受權用戶命令上面或下面其中一條便可 mysql> grant all privileges on dashboard.* to 'dashboard'@'master.allen.com' identified by 'password';
二、安裝其它的工具
[root@master ~]# gem install rake
三、在Master主機上安裝puppet-dashboard
[root@master ~]# yum -y --nogpgcheck localinstall puppet-dashboard-1.2.23-1.el6.noarch.rpm
四、導入Dashboard所依賴的數據庫
[root@master ~]# cd /usr/share/puppet-dashboard #切換到dashboard安裝目錄 [root@master ~]# rake RAILS_ENV=production db:migrate #導入數據庫 rake aborted! No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb) (See full trace by running task with --trace) [root@master puppet-dashboard]# rake gems:refresh_specs #若是出現如上錯誤;執行此命令而後從新導入數據庫便可 [root@master puppet-dashboard]# rake RAILS_ENV=production db:migrate ------------------------------------------------------------------------
五、修改"database.yml"文件中的"production"段以下:
[root@master ~]# vim /usr/share/puppet-dashboard/config/database.yml production: host : 172.16.14.1 database: dashboard username: dashboard password: password encoding: utf8 adapter: mysql
六、測試"Dashboard"服務是否工做正常
######測試dashboard服務是否能正常啓動;出現以下信息說明已經成功,而後按"Crtl+C"組合鍵結束進程 [root@master ~]# /usr/share/puppet-dashboard/script/server -e production => Booting WEBrick => Rails 2.3.17 application starting on http://0.0.0.0:3000
七、修改Master主機的"puppet.conf"文件以下:
[root@master ~]# vim /etc/puppet/puppet.conf [master] #在"master"段修改或添加以下內容 reports = store, http reporturl = http://172.16.14.1:3000/reports/upload
八、修改Client主機的"puppet.conf"文件以下:
[root@client ~]# vim /etc/puppet/puppet.conf [agent] #在"agent"段添加以下內容 report = true
九、啓動服務器端"puppet-dashboard"服務並重啓"puppetmaster"服務;而後重啓客戶端"puppet"服務使配置生效
######在服務端執行 [root@master ~]# /usr/share/puppet-dashboard/script/server -e production -d [root@master ~]# ss -tanlp | grep 3000 LISTEN 0 5 *:3000 *:* users:(("ruby",30611,5)) [root@master ~]# service puppetmaster restart ------------------------------------------------------------------------ ######在客戶端執行 [root@client ~]# service puppet restart
十、訪問dashboard服務,驗證是否正常
5、配置Puppet Kick
簡介:
Puppet客戶端默認每30分鐘跟服務器通信一次,可是有時,咱們但願服務端能給客戶端緊急推送一些任務,因而就有了Puppet kick(Puppet 2.6之前叫 puppetrun)
一、編輯客戶端主配置文件
[root@client ~]# vim /etc/puppet/puppet.conf listen = true 註釋:在"[agent]"段添加如上內容
二、編輯或新建文件"/etc/puppet/namespaceauth.conf"
[root@client ~]# vim /etc/puppet/namespaceauth.conf [puppetrunner] allow *.allen.com 註釋:添加如上內容
三、編輯文件"/etc/puppet/auth.conf"
[root@client ~]# vim /etc/puppet/auth.conf path /run method save auth any allow master.allen.com # this one is not stricly necessary, but it has the merit # to show the default policy which is deny everything else 註釋:如上在這段註釋上面添加如上內容 [root@client ~]# service puppet restart #重啓服務使配置生效
四、在服務端修改前面建立的"site.pp"文件
[root@master ~]# vim /etc/puppet/manifests/site.pp file {"/tmp/allen.txt": content => "ALLEN TEST\n", }
五、在服務端執行推送命令測試是否能成功推送
# puppet kick -p 10 --host client.allen.com # puppetrun -p 10 --host client.allen.com 註釋:在服務端執行如上兩條命令任意一個便可;這裏使用第一條命令
六、在客戶端驗證
到此;Puppet的安裝部署已所有完成,後續會更新Puppet的其餘相關內容;如:file,service,exec等管理模塊;敬請關注...