设为首页 收藏本站
查看: 1074|回复: 0

[经验分享] Puppet模块(四):HOST模块及host资源

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2014-11-18 09:36:23 | 显示全部楼层 |阅读模式
作用:自动配置客户端的hosts文件,解决网络内的计算机之间计算机名称解析问题,适用于没有部署DNS服务器的内网环境。

1、服务端配置puppet模块
(1)模块清单
1
2
3
4
5
6
[iyunv@puppet ~]# tree /etc/puppet/modules/host/
/etc/puppet/modules/host/
├── files
├── manifests
│   └── init.pp
└── templates



(2)定义host主类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[iyunv@puppet ~]# vi /etc/puppet/modules/host/manifests/init.pp
class host {
  host { 'puppet.ewin.com':      #计算机名称
  ensure       => present,       #基础属性,应用此资源
  host_aliases => "puppet",      #计算机别名,可以多个
  ip           => "10.188.1.73", #计算机IP地址
  }
  host { 'zabbix.ewin.com':
  ensure       => present,
  host_aliases => "zabbix",
  ip           => "10.188.1.103",
  }
  host { 'centostest.ewin.com':
  ensure       => present,
  host_aliases => "centostest",
  ip           => "10.188.1.85",
  }
  host { 'ywzhou-pc.ewin.com':
  ensure       => present,
  host_aliases => "ywzhou-pc",
  ip           => "10.188.1.172",
  }
}



说明:有多少条解析记录就写多少个host资源,需要注意的是计算机的IP必须固定,使用了DHCP服务的最好在DHCP服务器或路由器上进行保留或绑定;
    或者手动设定IP,还可以通过puppet来管理客户端的主机名和IP。
(3)定义节点文件,调用模块
1
2
3
4
[iyunv@puppet ~]# vi /etc/puppet/manifests/centostest.pp
node "centostest.ewin.com" {
  include ntp, yum, puppet, host
}



(4)应用节点文件  
1
2
[iyunv@puppet ~]# vi /etc/puppet/manifests/site.pp
import "centostest.pp"





2、测试
(1)客户端执行前查看hosts文件
1
2
3
4
5
[iyunv@centostest ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.188.1.103 zabbix.ewin.com
10.188.1.73 puppet.ewin.com



    说明:这是安装客户端时手动设置的。
(2)客户端执行puppet agent -t后查看日志
1
2
3
4
5
6
[iyunv@centostest ~]# tailf /var/log/messages
Nov 11 14:22:39 centostest puppet-agent[20214]: (/Stage[main]/Host/Host[zabbix.ewin.com]/host_aliases) defined 'host_aliases' as 'zabbix'
Nov 11 14:22:39 centostest puppet-agent[20214]: (/Stage[main]/Host/Host[ywzhou-pc.ewin.com]/ensure) created
Nov 11 14:22:39 centostest puppet-agent[20214]: (/Stage[main]/Host/Host[centostest.ewin.com]/ensure) created
Nov 11 14:22:39 centostest puppet-agent[20214]: (/Stage[main]/Host/Host[puppet.ewin.com]/host_aliases) defined 'host_aliases' as 'puppet'
Nov 11 14:22:40 centostest puppet-agent[20214]: Finished catalog run in 1.13 seconds



    说明:对原有的记录进行修改,增加了别名记录,没有的就创建。
(3)客户端再次查看hosts文件
1
2
3
4
5
6
7
8
9
10
[iyunv@centostest ~]# cat /etc/hosts
# HEADER: This file was autogenerated at Tue Nov 11 14:22:39 +0800 2014
# HEADER: by puppet.  While it can still be managed manually, it
# HEADER: is definitely not recommended.
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.188.1.103  zabbix.ewin.com zabbix
10.188.1.73 puppet.ewin.com puppet
10.188.1.172  ywzhou-pc.ewin.com  ywzhou-pc
10.188.1.85 centostest.ewin.com centostest



    结论:可以看到对已有的条目添加了别名,没有的就新增了记录,这样就相当于建立了一个半自动的DNS;但是当计算机太多时最好还是搭建一个内网DNS服务器。
    有新的记录就直接写在class host里,通过puppet发布到客户端,所有调用了host类的客户端就自动更新了。

3、host资源
1
2
3
4
5
6
7
8
host { 'resource title':
  name         => #主机名,可以写在标题中
  ensure       => #基本参数,present, absent
  comment      => #注释说明
  host_aliases => #别名
  ip           => #IP地址
  target       => #保住服务信息的文件,大部分系统默认是/etc/hosts
}






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-30942-1-1.html 上篇帖子: Puppet模块(三):puppet模块及file资源 下篇帖子: Puppet模块(五):SSH模块及ssh资源
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表