日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

puppet应用原理及安装部署

發布時間:2023/12/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 puppet应用原理及安装部署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、簡介及系統架構

二、環境介紹

三、安裝Puppet

四、配置Puppet-dashboard

五、配置Puppet Kick


puppet簡介

puppet官方網站:http://www.puppetlabs.com/

puppet中文wiki:http://puppet.chinaec2.com/

puppet中文論壇:http://www.puppetfans.com/

http://lansgg.blog.51cto.com?

參考:http://www.itmin.cn/archives/category/yunweijichu/zidonghua?

http://my.oschina.net/fufangchun/blog?catalog=478855?


Puppet是一個基于Ruby語言所研發的一款開源軟件,Puppet是一種Linux、Unix、windows平臺的集中配置管理系統,使用自有的Puppet描述語言,可管理配置文件、用戶、cron任務、軟件包、系統服務等。Puppet把這些系統實體稱之為資源,Puppet的設計目標是簡化對這些資源管理以及妥善處理資源間的依賴關系.puppetmaster可以看作一個web服務器,實際上也是由ruby提供 的web服務器模塊來做的。因此可以利用web代理軟件來配合puppetmaster做集群設置.

puppet 系統架構

Puppet采用C/S星狀的結構,所有的客戶端和一個或幾個服務器交互。Puppet通常可以用來管理一臺主機的整個生命周期:從初始化到安裝、升級、維護以及后續將服務遷移并下架。每個客戶端周期的(默認半個小時)向服務器發送請求,獲得其最新的配置信息,保證和該配置信息同步。每個Puppet客戶端每半小時(可以設置)連接一次服務器端, 下載最新的配置文件,并且嚴格按照配置文件來配置服務器. 配置完成以后,Puppet客戶端可以反饋給服務器端一個消息. 如果出錯,也會給服務器端反饋一個消息.

下圖展示了一個典型的puppet配置的數據流動情況:

1)客戶端通過facter收集客戶端信息并發送至服務端

2)連接服務端并請求catalog日志

3)請求節點(node)的信息

4)從服務器端接收節點(node)的實例

5)編譯代碼(包括語法檢查等工作)

6)查詢是否有exported 虛擬資源

7)如有,則從數據庫接收虛擬資源

8)接收完整的catalog日志

9)存儲catalog日志到數據庫

10)客戶端接收完整的catalog日志

實驗效果圖:


二、環境介紹

系統版本:Centos-6.4-x86_64

Puppet版本:puppet-2.7.23 下載地址

12345678910111213141516171819主機規劃------------------------------------------------------------------------######Master主機[root@master ~]# hostnamemaster.allen.com[root@master ~]# cat /etc/hosts172.16.14.1 master.allen.com172.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 ~]# hostnameclient.allen.com[root@client ~]# cat /etc/hosts172.16.14.1 master.allen.com172.16.14.2 client.allen.com[root@client ~]# ifconfig eth0 | awk '/inet addr:/{print $1,$2}'inet addr:172.16.14.2

三、安裝Puppet

安裝前請確認SELinux與Iptables已經處于關閉狀態

1、配置好YUM源;并做時間同步

12# wget http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm# rpm -ivh epel-release-6-8.noarch.rpm

2、安裝Puppet軟件

由于puppet是由ruby語言編寫,所以要安裝ruby環境及庫文件,命令幫助文件

[root@puppet soft]# yum install ruby ruby-libs ruby-rdoc

facter是一個系統盤點工具,收集主機的一些資料,比如CPU,主機IP等,它收集到值發送給puppet服務器端,服務器端就可以根據不同的條件來對不同的節點機器生成不同的puppet配置文件

安裝puppet之前必須先安裝facter,這里采用yum安裝。

注釋:以下軟件壓縮成一個軟件包,下載解壓出來即可獲得所有軟件------------------------------------------------------------------------######在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

3、修改Master主機上的主配置文件

1234[root@master ~]# puppet master --genconfig > /etc/puppet/puppet.conf ?#重新生成配置文件[root@master ~]# vim /etc/puppet/puppet.conf ? ?#修改如下兩項配置rundir = /var/run/puppetpidfile = $rundir/master.pid

4、啟動Puppet服務端進程

注釋:按"Ctrl+C"組合鍵結束上面啟動的進程,以守護進程方式啟動并設置為開機自啟動[root@master ~]# service puppetmaster start[root@master ~]# chkconfig puppetmaster on

5、修改Client主機上的主配置文件

12注釋:在[main]段添加如下配置server = master.allen.com ? ?#指定puppet服務器主機名,要能正常解析

6、啟動Puppet客戶端服務


7、在第6個步驟中客戶端創建過證書申請后,此時可以在Puppet服務器端查看并簽署證書。

如果服務器相當多的話,這樣簽署證書效率相當的低,而且還會簽證書簽到手抽筋;有什么方法可以讓服務器自動簽署證書呢?答案是當然有了...

12注釋:在服務器端Puppet配置文件目錄下添加如下文件并寫入如下信息;表示服務器將會自會簽署來自"allen.com"這個域中主機的所有證書申請# echo "*.allen.com" > /etc/puppet/autosign.conf

8、此時,客戶端會顯示證書成功簽署并成功啟動服務


9、再次測試Puppet客戶端連接服務器;然后啟動Puppet客戶端服務。

10、測試客戶端是否能成功從服務端獲取到文件

Master主機:

1234[root@master ~]# vim /etc/puppet/manifests/site.ppfile{"/tmp/puppet.txt":content => "puppet test\n",}

Client主機:

123[root@client ~]# puppet agent --server=master.allen.com --no-daemonize --verbose --test[root@client ~]# service puppet restart注釋:執行以上兩條命令任務一條即可;這里使用第一條便于查看是否同步成功

到此Puppet的基本安裝與測試已完成。

四、配置Puppet-dashboard

1、安裝數據庫;這里為了方便就安裝在Master主機上了

123456789

[root@master ~]# yum -y install mysql-server mysql mysql-devel

優化mysql設置
編輯 /etc/my.cnf, 在[mysqld]字段,增加最后一行

cat/etc/my.cnf[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0max_allowed_packet = 32M[mysqld_safe]log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid


啟動mysql服務

[root@master ~]# service mysqld start[root@master ~]# mysqlmysql> create database dashboard character setutf8;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';

2、安裝其它的工具

1[root@master ~]# gem install rake

3、在Master主機上安裝puppet-dashboard

1[root@master ~]# yum -y --nogpgcheck localinstall puppet-dashboard-1.2.23-1.el6.noarch.rpm

4、導入Dashboard所依賴的數據庫

12345678[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------------------------------------------------------------------------

5、修改"database.yml"文件中的"production"段如下:

12345678[root@master ~]# vim /usr/share/puppet-dashboard/config/database.ymlproduction:host : 172.16.14.1database: dashboardusername: dashboardpassword: passwordencoding: utf8adapter: mysql

5.5 修改時區

vi/usr/share/puppet-dashboard/config/environment.rb#config.time_zone = 'UTC'config.time_zone = 'shanghai'

6、測試"Dashboard"服務是否工作正常

1234######測試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

7、修改Master主機的"puppet.conf"文件如下:

1234[root@master ~]# vim /etc/puppet/puppet.conf[master] ? ?#在"master"段修改或添加如下內容reports = store, httpreporturl = http://172.16.14.1:3000/reports/upload

8、修改Client主機的"puppet.conf"文件如下:

123[root@client ~]# vim /etc/puppet/puppet.conf[agent] ? ?#在"agent"段添加如下內容report = true

9、啟動服務器端"puppet-dashboard"服務并重啟"puppetmaster"服務;然后重啟客戶端"puppet"服務使配置生效

12345678######在服務端執行[root@master ~]# /usr/share/puppet-dashboard/script/server -e production -d[root@master ~]# ss -tanlp | grep 3000LISTEN ? ? 0 ? ? ?5 ? ? ? *:3000 ? ? ? *:* ? ? ?users:(("ruby",30611,5))[root@master ~]# service puppetmaster restart------------------------------------------------------------------------######在客戶端執行[root@client ~]# service puppet restart

10、訪問dashboard服務,驗證是否正常

11.導入報告

?

12cd/usr/share/puppet-dashboardrake RAILS_ENV=production reports:import

執行導入的reports

?

12cd/usr/share/puppet-dashboardrake jobs:work RAILS_ENV="production"

五、配置Puppet Kick

簡介:

Puppet客戶端默認每30分鐘跟服務器通訊一次,但是有時,我們希望服務端能給客戶端緊急推送一些任務,于是就有了Puppet kick(Puppet 2.6以前叫 puppetrun)

1、編輯客戶端主配置文件

123[root@client ~]# vim /etc/puppet/puppet.conflisten = true注釋:在"[agent]"段添加如上內容

2、編輯或新建文件"/etc/puppet/namespaceauth.conf"

1234[root@client ~]# vim /etc/puppet/namespaceauth.conf[puppetrunner]allow *.allen.com注釋:添加如上內容

3、編輯文件"/etc/puppet/auth.conf"

123456789[root@client ~]# vim /etc/puppet/auth.confpath /runmethod saveauth anyallow 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 ? ?#重啟服務使配置生效

4、在服務端修改前面創建的"site.pp"文件

1234[root@master ~]# vim /etc/puppet/manifests/site.ppfile{"/tmp/allen.txt":content => "ALLEN TEST\n",}

5、在服務端執行推送命令測試是否能成功推送

123# puppet kick -p 10 --host client.allen.com# puppetrun -p 10 --host client.allen.com

注釋:在服務端執行如上兩條命令任意一個即可;這里使用第一條命令。



6、在客戶端驗證

到此;Puppet的安裝部署已全部完成,后期會學習Puppet的其他相關內容;如:file,service,exec等管理模塊。


可以參考:http://www.cnblogs.com/songmingming/p/3506918.html

轉載于:https://blog.51cto.com/hao360/1338138

總結

以上是生活随笔為你收集整理的puppet应用原理及安装部署的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。