作用:通過puppet模塊自動控制客戶端的puppet配置,當需要修改客戶端的puppet配置時不用在客戶端一一設置。
成都創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務公司,擁有項目成都網(wǎng)站設計、網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元廣德做網(wǎng)站,已為上家服務,為廣德各地企業(yè)和個人服務,聯(lián)系電話:028-869222201、服務端配置puppet模塊
(1)模塊清單
[root@puppet ~]# tree /etc/puppet/modules/puppet/ /etc/puppet/modules/puppet/ ├── files ├── manifests │ ├── config.pp │ ├── init.pp │ ├── install.pp │ ├── params.pp │ └── service.pp └── templates └── puppet.conf.erb
(2)定義參數(shù)類
[root@puppet ~]# vi /etc/puppet/modules/puppet/manifests/params.pp class puppet::params { $puppetserver = "puppet.ewin.com" case $operatingsystemmajrelease{ 5: { #定義centos5系列的參數(shù) $puppet_release = '3.7.1-1.el5' $facter_release = '2.2.0-1.el5' } 6: { #定義centos6系列的參數(shù) $puppet_release = '3.7.1-1.el6' #定義軟件版本 $facter_release = '2.2.0-1.el6' #定義軟件版本 } default: { fail("Module puppet is not supported on ${::operatingsystem}") } } }
(3)定義安裝類
[root@puppet ~]# vi /etc/puppet/modules/puppet/manifests/install.pp class puppet::install { package { "puppet": ensure => $puppet::params::puppet_release, } package { "facter": ensure => $puppet::params::facter_release, } }
說明:根據(jù)系統(tǒng)版本(centos5或centos6)來安裝指定版本的puppet和facter
(4)定義配置類
[root@puppet ~]# vi /etc/puppet/modules/puppet/manifests/config.pp class puppet::config { file { "/etc/puppet/puppet.conf": ensure => present, content => template("puppet/puppet.conf.erb"), #文件內(nèi)容來源于模板 owner => "root", group => "root", mode => '0644', require => Class["puppet::install"], #要求先完成install.pp notify => Class["puppet::service"], #通知并觸發(fā)service.pp } }
說明:將配置模板傳送到客戶端的puppet.conf,設置用戶、組、權(quán)限
(5)定義配置模板
[root@puppet ~]# vi /etc/puppet/modules/puppet/template/puppet.conf.erb ### config by puppet ### [main] logdir = /var/log/puppet rundir = /var/run/puppet ssldir = $vardir/ssl [agent] classfile = $vardir/classes.txt localconfig = $vardir/localconfig server = <%= scope.lookupvar('puppet::params::puppetserver') %> #參數(shù)調(diào)用格式<%= 參數(shù) %> report = true pluginsync = false runinterval = 10 #puppet 客戶端默認連接到puppetmaster的時間間隔,默認30分鐘,這里測試設為10秒,將會生成大量報告,建議測試完后改回1800
說明:模板調(diào)用了params.pp中的參數(shù)$puppetserver
(6)定義服務類
[root@puppet ~]# vi /etc/puppet/modules/puppet/manifests/service.pp class puppet::service { service { "puppet": ensure => running, #確保服務puppet處于運行狀態(tài) hasstatus => true, #是否支持service puppet status命令查看狀態(tài) hasrestart => true, #是否支持service puppet restart命令重啟服務 enable => true, #是否開機啟動服務 require => Class["puppet::install"], } }
(7)定義puppet主類
[root@puppet ~]# vi /etc/puppet/modules/puppet/manifests/init.pp class puppet { include puppet::params,puppet::install,puppet::config,puppet::service }
(8)定義節(jié)點文件,調(diào)用模塊
[root@puppet ~]# vi /etc/puppet/manifests/centostest.pp
node "centostest.ewin.com" {
include ntp, yum, puppet
}
(9)應用節(jié)點文件
[root@puppet ~]# vi /etc/puppet/manifests/site.pp import "centostest.pp"
2、測試:軟件安裝版本、配置文件、服務啟動
(1)查看已安裝版本
[root@centostest ~]# facter | grep operatingsystemmajrelease operatingsystemmajrelease => 6 [root@centostest ~]# rpm -aq|grep puppet puppet-3.7.3-1.el6.noarch [root@centostest ~]# rpm -aq|grep facter facter-2.3.0-1.el6.x86_64
(2)查看服務狀態(tài)
[root@centostest ~]# /etc/init.d/puppet stop Stopping puppet agent: [確定] [root@centostest ~]# /etc/init.d/puppet status puppet 已停 [root@centostest ~]# chkconfig --list | grep puppet puppet 0:關(guān)閉 1:關(guān)閉 2:關(guān)閉 3:關(guān)閉 4:關(guān)閉 5:關(guān)閉 6:關(guān)閉
(3)查看配置文件
[root@centostest ~]# cat /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 # Where SSL certificates are kept. # The default value is '$confdir/ssl'. ssldir = $vardir/ssl [agent] # The file in which puppetd stores a list of the classes # associated with the retrieved configuratiion. Can be loaded in # the separate ``puppet`` executable using the ``--loadclasses`` # option. # The default value is '$confdir/classes.txt'. classfile = $vardir/classes.txt # Where puppetd caches the local configuration. An # extension indicating the cache format is added automatically. # The default value is '$confdir/localconfig'. localconfig = $vardir/localconfig
(4)客戶端執(zhí)行測試
[root@centostest ~]# puppet agent --server puppet.ewin.com --test --noop Info: Retrieving pluginfacts Info: Retrieving plugin Info: Caching catalog for centostest.ewin.com Info: Applying configuration version '1415246721' Notice: /Stage[main]/Puppet::Install/Package[facter]/ensure: current_value 2.3.0-1.el6, should be 2.2.0-1.el6 (noop) #說明:版本將變成2.2.0-1.el6 Notice: /Stage[main]/Puppet::Install/Package[puppet]/ensure: current_value 3.7.3-1.el6, should be 3.7.1-1.el6 (noop) #說明:版本將變成3.7.1-1.el6 Notice: Class[Puppet::Install]: Would have triggered 'refresh' from 2 events Notice: /Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content: #說明:生成puppet.conf配置文件內(nèi)容 --- /etc/puppet/puppet.conf 2014-11-04 06:23:12.000000000 +0800 +++ /tmp/puppet-file20141106-34117-1abwj46-0 2014-11-06 12:04:04.724000002 +0800 @@ -1,25 +1,12 @@ -[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 - - # Where SSL certificates are kept. - # The default value is '$confdir/ssl'. - ssldir = $vardir/ssl - -[agent] - # The file in which puppetd stores a list of the classes - # associated with the retrieved configuratiion. Can be loaded in - # the separate ``puppet`` executable using the ``--loadclasses`` - # option. - # The default value is '$confdir/classes.txt'. - classfile = $vardir/classes.txt - - # Where puppetd caches the local configuration. An - # extension indicating the cache format is added automatically. - # The default value is '$confdir/localconfig'. - localconfig = $vardir/localconfig +### config by puppet ### +[main] + logdir = /var/log/puppet + rundir = /var/run/puppet + ssldir = $vardir/ssl +[agent] + classfile = $vardir/classes.txt + localconfig = $vardir/localconfig + server = puppet.ewin.com + report = true + pluginsync = false + runinterval = 10 \ No newline at end of file #說明:每行前的-表示刪除行,+表示添加行 Notice: /Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content: current_value {md5}58e2f9765e2994db8e8ab19a3513356e, should be {md5}fa6ae34360e0b6b7755165fc8e950a76 (noop) Info: /Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]: Scheduling refresh of Class[Puppet::Service] #說明:配置文件的改變將觸發(fā)service.pp Notice: Class[Puppet::Service]: Would have triggered 'refresh' from 1 events Info: Class[Puppet::Service]: Scheduling refresh of Service[puppet] Notice: Class[Puppet::Config]: Would have triggered 'refresh' from 1 events Notice: /Stage[main]/Puppet::Service/Service[puppet]/ensure: current_value stopped, should be running (noop) #說明:服務當前是關(guān)閉的,將變成運行 Info: /Stage[main]/Puppet::Service/Service[puppet]: Unscheduling refresh on Service[puppet] Notice: Class[Puppet::Service]: Would have triggered 'refresh' from 1 events Notice: Stage[main]: Would have triggered 'refresh' from 3 events Notice: Finished catalog run in 0.70 seconds
(5)真正執(zhí)行puppet agent(不帶--noop參數(shù))
[root@centostest ~]# puppet agent --server puppet.ewin.com --test Info: Retrieving pluginfacts Info: Retrieving plugin Info: Caching catalog for centostest.ewin.com Info: Applying configuration version '1415247249' Notice: /Stage[main]/Puppet::Install/Package[facter]/ensure: ensure changed '2.3.0-1.el6' to '2.2.0-1.el6' Error: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y downgrade puppet-3.7.1-1.el6' returned 1: Error Downloading Packages: puppet-3.7.1-1.el6.noarch: failure: puppet-3.7.1-1.el6.noarch.rpm from puppetlabs-products: [Errno 256] No more mirrors to try. Wrapped exception: Execution of '/usr/bin/yum -d 0 -e 0 -y downgrade puppet-3.7.1-1.el6' returned 1: Error Downloading Packages: puppet-3.7.1-1.el6.noarch: failure: puppet-3.7.1-1.el6.noarch.rpm from puppetlabs-products: [Errno 256] No more mirrors to try. Error: /Stage[main]/Puppet::Install/Package[puppet]/ensure: change from 3.7.3-1.el6 to 3.7.1-1.el6 failed: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y downgrade puppet-3.7.1-1.el6' returned 1: Error Downloading Packages: puppet-3.7.1-1.el6.noarch: failure: puppet-3.7.1-1.el6.noarch.rpm from puppetlabs-products: [Errno 256] No more mirrors to try. Notice: /Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]: Dependency Package[puppet] has failures: true Warning: /Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]: Skipping because of failed dependencies Notice: /Stage[main]/Puppet::Service/Service[puppet]: Dependency Package[puppet] has failures: true Warning: /Stage[main]/Puppet::Service/Service[puppet]: Skipping because of failed dependencies Notice: Finished catalog run in 171.49 seconds
報錯:YUM安裝失敗,無法下載軟件包,在客戶端yum clean up再yum list恢復倉庫后重試
[root@centostest ~]# puppet agent --server=puppet.ewin.com --test Info: Retrieving pluginfacts Info: Retrieving plugin Info: Caching catalog for centostest.ewin.com Info: Applying configuration version '1415247249' Notice: /Stage[main]/Puppet::Install/Package[puppet]/ensure: ensure changed '3.7.3-1.el6' to '3.7.1-1.el6' Notice: /Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content: --- /etc/puppet/puppet.conf 2014-09-16 04:33:01.000000000 +0800 +++ /tmp/puppet-file20141106-35765-10dpf4t-0 2014-11-06 15:04:50.422305001 +0800 @@ -1,25 +1,12 @@ -[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 - - # Where SSL certificates are kept. - # The default value is '$confdir/ssl'. - ssldir = $vardir/ssl - -[agent] - # The file in which puppetd stores a list of the classes - # associated with the retrieved configuratiion. Can be loaded in - # the separate ``puppet`` executable using the ``--loadclasses`` - # option. - # The default value is '$confdir/classes.txt'. - classfile = $vardir/classes.txt - - # Where puppetd caches the local configuration. An - # extension indicating the cache format is added automatically. - # The default value is '$confdir/localconfig'. - localconfig = $vardir/localconfig +### config by puppet ### +[main] + logdir = /var/log/puppet + rundir = /var/run/puppet + ssldir = $vardir/ssl +[agent] + classfile = $vardir/classes.txt + localconfig = $vardir/localconfig + server = puppet.ewin.com + report = true + pluginsync = false + runinterval = 10 \ No newline at end of file Info: Computing checksum on file /etc/puppet/puppet.conf Info: /Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]: Filebucketed /etc/puppet/puppet.conf to puppet with sum 58e2f9765e2994db8e8ab19a3513356e Notice: /Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content: content changed '{md5}58e2f9765e2994db8e8ab19a3513356e' to '{md5}fa6ae34360e0b6b7755165fc8e950a76' Info: /Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]: Scheduling refresh of Class[Puppet::Service] Info: Class[Puppet::Service]: Scheduling refresh of Service[puppet] Notice: /Stage[main]/Puppet::Service/Service[puppet]/ensure: ensure changed 'stopped' to 'running' Info: /Stage[main]/Puppet::Service/Service[puppet]: Unscheduling refresh on Service[puppet] Notice: Finished catalog run in 222.24 seconds
(6)查看客戶端日志
[root@centostest ~]# tailf /var/log/message Nov 6 12:12:50 centostest puppet-agent[34357]: Retrieving pluginfacts Nov 6 12:12:50 centostest puppet-agent[34357]: Retrieving plugin Nov 6 12:12:51 centostest puppet-agent[34357]: Caching catalog for centostest.ewin.com Nov 6 12:12:52 centostest puppet-agent[34357]: Applying configuration version '1415247249' Nov 6 12:13:29 centostest yum[34565]: Installed: 1:facter-2.2.0-1.el6.x86_64 Nov 6 12:13:31 centostest puppet-agent[34357]: (/Stage[main]/Puppet::Install/Package[facter]/ensure) ensure changed '2.3.0-1.el6' to '2.2.0-1.el6' Nov 6 12:15:43 centostest puppet-agent[34357]: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y downgrade puppet-3.7.1-1.el6' returned 1: Error Downloading Packages: Nov 6 12:15:43 centostest puppet-agent[34357]: puppet-3.7.1-1.el6.noarch: failure: puppet-3.7.1-1.el6.noarch.rpm from puppetlabs-products: [Errno 256] No more mirrors to try. Nov 6 12:15:43 centostest puppet-agent[34357]: Wrapped exception: Nov 6 12:15:43 centostest puppet-agent[34357]: Execution of '/usr/bin/yum -d 0 -e 0 -y downgrade puppet-3.7.1-1.el6' returned 1: Error Downloading Packages: Nov 6 12:15:43 centostest puppet-agent[34357]: puppet-3.7.1-1.el6.noarch: failure: puppet-3.7.1-1.el6.noarch.rpm from puppetlabs-products: [Errno 256] No more mirrors to try. Nov 6 12:15:43 centostest puppet-agent[34357]: (/Stage[main]/Puppet::Install/Package[puppet]/ensure) change from 3.7.3-1.el6 to 3.7.1-1.el6 failed: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y downgrade puppet-3.7.1-1.el6' returned 1: Error Downloading Packages: Nov 6 12:15:43 centostest puppet-agent[34357]: (/Stage[main]/Puppet::Install/Package[puppet]/ensure) puppet-3.7.1-1.el6.noarch: failure: puppet-3.7.1-1.el6.noarch.rpm from puppetlabs-products: [Errno 256] No more mirrors to try. Nov 6 12:15:43 centostest puppet-agent[34357]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]) Dependency Package[puppet] has failures: true Nov 6 12:15:43 centostest puppet-agent[34357]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]) Skipping because of failed dependencies Nov 6 12:15:43 centostest puppet-agent[34357]: (/Stage[main]/Puppet::Service/Service[puppet]) Dependency Package[puppet] has failures: true Nov 6 12:15:43 centostest puppet-agent[34357]: (/Stage[main]/Puppet::Service/Service[puppet]) Skipping because of failed dependencies Nov 6 12:15:43 centostest puppet-agent[34357]: Finished catalog run in 171.49 seconds
#以上日志是第一次執(zhí)行puppet agent,安裝facter成功,但下載puppet-3.7.1失敗
Nov 6 15:01:08 centostest puppet-agent[35765]: Retrieving pluginfacts Nov 6 15:01:08 centostest puppet-agent[35765]: Retrieving plugin Nov 6 15:01:10 centostest puppet-agent[35765]: Caching catalog for centostest.ewin.com Nov 6 15:01:10 centostest puppet-agent[35765]: Applying configuration version '1415247249' Nov 6 15:04:49 centostest yum[35972]: Installed: puppet-3.7.1-1.el6.noarch Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Install/Package[puppet]/ensure) ensure changed '3.7.3-1.el6' to '3.7.1-1.el6' Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) --- /etc/puppet/puppet.conf#0112014-09-16 04:33:01.000000000 +0800 Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) +++ /tmp/puppet-file20141106-35765-10dpf4t-0#0112014-11-06 15:04:50.422305001 +0800 Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) @@ -1,25 +1,12 @@ Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) -[main] Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - # The Puppet log directory. Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - # The default value is '$vardir/log'. Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - logdir = /var/log/puppet Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - # Where Puppet PID files are kept. Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - # The default value is '$vardir/run'. Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - rundir = /var/run/puppet Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - # Where SSL certificates are kept. Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - # The default value is '$confdir/ssl'. Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - ssldir = $vardir/ssl Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) -[agent] Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - # The file in which puppetd stores a list of the classes Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - # associated with the retrieved configuratiion. Can be loaded in Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - # the separate ``puppet`` executable using the ``--loadclasses`` Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - # option. Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - # The default value is '$confdir/classes.txt'. Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - classfile = $vardir/classes.txt Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - # Where puppetd caches the local configuration. An Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - # extension indicating the cache format is added automatically. Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - # The default value is '$confdir/localconfig'. Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) - localconfig = $vardir/localconfig Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) +### config by puppet ####015 Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) +[main]#015 Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) + logdir = /var/log/puppet#015 Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) + rundir = /var/run/puppet#015 Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) + ssldir = $vardir/ssl#015 Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) +[agent]#015 Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) + classfile = $vardir/classes.txt#015 Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) + localconfig = $vardir/localconfig#015 Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) + server = puppet.ewin.com#015 Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) + report = true#015 Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) + pluginsync = false#015 Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) + runinterval = 10 Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) \ No newline at end of file Nov 6 15:04:50 centostest puppet-agent[35765]: Computing checksum on file /etc/puppet/puppet.conf Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]) Filebucketed /etc/puppet/puppet.conf to puppet with sum 58e2f9765e2994db8e8ab19a3513356e Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) content changed '{md5}58e2f9765e2994db8e8ab19a3513356e' to '{md5}fa6ae34360e0b6b7755165fc8e950a76' Nov 6 15:04:50 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]) Scheduling refresh of Class[Puppet::Service] Nov 6 15:04:50 centostest puppet-agent[35765]: (Class[Puppet::Service]) Scheduling refresh of Service[puppet] Nov 6 15:04:52 centostest puppet-agent[36125]: Reopening log files Nov 6 15:04:52 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Service/Service[puppet]/ensure) ensure changed 'stopped' to 'running' Nov 6 15:04:52 centostest puppet-agent[35765]: (/Stage[main]/Puppet::Service/Service[puppet]) Unscheduling refresh on Service[puppet] Nov 6 15:04:52 centostest puppet-agent[35765]: Finished catalog run in 222.24 seconds Nov 6 15:04:52 centostest puppet-agent[36125]: Starting Puppet client version 3.7.1 Nov 6 15:04:52 centostest puppet-agent[36125]: Run of Puppet configuration client already in progress; skipping (/var/lib/puppet/state/agent_catalog_run.lock exists) Nov 6 15:05:06 centostest puppet-agent[36135]: Finished catalog run in 0.46 seconds
#以上是重新獲取YUM倉庫后,第二次執(zhí)行puppet agent的日志, 成功將puppet-3.7.3降為3.7.1版本,因此最好一開始指定好puppet版本安裝。
(7)查看客戶端測試結(jié)果
查看已安裝版本:
[root@centostest ~]# rpm -aq|grep facter facter-2.2.0-1.el6.x86_64 [root@centostest ~]# rpm -aq|grep puppet puppet-3.7.1-1.el6.noarch
查看服務狀態(tài):
[root@centostest ~]# /etc/init.d/puppet status puppet (pid 36125) 正在運行... [root@centostest ~]# chkconfig --list | grep puppet puppet 0:關(guān)閉 1:關(guān)閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關(guān)閉
查看配置文件:
[root@centostest ~]# cat /etc/puppet/puppet.conf ### config by puppet ### [main] logdir = /var/log/puppet rundir = /var/run/puppet ssldir = $vardir/ssl [agent] classfile = $vardir/classes.txt localconfig = $vardir/localconfig server = puppet.ewin.com report = true pluginsync = false runinterval = 10
結(jié)論:軟件版本成功轉(zhuǎn)變成指定版本;服務啟動并添加到開機啟動中;配備文件成功從模板獲取,參數(shù)應用成功。
3、測試配置文件的變更影響
客戶端修改配置文件導致puppet服務重啟:
[root@centostest ~]# echo "#add a line" >> /etc/puppet/puppet.conf [root@centostest ~]# tailf /var/log/message Nov 6 15:33:57 centostest puppet-agent[57545]: (/Stage[main]/Puppet::Config/File[/etc/puppet/puppet.conf]/content) content changed '{md5}29acb66e2f297a5cf2ff6cbe731998f5' to '{md5}bb6d66a4b72890ef1bfa048c0cf179d8' Nov 6 15:33:57 centostest puppet-agent[56826]: Caught HUP; calling restart Nov 6 15:33:57 centostest puppet-agent[57545]: (/Stage[main]/Puppet::Service/Service[puppet]) Triggered 'refresh' from 1 events Nov 6 15:33:57 centostest puppet-agent[57545]: Finished catalog run in 1.10 seconds Nov 6 15:33:58 centostest puppet-agent[56826]: Caught HUP; calling restart Nov 6 15:33:58 centostest puppet-agent[56826]: Restarting with '/usr/bin/puppet agent' Nov 6 15:33:59 centostest puppet-agent[57782]: Reopening log files Nov 6 15:34:00 centostest puppet-agent[57782]: Starting Puppet client version 3.7.1 Nov 6 15:34:02 centostest puppet-agent[57784]: Finished catalog run in 0.63 seconds
結(jié)論:成功改變配置文件內(nèi)容,觸發(fā)puppet服務重啟,接下來是agent啟動的信息。
4、file資源
file {'nginx.conf': ensure => file, #定義類型:文件file或目錄directory mode => '0640', #權(quán)限 owner => root, #屬于用戶 group => root, #屬于用戶組 }
其他參數(shù)
{ ensure => present|absent|file|directory|link, #present檢查文件是否存在,如果存在則不創(chuàng)建 backup => , #通過filebucket備份文件,可備份到其他設備 checksum => , #檢查文件是否被修改,默認檢測法為MD5,其他有md5lite\mtime\ctime\none ctime => , #只讀屬性,文件的更新時間 mtime => , #只讀屬性 content => , #文件的內(nèi)容 force => , #強制刪除文件、軟鏈接及目錄,確保ensure=absent owner => , #指定文件的用戶名或用戶ID group => , #指定文件的用戶組名或組ID ignore => , #忽略指定的匹配文件,可以匹配目錄結(jié)構(gòu) link => , #軟鏈接,類似于ln命令 mode => , #文件權(quán)限配置 path => '/tmp/test',#文件路徑,使用雙引號,可用標題代替 purge => , #清空目錄中未在manifest中定義的文件或目錄,必須與recurse=>true使用 recurse => true|false|inf|remote, #遞歸目錄 recurselimit => , #遞歸的目錄的深度,值為數(shù)字 replace => true|false, #是否允許覆蓋文件內(nèi)容,默認為true(覆蓋) source => '/home/123.txt'|'http://'|'puppet:///', #源文件,本地路徑或URL路徑 sourceselect => firest|all, #可設置多個source源文件,本參數(shù)指定只復制每一個有效文件還是全部文件到目標 target => '/tmp/testlink', #指定目錄,配合ensure => link使用 type => , #只讀狀態(tài)檢查文件類型 }
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。