真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

puppet部署與應(yīng)用-創(chuàng)新互聯(lián)

       Puppet部署于應(yīng)用

創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)溧陽,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

1、工作流程

1)客戶端puppet調(diào)用facter(facter是通過ssl加密收集及檢測(cè)分析客戶端配置信息的一個(gè)工具),facter探測(cè)出主機(jī)的一些變量,如主機(jī)名,內(nèi)存大小,ip地址等。Puppet把這些信息通過ssl連接發(fā)送到服務(wù)器器端

2)服務(wù)器端的puppetmaster通過facter工具分析檢測(cè)客戶端的主機(jī)名,然后找到項(xiàng)目主配置文件mainfest里面對(duì)應(yīng)的node配置,并對(duì)該部分內(nèi)容進(jìn)行解析。Facter發(fā)送過來的信息可以作為變量處理,node牽扯到的代碼才解析,其他沒牽涉的代碼不解析,解析分為幾個(gè)階段,首先進(jìn)行語法檢查,如果語法沒錯(cuò),就繼續(xù)解析,解析的結(jié)果生成一個(gè)中間的“偽代碼”,然后把偽代碼發(fā)送給客戶端。

3)客戶端接收到偽代碼,并執(zhí)行,客戶端把執(zhí)行的結(jié)果發(fā)送給服務(wù)器。

4)服務(wù)器把客戶端的執(zhí)行結(jié)果寫入日志。

 Puppet工作過程有以下兩點(diǎn)值得注意:

1)為了保證安全,client和master之間是基于ssl和證書的,只有經(jīng)master證書認(rèn)證的client可以與master通信。

2)Puppet會(huì)讓系統(tǒng)保持在人們所期望的某種狀態(tài)并一直維持下去,例如:檢測(cè)某個(gè)文件并保證其一直存在,保證ssh服務(wù)始終開啟,如果文件被刪除了或者ssh服務(wù)被關(guān)閉了,puppet下次執(zhí)行時(shí)(默認(rèn)30分鐘),會(huì)重新創(chuàng)建該文件或者啟動(dòng)ssh服務(wù)。

puppet部署與應(yīng)用

實(shí)驗(yàn)環(huán)境:

puppet部署與應(yīng)用

實(shí)驗(yàn)?zāi)繕?biāo):

1.通過puppetmaster管理clinet端的ssh服務(wù)

2.客戶端可以主動(dòng)拉取

3.master可以主動(dòng)推送

一、搭建ntp server(已經(jīng)安裝)

server 127.127.1.0

fudge 127.127.1.0 stratum 8

puppet部署與應(yīng)用

[root@centos4 ~]# service ntpd start

[root@centos4 ~]# chkconfig ntpd on

puppet部署與應(yīng)用

二、搭建puppetmaster

1.規(guī)劃服務(wù)器主機(jī)名

[root@centos1 ~]# vim  /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=master.test.com

puppet部署與應(yīng)用

[root@centos1 ~]# hostname master.test.com

[root@centos1 ~]# bash

puppet部署與應(yīng)用

2.添加主機(jī)名解析;在互聯(lián)網(wǎng)中可以搭建DNS服務(wù)

[root@centos1 ~]# vim /etc/hosts

192.168.1.1 master.test.com

192.168.1.2 client1.test.com

192.168.1.3 client2.test.com

puppet部署與應(yīng)用

2.服務(wù)器時(shí)間同步

[root@master ~]#yum  -y  install  ntp( 默認(rèn)已經(jīng)安裝)

[root@master ~]# ntpdate 192.168.1.4

puppet部署與應(yīng)用

3.安裝ruby,先安裝compat-readline5(系統(tǒng)盤中),也可以一并安裝

由于puppet是采用ruby語言開發(fā),所以無論是源碼還是RPM方式安裝puppet,我們都必須要先安裝ruby語言環(huán)境

[root@master ~]# rpm  -ivh  /mnt/Packages/compat-readline5-5.2-17.1.el6.x86_64.rpm

puppet部署與應(yīng)用

[root@master ~]# rpm -ivh  /mnt/ruby-*.rpm

puppet部署與應(yīng)用

4.檢查ruby版本

[root@master ~]# ruby  -v

ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]

puppet部署與應(yīng)用

5.安裝facter安裝

[root@master ~]# useradd  -s /sbin/nologin  puppet

puppet部署與應(yīng)用

安裝facter源碼包

[root@master ~]# tar  zxf  /mnt/facter-1.7.1.tar.gz -C  /usr/src

[root@master ~]# cd  /usr/src/facter-1.7.1/

[root@master facter-1.7.1]# ruby  install.rb

puppet部署與應(yīng)用

6.安裝puppet源碼包

①安裝

[root@master puppet-2.7.21]# tar zxf /mnt/puppet-2.7.21.tar.gz -C /usr/src

[root@master puppet-2.7.21]# cd  /usr/src/puppet-2.7.21/

[root@master puppet-2.7.21]# ruby install.rb

puppet部署與應(yīng)用

②復(fù)制配置文件

[root@master puppet-2.7.21]# cp  conf/redhat/fileserver.conf   /etc/puppet/

[root@master puppet-2.7.21]# cp conf/redhat/puppet.conf  /etc/puppet/

[root@master puppet-2.7.21]# cp  conf/redhat/server.init  /etc/init.d/puppetmaster

puppet部署與應(yīng)用

③修改文件屬性

[root@master puppet-2.7.21]# chmod +x  /etc/init.d/puppetmaster

puppet部署與應(yīng)用

④創(chuàng)建puppet主目錄

[root@master puppet-2.7.21]# mkdir /etc/puppet/manifests  //存放配置文件

[root@master puppet-2.7.21]# mkdir /etc/puppet/modules   //存放模塊配置

puppet部署與應(yīng)用

7.puppet服務(wù)證書請(qǐng)求與簽名

master端配置

①關(guān)閉防火墻

#service  iptables  stop     //之前已經(jīng)關(guān)閉

②修改配置文件。在【main】標(biāo)題下添加以下一行:配置服務(wù)器模塊路徑

[root@master ~]# vim  /etc/puppet/puppet.conf

modulepath = /etc/puppet/modules:/usr/share/puppet/modules

puppet部署與應(yīng)用

③啟動(dòng)puppet主程序

[root@master ~]# /etc/init.d/puppetmaster  start

Starting puppetmaster:                                     [  OK  ]

puppet部署與應(yīng)用

④查看puppet監(jiān)聽端口

[root@master ~]# netstat -anpt|grep 8140

tcp        0      0 0.0.0.0:8140                0.0.0.0:*                   LISTEN      2123/ruby

puppet部署與應(yīng)用

二、搭建puppetclient1

1.規(guī)劃服務(wù)器主機(jī)名

[root@centos1 ~]# vim  /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=client1.test.com

puppet部署與應(yīng)用

[root@centos1 ~]# hostnameclient1.test.com

[root@centos1 ~]# bash

puppet部署與應(yīng)用

2.添加主機(jī)名解析

[root@centos1 ~]# vim /etc/hosts

192.168.1.1 master.test.com

192.168.1.2 client1.test.com

192.168.1.3 client2.test.com

puppet部署與應(yīng)用

3.確保通過域名ping通puppetmaster

[root@client1 ~]# ping master.test.com

PING master.test.com (192.168.1.1) 56(84) bytes of data.

64 bytes from master.test.com (192.168.1.1): icmp_seq=1 ttl=64 time=7.29 ms

puppet部署與應(yīng)用

3.服務(wù)器時(shí)間同步

[root@client1 ~]# ntpdate 192.168.1.4

 7 May 16:24:22 ntpdate[2532]: adjust time server 192.168.1.4 offset -0.144460 sec

puppet部署與應(yīng)用

4. 安裝ruby,先安裝compat-readline5(系統(tǒng)盤中),也可以一并安裝

[root@master ~]# rpm  -ivh  /mnt/Packages/compat-readline5-5.2-17.1.el6.x86_64.rpm

[root@master ~]# rpm -ivh /mnt/ruby-*.rpm

puppet部署與應(yīng)用

5檢查ruby版本

[root@master ~]# ruby  -v

ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]

puppet部署與應(yīng)用

6.安裝facter

[root@client1 facter-1.7.1]# useradd -s  /sbin/nologin  puppet

[root@client1 ~]# tar zxf /mnt/facter-1.7.1.tar.gz -C /usr/src

[root@client1 ~]# cd /usr/src/facter-1.7.1/

[root@client1 facter-1.7.1]# ruby install.rb

puppet部署與應(yīng)用

7.安裝puppet

[root@client1 facter-1.7.1]# tar  zxf /mnt/puppet-2.7.21.tar.gz -C  /usr/src

[root@client1 facter-1.7.1]# cd /usr/src//puppet-2.7.21/

[root@client1 puppet-2.7.21]# ruby install.rb

puppet部署與應(yīng)用

8.復(fù)制配置文件

[root@client1 puppet-2.7.21]# cp conf/redhat/puppet.conf  /etc/puppet

[root@client1 puppet-2.7.21]# cp conf/redhat/client.init /etc/init.d/puppetclient

puppet部署與應(yīng)用

9.修改文件屬性

[root@client1 puppet-2.7.21]# chmod  +x  /etc/init.d/puppetclient

puppet部署與應(yīng)用

10.puppet服務(wù)證書與簽名

①關(guān)閉防火墻

[root@client1 puppet-2.7.21]# service iptables stop   //之前已經(jīng)關(guān)閉

②修改client配置文件(兩臺(tái)client配置完全一樣)

#vim  /etc/puppet/puppet.conf

[main]

    # The Puppet log directory.

    # The default value is '$vardir/log'.

    logdir = /var/log/puppet

    # Where Puppet PID files are kept.

    # The default value is '$vardir/run'.

    rundir = /var/run/puppet

server = master.test.com

puppet部署與應(yīng)用

三、搭建puppetclient2

1.規(guī)劃服務(wù)器主機(jī)名

[root@centos1 ~]# vim  /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=client2.test.com

puppet部署與應(yīng)用

[root@centos1 ~]# hostnameclient2.test.com

[root@centos1 ~]# bash

puppet部署與應(yīng)用

2.添加主機(jī)名解析

[root@centos1 ~]# vim /etc/hosts

192.168.1.1 master.test.com

192.168.1.2 client1.test.com

192.168.1.3 client2.test.com

puppet部署與應(yīng)用

3.確保通過域名ping通puppetmaster

[root@client1 ~]# ping master.test.com

PING master.test.com (192.168.1.1) 56(84) bytes of data.

64 bytes from master.test.com (192.168.1.1): icmp_seq=1 ttl=64 time=7.29 ms

puppet部署與應(yīng)用

3.服務(wù)器時(shí)間同步

[root@client1 ~]# ntpdate 192.168.1.4

 7 May 16:24:22 ntpdate[2532]: adjust time server 192.168.1.4 offset -0.144460 sec

puppet部署與應(yīng)用

4. 安裝ruby,先安裝compat-readline5(系統(tǒng)盤中),也可以一并安裝

[root@master ~]# rpm  -ivh  /mnt/Packages/compat-readline5-5.2-17.1.el6.x86_64.rpm

[root@master ~]# rpm -ivh /mnt/ruby-*.rpm

puppet部署與應(yīng)用

5檢查ruby版本

[root@master ~]# ruby  -v

ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]

puppet部署與應(yīng)用

6.安裝facter

[root@client1 facter-1.7.1]# useradd -s /sbin/nologin  puppet

[root@client1 ~]# tar zxf /mnt/facter-1.7.1.tar.gz -C /usr/src

[root@client1 ~]# cd /usr/src/facter-1.7.1/

[root@client1 facter-1.7.1]# ruby install.rb

puppet部署與應(yīng)用

7.安裝puppet

[root@client1 facter-1.7.1]# tar zxf /mnt/puppet-2.7.21.tar.gz -C /usr/src

[root@client1 facter-1.7.1]# cd /usr/src//puppet-2.7.21/

chmod 0644 /usr/share/man/man8/puppet-node.8

[root@client1 puppet-2.7.21]# ruby install.rb

puppet部署與應(yīng)用

8.復(fù)制配置文件

[root@client1 puppet-2.7.21]# cp conf/redhat/puppet.conf  /etc/puppet

[root@client1 puppet-2.7.21]# cp conf/redhat/client.init /etc/init.d/puppetclient

puppet部署與應(yīng)用

9.修改文件屬性

[root@client1 puppet-2.7.21]# chmod  +x  /etc/init.d/puppetclient

puppet部署與應(yīng)用

10.puppet服務(wù)證書與簽名

①關(guān)閉防火墻

[root@client1 puppet-2.7.21]# service iptables stop  //已經(jīng)關(guān)閉

②修改client配置文件(兩臺(tái)client配置完全一樣)

#vim  /etc/puppet/puppet.conf

[main]

    # The Puppet log directory.

    # The default value is '$vardir/log'.

    logdir = /var/log/puppet

    # Where Puppet PID files are kept.

    # The default value is '$vardir/run'.

    rundir = /var/run/puppet

server = master.test.com

puppet部署與應(yīng)用

四、注冊(cè)與申請(qǐng)

1.分別在客戶端client1和client2上注冊(cè)

[root@client1 puppet-2.7.21]# puppet agent --server=master.test.com  --no-daemonize --verbose

puppet部署與應(yīng)用

[root@client2 puppet-2.7.21]# puppet agent --server=master.test.com  --no-daemonize --verbose

puppet部署與應(yīng)用

這個(gè)指令的作用是將puppet agent不用守護(hù)進(jìn)程的模式啟動(dòng),好處是能看到與服務(wù)器端的通信及證書簽名的過程,方便debug。 默認(rèn)puppet每2分鐘向服務(wù)器端申請(qǐng)一次簽名直到獲得服務(wù)器端發(fā)來的經(jīng)過簽名的證書才 start agent 服務(wù)

2.在master上查看申請(qǐng)注冊(cè)的客戶端

[root@master ~]# puppet cert  --list  //查看申請(qǐng)注冊(cè)的客戶端

  "client1.test.com" (99:6A:C3:89:C8:1C:B5:75:24:BA:56:51:43:1E:EB:71)

  "client2.test.com" (B8:51:93:3D:5A:77:49:01:B6:1A:B8:EB:57:16:46:8B)

puppet部署與應(yīng)用

3.在master上將未注冊(cè)的客戶端進(jìn)行注冊(cè)

[root@master ~]# puppet cert  sign  --all

puppet部署與應(yīng)用

4.可以通過目錄去查看已經(jīng)注冊(cè)的客戶端

[root@master ~]# ll /var/lib/puppet/ssl/ca/signed/

total 12

-rw-r----- 1 puppet puppet 1915 May  7 17:59 client1.test.com.pem

-rw-r----- 1 puppet puppet 1915 May  7 17:59 client2.test.com.pem

-rw-r----- 1 puppet puppet 1988 May  7 16:17 master.test.com.pem

puppet部署與應(yīng)用

此時(shí)客戶端已經(jīng)完整了證書的申請(qǐng)和簽名

五、配置實(shí)例

1.配置一個(gè)測(cè)試節(jié)點(diǎn)

n 節(jié)點(diǎn)信息:/etc/puppet/manifests/nodes

n 模塊信息:/etc/puppet/modules

為了保護(hù)linux的ssh端×××破,批量修改客戶端sshd端口,將端口22改為9922,并實(shí)現(xiàn)重啟工作

創(chuàng)建ssh模塊,模塊目錄為ssh,模塊下面有三個(gè)文件:manifests、templates和files

n manifests:此目錄為存放配置文件的目錄,里面必須包含一個(gè)init.pp的文件,這是該模塊的入口文件

l 導(dǎo)入一個(gè)模塊的時(shí)候,會(huì)從init.pp開始執(zhí)行??梢园阉械拇a都寫道init.pp里面,也可以分成多個(gè)pp文件,init再去包含其他文件

l 定義class類名的時(shí)候必須是ssh,這樣能實(shí)現(xiàn)調(diào)用

n files目錄是該模塊的文件發(fā)布目錄,puppet提供一個(gè)文件分發(fā)機(jī)制/etc/ssh/sshd_conf

n templates目錄包含erb模版文件

master端:

①創(chuàng)建需要的必要目錄

#mkdir  -p  /etc/puppet/modules/ssh/{manifests,templates,files}

#mkdir  /etc/puppet/manifests/nodes   //節(jié)點(diǎn)目錄作用與client

#mkdir /etc/puppet/modules/ssh/files/ssh   //控制ssh服務(wù)

#chown  -R  puppet  /etc/puppet/modules/  //修改權(quán)限

puppet部署與應(yīng)用

此時(shí)/et/puppet/modules/ssh目錄下結(jié)構(gòu)

[root@master ~]# ll /etc/puppet/modules/ssh

puppet部署與應(yīng)用

②創(chuàng)建模塊配置文件install.pp

[root@master ~]# vim /etc/puppet/modules/ssh/manifests/install.pp

class ssh::install{

package{ "openssh":

        ensure => present

        }

}

puppet部署與應(yīng)用

③創(chuàng)建模塊配置文件config.pp

[root@master ~]# vim /etc/puppet/modules/ssh/manifests/config.pp

class ssh::config{

file { "/etc/ssh/sshd_config":

        ensure => present,

        owner =>"root",

        group =>"root",

        mode => "0600",

        source =>"puppet://$puppetserver/modules/ssh/ssh/sshd_config",

        require => Class["ssh::install"],

        notify => Class["ssh::service"],

 }

}

puppet部署與應(yīng)用

④創(chuàng)建service.pp

[root@master ~]# vim /etc/puppet/modules/ssh/manifests/service.pp

class ssh::service {

        service {"sshd":

                ensure => running,

                hasstatus =>true,

                hasrestart =>true,

                enable =>true,

                require =>Class["ssh::config"]

}

}

puppet部署與應(yīng)用

⑤創(chuàng)建模塊主配置文件,將以上配置文件加載進(jìn)去,輸入以下信息:

[root@master ~]# vim /etc/puppet/modules/ssh/manifests/init.pp

class ssh{

        include ssh::install,ssh::config,ssh::service

}

puppet部署與應(yīng)用

此時(shí)/etc/puppet/modules/ssh/manifests下有四個(gè)文件

[root@master ~]# ll /etc/puppet/modules/ssh/manifests/

puppet部署與應(yīng)用

⑥建立服務(wù)器ssh統(tǒng)一維護(hù)文件

由于服務(wù)器和客戶端的sshd_config文件默認(rèn)一樣,此時(shí)將服務(wù)器端/etc/ssh/sshd_config復(fù)制到模塊默認(rèn)路徑

[root@master ~]# cp /etc/ssh/sshd_config  /etc/puppet/modules/ssh/files/ssh/

puppet部署與應(yīng)用

[root@master ~]#

⑦創(chuàng)建測(cè)試節(jié)點(diǎn)配置文件,并將ssh加載進(jìn)去

[root@master ~]# vim /etc/puppet/manifests/nodes/ssh.pp

puppet部署與應(yīng)用

⑧將測(cè)試節(jié)點(diǎn)載入puppet,即修改site.pp

[root@master ~]# vim /etc/puppet/manifests/site.pp

puppet部署與應(yīng)用

⑨修改服務(wù)器端維護(hù)的sshd_config配置文件

[root@master ~]# vim /etc/puppet/modules/ssh/files/ssh/sshd_config

Port 9922

puppet部署與應(yīng)用

⑩重新啟動(dòng)puppet

[root@master ~]# /etc/init.d/puppetmaster restart

Stopping puppetmaster:                                     [  OK  ]

Starting puppetmaster:                                     [  OK  ]

puppet部署與應(yīng)用

2.客戶端主動(dòng)拉取  注:這里使用clinet1測(cè)試;client2同理

[root@client1 puppet]# puppet agent  -t

puppet部署與應(yīng)用

 ①檢查客戶端/etc/ssh/sshd_config配置是不是自動(dòng)變了

[root@client1 puppet]# vim /etc/ssh/sshd_config

Port 9922

②查看服務(wù)器ssh服務(wù)是否重啟,端口是否生效

[root@client1 puppet]# netstat -tunlp|grep ssh

puppet部署與應(yīng)用

3.服務(wù)器推送同步

客戶端配置

①修改配置文件

[root@client1 puppet]# vim /etc/puppet/puppet.conf

最后一行添加如下

listen = true  //使puppet監(jiān)聽8139端口

puppet部署與應(yīng)用

[root@client1 puppet]# vim /etc/puppet/auth.conf

allow *  //允許任何服務(wù)器推送

puppet部署與應(yīng)用

②啟動(dòng)puppet客戶端

[root@client1 puppet]# /etc/init.d/puppetclient start

Starting puppet:                                           [  OK  ]

puppet部署與應(yīng)用

[root@client1 puppet]# netstat -anpt|grep 8139  //自身puppet端口號(hào)

puppet部署與應(yīng)用

③修改/etc/ssh/sshd_config配置文件

[root@client1 puppet]# vim /etc/ssh/sshd_config

Port 22

puppet部署與應(yīng)用

[root@client1 puppet]#service  sshd  restart

puppet部署與應(yīng)用

服務(wù)器端配置

④從服務(wù)器開始向客戶端推送

[root@master ssh]# puppet kick  client1.test.com

puppet部署與應(yīng)用

⑤校驗(yàn)結(jié)果

[root@client1 puppet]# vim /etc/ssh/sshd_config

Port 9922

puppet部署與應(yīng)用

[root@client1 puppet]# service sshd restart

[root@client1 puppet]# netstat -anpt|grep 9922

puppet部署與應(yīng)用

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)站欄目:puppet部署與應(yīng)用-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://weahome.cn/article/coohgi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部