预计阅读本页时间:-
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