Puppet模块(三):puppet模块及file资源

作用:通过puppet模块自动控制客户端的puppet配置,当需要修改客户端的puppet配置时不用在客户端一一设置。

1、服务端配置puppet模块

(1)模块清单

1 2 3 4 5 6 7 8 9 10 11 [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)定义参数类

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [root@puppet ~]# vi /etc/puppet/modules/puppet/manifests/params.pp class puppet::params {   $puppetserver = “puppet.ewin.com”   case $operatingsystemmajrelease{     5: {                #定义centos5系列的参数       $puppet_release = ‘3.7.1-1.el5’       $facter_release = ‘2.2.0-1.el5’     }     6: {                #定义centos6系列的参数       $puppet_release = ‘3.7.1-1.el6’      #定义软件版本       $facter_release = ‘2.2.0-1.el6’      #定义软件版本     }     default: {       fail(“Module puppet is not supported on ${::operatingsystem}”)     }   } }

(3)定义安装类

1 2 3 4 5 6 7 8 9 [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,   } }

说明:根据系统版本(centos5或centos6)来安装指定版本的puppet和facter

(4)定义配置类

1 2 3 4 5 6 7 8 9 10 11 12 [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”), #文件内容来源于模板     owner   => “root”,     group   => “root”,     mode    => ‘0644’,     require => Class[“puppet::install”], #要求先完成install.pp     notify  => Class[“puppet::service”], #通知并触发service.pp   } }

说明:将配置模板传送到客户端的puppet.conf,设置用户、组、权限

(5)定义配置模板

1 2 3 4 5 6 7 8 9 10 11 12 13 [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’) %>  #参数调用格式<%= 参数 %>     report = true     pluginsync = false     runinterval = 10 #puppet 客户端默认连接到puppetmaster的时间间隔,默认30分钟,这里测试设为10秒,将会生成大量报告,建议测试完后改回1800

说明:模板调用了params.pp中的参数$puppetserver

(6)定义服务类

1 2 3 4 5 6 7 8 9 10 [root@puppet ~]# vi /etc/puppet/modules/puppet/manifests/service.pp class puppet::service {   service { “puppet”:     ensure     => running,    #确保服务puppet处于运行状态     hasstatus  => true,       #是否支持service puppet status命令查看状态     hasrestart => true,       #是否支持service puppet restart命令重启服务     enable     => true,       #是否开机启动服务     require    => Class[“puppet::install”],   } }

(7)定义puppet主类

1 2 3 4 [root@puppet ~]# vi /etc/puppet/modules/puppet/manifests/init.pp class puppet {   include puppet::params,puppet::install,puppet::config,puppet::service }

(8)定义节点文件,调用模块

[root@puppet ~]# vi /etc/puppet/manifests/centostest.pp

node “centostest.ewin.com” {

include ntp, yum, puppet

}

(9)应用节点文件

1 2 [root@puppet ~]# vi /etc/puppet/manifests/site.pp import “centostest.pp”

2、测试:软件安装版本、配置文件、服务启动

(1)查看已安装版本

1 2 3 4 5 6 [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)查看服务状态

1 2 3 4 5 6 [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:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭

(3)查看配置文件

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 [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)客户端执行测试

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 [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配置文件内容 — /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] #说明:配置文件的改变将触发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) #说明:服务当前是关闭的,将变成运行 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)真正执行puppet agent(不带–noop参数)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [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恢复仓库后重试

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 [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)查看客户端日志

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [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

#以上日志是第一次执行puppet agent,安装facter成功,但下载puppet-3.7.1失败

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 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仓库后,第二次执行puppet agent的日志, 成功将puppet-3.7.3降为3.7.1版本,因此最好一开始指定好puppet版本安装。

(7)查看客户端测试结果

查看已安装版本:

1 2 3 4 [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

查看服务状态:

1 2 3 4 [root@centostest ~]# /etc/init.d/puppet status puppet (pid  36125) 正在运行… [root@centostest ~]# chkconfig –list | grep puppet puppet          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

查看配置文件:

1 2 3 4 5 6 7 8 9 10 11 12 13 [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

结论:软件版本成功转变成指定版本;服务启动并添加到开机启动中;配备文件成功从模板获取,参数应用成功。

3、测试配置文件的变更影响

客户端修改配置文件导致puppet服务重启:

1 2 3 4 5 6 7 8 9 10 11 [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

结论:成功改变配置文件内容,触发puppet服务重启,接下来是agent启动的信息。

4、file资源

1 2 3 4 5 6 file {‘nginx.conf’:   ensure => file,    #定义类型:文件file或目录directory   mode   => ‘0640’,  #权限   owner  => root,    #属于用户   group  => root,    #属于用户组 }

其他参数

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 {   ensure       => present|absent|file|directory|link, #present检查文件是否存在,如果存在则不创建   backup       => , #通过filebucket备份文件,可备份到其他设备   checksum     => , #检查文件是否被修改,默认检测法为MD5,其他有md5lite\mtime\ctime\none   ctime        => , #只读属性,文件的更新时间   mtime        => , #只读属性   content      => , #文件的内容   force        => , #强制删除文件、软链接及目录,确保ensure=absent   owner        => , #指定文件的用户名或用户ID   group        => , #指定文件的用户组名或组ID   ignore       => , #忽略指定的匹配文件,可以匹配目录结构   link         => , #软链接,类似于ln命令   mode         => , #文件权限配置   path         => ‘/tmp/test’,#文件路径,使用双引号,可用标题代替   purge        => , #清空目录中未在manifest中定义的文件或目录,必须与recurse=>true使用   recurse      => true|false|inf|remote, #递归目录   recurselimit => , #递归的目录的深度,值为数字   replace      => true|false, #是否允许覆盖文件内容,默认为true(覆盖)   source       => ‘/home/123.txt’|’http://’|’puppet:///’, #源文件,本地路径或URL路径   sourceselect => firest|all, #可设置多个source源文件,本参数指定只复制每一个有效文件还是全部文件到目标   target       => ‘/tmp/testlink’, #指定目录,配合ensure => link使用   type         => , #只读状态检查文件类型 }
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!10210454@qq.com
2. 本站不保证所提供所有下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有RB奖励和额外RMB收入!

磊宇堂正在使用的服务器 维护管理由磊宇云服务器提供支持

磊宇堂 » Puppet模块(三):puppet模块及file资源

提供最优质的资源集合

立即查看 了解详情