puppet host模块

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 转载:http://blog.51cto.com/ywzhou/1577432作用:自动配置客户端的hosts文件,解决网络内的计算机之间计算机名称解析问题,适用于没有部署DNS服务器的内网环境。

转载:http://blog.51cto.com/ywzhou/1577432
作用:自动配置客户端的hosts文件,解决网络内的计算机之间计算机名称解析问题,适用于没有部署DNS服务器的内网环境。

1、服务端配置puppet模块

(1)模块清单

[root@puppet ~]# tree /etc/puppet/modules/host/
/etc/puppet/modules/host/
├── files
├── manifests
│   └── init.pp
└── templates

(2)定义host主类

[root@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)定义节点文件,调用模块

[root@puppet ~]# vi /etc/puppet/manifests/centostest.pp
node "centostest.ewin.com" {
  include ntp, yum, puppet, host
}

(4)应用节点文件

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

2、测试

(1)客户端执行前查看hosts文件

[root@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后查看日志

[root@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文件

[root@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资源

host { 'resource title':
  name         => #主机名,可以写在标题中
  ensure       => #基本参数,present, absent
  comment      => #注释说明
  host_aliases => #别名
  ip           => #IP地址
  target       => #保住服务信息的文件,大部分系统默认是/etc/hosts
}
目录
相关文章
|
开发工具 数据安全/隐私保护 git
|
Java 应用服务中间件 Linux
puppet连载九:linux安装jdk、tomcat模块
安装jdk1.8.0_91和tomcat8.0.36 mkdir -p /etc/puppet/modules/linuxjdktomcat/{manifests,templates,files} vi /etc/puppet/modules/linuxjdktomcat/manifests/init.
1078 0
|
MySQL 关系型数据库 Linux
puppet连载10:linux安装percona57/56/55、sysbench、tpcc模块
在服务端/puppet/soft下建my.cnf,内容为https://www.jianshu.com/p/c63fc6c71279 在服务端/puppet/soft下建changemysql57pass.
1075 0
|
Linux 开发工具 git
puppet连载七:linux基础组件安装模块
linux基础组件安装模块linuxbaseinstall 更换源,安装gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf git mkdir -p /etc/puppet...
1073 0
puppet连载六:创建测试模块test
创建测试模块 mkdir -p /etc/puppet/modules/test/{manifests,templates,files} vi /etc/puppet/modules/test/manifests/init.
895 0
|
网络协议 Linux 安全
puppet连载八:linux优化模块
linux优化模块 在服务端先建立文件limits.con vi /puppet/soft/limits.conf soft nofile 102400 hard nofile 102400 soft nproc 102400 hard nproc 102400 保存,退出 在服务端建立文件sysctl.
808 0
|
测试技术
puppet cron 模块
转载:http://blog.51cto.com/ywzhou/1577299 Puppet模块章节环境说明 服务端 | 客户端 操作系统:CentOS 6.
995 0
|
安全 Linux 网络协议
puppet yum模块、配置仓储、mount模块
转载:http://blog.51cto.com/ywzhou/1577335 作用:自动为客户端配置YUM源,为使用yum安装软件包提供便捷。 1、服务端配置yum模块 (1)模块清单 [root@puppet ~]# tree /etc/puppe...
1116 0
|
网络安全
puppet puppet模块、file模块
转载:http://blog.51cto.com/ywzhou/1577356 作用:通过puppet模块自动控制客户端的puppet配置,当需要修改客户端的puppet配置时不用在客户端一一设置。
1001 0
|
存储 Linux 网络安全
puppet ssh模块
转载:http://blog.51cto.com/ywzhou/1577502 作用:通过SSH模块管理客户端的ssh远程服务,并用key认证方式替代密码认证方式,提高安全性; 本例分两阶段,首先是ssh的安装、配置及服务管理,然后是使用如何转换成key认证方式。
1410 0