作用
利用 puppet 对客户端 /etc/hosts 文件进行管理
辅助模块
https://forge.puppet.com/chrekh/hosts
下载方法
点击网页中 download latest tar.gz 直接下载
把下载的文件 解压至 puppet server 中 /etc/puppet/modules/hosts 目录中
文件结构
参考
[root@terry-test-uq2pu hosts]# pwd
/etc/puppet/modules/hosts
[root@terry-test-uq2pu hosts]# ls
CHANGELOG.md checksums.json Gemfile lib manifests metadata.json Rakefile README.md spec templates tests
参考 README.md 查询使用方法
puppet 调用顺序
/etc/puppet/puppet.conf
|-> /etc/puppet/manifests/main-site.pp
|-> /etc/puppet/manifests/terry/terry-parameter.pp
|-> /etc/puppet/manifests/terry/terry-site.pp
|-> /etc/puppet/manifests/terry/terry-hosts.pp
说明:
1. /etc/puppet/puppet.conf 中通过下面配置执行下一个文件
manifest = /etc/puppet/manifests/main-site.pp
2. /etc/puppet/manifests/main-site.pp 通过下面配置执行下一个文件
import 'terry/terry-parameter.pp'
import 'terry-site.pp'
3. /etc/puppet/manifests/terry/terry-parameter.pp (用于定了了全局变量) 下一章说明
/etc/puppet/manifests/terry/terry-site.pp 定义了主机需要执行那些自定义行为, 使用那些资源, 当前以调用了 sysctl 模块与 hosts 模块
import 'terry/terry-sysctl.pp'
import 'terry/terry-hosts.pp'
4. /etc/puppet/manifests/terry/terry-hosts.pp 定义了 hosts 配置
hosts 控制说明
主要由 /etc/puppet/manifests/terry/terry-hosts.pp 控制整个客户端 /etc/hosts 文件内容
文件例:
class { 'hosts':
one_primary_ipv4 => true,
one_primary_ipv6 => false,
entries => {
'10.199.198.218' => [ 'terry-test-uq2pu.vclound.com', 'terry-test-uq2pu' ],
'10.199.196.187' => [ 'terry-w6im9.vclound.com', 'terry-w6im9' ],
'10.199.251.52' => [ 'terryzeng-gz-qa-dns-vid7e.vclound.com', 'terryzeng-gz-qa-dns-vid7e' ]
}
}
客户端配置参考
客户端连接服务器方法参考
验证结果
当执行客户端连接命令后, 参考 /etc/hosts 文件
[root@terryzeng-gz-qa-dns-d4yzu /]# cat /etc/hosts
# Managed by puppet module hosts.
# Loopback
127.0.0.1 localhost
# Primary address
10.199.198.161 terryzeng-gz-qa-dns-d4yzu.vclound.com terryzeng-gz-qa-dns-d4yzu
# Additional entries (use hosts::entries to add)
10.199.251.52 terryzeng-gz-qa-dns-vid7e.vclound.com terryzeng-gz-qa-dns-vid7e
10.199.196.187 terry-w6im9.vclound.com terry-w6im9
10.199.198.218 terry-test-uq2pu.vclound.com terry-test-uq2pu
说明:
当前配置 terry-hosts.pp 会覆盖客户端 /etc/hosts 所有配置
当定义 one_primary_ipv4 => true 时, 会生成 primary address 配置
entries 中配置会根据定义, 每行一条记录