5.5.3 如何自动同步Puppet-Client端的yum源

Puppet-Master机器上更新了yum源后,可通过以下命令观察:

ls ll /etc/yum.repos.d/

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

命令显示结果如下:

total 24

-rw-r--r--. 1 root root 1926 Feb 25 2013 CentOS-Base.repo

-rw-r--r--. 1 root root 638 Feb 25 2013 CentOS-Debuginfo.repo

-rw-r--r--. 1 root root 630 Feb 25 2013 CentOS-Media.repo

-rw-r--r--. 1 root root 3664 Feb 25 2013 CentOS-Vault.repo

-rw-r--r--. 1 root root 957 Nov 4 03:46 epel.repo

-rw-r--r--. 1 root root 0 Nov 4 03:46 nginx.repo

-rw-r--r--. 1 root root 1250 Apr 12 2013 puppetlabs.repo

如果想通过Puppet-Master端将这些文件都推送到client.cn7788.com 及fabric.cn7788.com 对应的目录/etc/yum.repos.d/中去,该如何实现呢?步骤如下。

1)修改/etc/puppet/fileserver.conf文件,内容如下:

[files]

path /etc/yum.repos.d/

allow *

2)修改/etc/puppet/manifests/site.pp文件,内容如下:

file

{ "/etc/yum.repos.d/":

source => "puppet://server.cn7788.com/files/",

group => root,

owner => root,

mode => 644,

recurse => true,

force => true,

purge => true

}

客户端正确连接到Puppet服务器端后,大家可以发现,Puppet-Server会向Puppet-Client端推送文件了,分别在两台节点机器机上输入如下命令:

puppet agent --test --server server.cn7788.com

会看到两台机器的结果是一样的,输入命令的反馈结果如下:

Info: Retrieving pluginfacts

Info: Retrieving plugin

Info: Caching catalog for client.cn7788.com

Info: Applying configuration version '1446619419'

Notice: /Stage[main]/Main/File[/etc/yum.repos.d/puppetlabs.repo]/ensure: defined content as '{md5}14d68f86efb69e928d626c7ea8a974b3'

Notice: /Stage[main]/Main/File[/etc/yum.repos.d/CentOS-Debuginfo.repo]/ensure: defined content as '{md5}8b95e819eeea42849932309b5be5533d'

Info: Computing checksum on file /etc/yum.repos.d/puppetlabs-release-6-7.noarch.rpm

Info: /Stage[main]/Main/File[/etc/yum.repos.d/puppetlabs-release-6-7.noarch.rpm]: Filebucketed /etc/yum.repos.d/puppetlabs-release-6-7.noarch.rpm to puppet with sum 2aa0affe57ade441bfb9dcd6126a6cd6

Notice: /Stage[main]/Main/File[/etc/yum.repos.d/puppetlabs-release-6-7.noarch.rpm]/ensure: removed

Notice: /Stage[main]/Main/File[/etc/yum.repos.d/CentOS-Base.repo]/ensure: defined content as '{md5}d03052aaa85e5d26451f0ada9054f50f'

Info: Computing checksum on file /etc/yum.repos.d/softlist

Info: /Stage[main]/Main/File[/etc/yum.repos.d/softlist]: Filebucketed /etc/yum.repos.d/softlist to puppet with sum 36fe51e7e690fe7d65046e9868ed2fa4

Notice: /Stage[main]/Main/File[/etc/yum.repos.d/softlist]/ensure: removed

Info: /Stage[main]/Main/File[/etc/yum.repos.d/test]: Recursively backing up to filebucket

Info: Computing checksum on file /etc/yum.repos.d/test/dd

Info: /Stage[main]/Main/File[/etc/yum.repos.d/test]: Filebucketed /etc/yum.repos.d/test/dd to puppet with sum d41d8cd98f00b204e9800998ecf8427e

Info: Computing checksum on file /etc/yum.repos.d/test/cc

Info: FileBucket got a duplicate file {md5}d41d8cd98f00b204e9800998ecf8427e

Info: /Stage[main]/Main/File[/etc/yum.repos.d/test]: Filebucketed /etc/yum.repos.d/test/cc to puppet with sum d41d8cd98f00b204e9800998ecf8427e

Notice: /Stage[main]/Main/File[/etc/yum.repos.d/test]/ensure: removed

Notice: /Stage[main]/Main/File[/etc/yum.repos.d/nginx.repo]/ensure: defined content as '{md5}d41d8cd98f00b204e9800998ecf8427e'

Notice: /Stage[main]/Main/File[/etc/yum.repos.d/CentOS-Media.repo]/ensure: defined content as '{md5}db3010a594efc3043651d78741ac02ff'

Notice: /Stage[main]/Main/File[/etc/yum.repos.d/epel.repo]/ensure: defined content as '{md5}e8950030d9c72cf3e7a6469e8c1404ca'

Notice: /Stage[main]/Main/File[/etc/yum.repos.d/CentOS-Vault.repo]/ensure: defined content as '{md5}62b394965682a15877a36357fe55689d'

Notice: Finished catalog run in 0.75 seconds

同样,在Puppet-Client端用ll命令进行观察,可以发现客户端已经将Puppet-Server端/etc/yum.repos.d目录下的文件同步过来了,实现了此工作的需求,检查结果如下:

total 24

-rw-r--r--. 1 root root 1926 Nov 4 06:44 CentOS-Base.repo

-rw-r--r--. 1 root root 638 Nov 4 06:44 CentOS-Debuginfo.repo

-rw-r--r--. 1 root root 630 Nov 4 06:44 CentOS-Media.repo

-rw-r--r--. 1 root root 3664 Nov 4 06:44 CentOS-Vault.repo

-rw-r--r--. 1 root root 957 Nov 4 06:44 epel.repo

-rw-r--r--. 1 root root 0 Nov 4 06:44 nginx.repo

-rw-r--r--. 1 root root 1250 Nov 4 06:44 puppetlabs.repo