Puppet模块(四):HOST模块及host资源

作用:自动配置客户端的hosts文件,解决网络内的计算机之间计算机名称解析问题,适用于没有部署DNS服务器的内网环境。


1、服务端配置puppet模块

(1)模块清单

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

(2)定义host主类

[[email protected] ~]# 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)定义节点文件,调用模块

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

(4)应用节点文件

[[email protected] ~]# vi /etc/puppet/manifests/site.pp
import "centostest.pp"

2、测试

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

[[email protected] ~]# 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后查看日志

[[email protected] ~]# 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文件

[[email protected] ~]# 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
}
时间: 2024-08-24 02:23:16

Puppet模块(四):HOST模块及host资源的相关文章

常见模块(四) os模块

注: os模块是实现python程序对操作系统(operation system)的操作 1.对文件或者目录进行删除或者创建的相关操作 # os.rename("b","c") #将a文件或者目录修改成b文件或者目录 # os.remove("a") #只能移除a文件 # os.removedirs("a\b") #递归删除一个目录,前提是目录下没有文件 # os.mkdir("a") #创建一个空目录 #

puppet学习之四 编写模块

puppet学习之四 编写模块 这里不赘述编写的语法,只是简单记录下一个模块编写的简单流程 [[email protected] ~]# cd /etc/puppet/modules/ [[email protected] modules]# mkdir puppet [[email protected] modules]# cd puppet/ [[email protected] puppet]# mkdir files manifests templates #创建模块目录结构 [[ema

Puppet 之 模板和模块

1  概述 模板文件是在puppet模块下面templates目录中以".erb"结尾的文件,puppet模板主要用于文件,例如各种服务的配置文件,相同的服务,不同的配置就可以考虑使用模板文件. 模块是Puppet自包含的代码和数据集合.绝大多数的清单都可以放到模块中,唯一的例外是manifests下的主清单site.pp,包含站点级和节点级的代码. 本文将结合例子介绍如何使用模板和模块 2  模板 2.1 概念介绍 puppet模板是采用erb模板语言,embedded ruby来创

学生信息管理系统(四)——模块分析

学生信息管理系统已经敲完了,也进行了第一次验收,结果不是太理想.之前的总结也没有及时发表.现在重新复习一遍,把它发表. 从今天开始,我们就进入了代码分析阶段.现在我们就来分析一下模块中的几个函数. Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset 'executes SQL and returns Recordset Dim cnn As ADODB.Connection

Python基础第四篇—模块

一.模块 模块,是用一堆代码实现了某个功能的代码集合,模块分为三种:自定义模块(自己定义).内置模块(python自带).开源模块 导入模块 (1).导入一个py文件,解释器解释该py文件 (2).导入一个包,解释器解释该包下的 __init__.py 文件 #模块导入 import module from module.xx import xx from module.xx.xx import * from module.xx.xx import xx as rename #自己给模块定义一个

044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)

我们上上一篇文章(042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中)做的工作是把数据插入到了数据库,我们这篇文章做的是042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中这里没有写采购量,我们这篇文章做的就是把采购量写进入,也就是Updata之前的那个记录.这样采购单里面的记录就完整了. 如下: Dao层:用的是逆向工程生成的:yycgdmxMapper.updateByPrimaryKeySelective(yycgdmx_updat

python学习第四十八天json模块与pickle模块差异

在开发过程中,字符串和python数据类型进行转换,下面比较python学习第四十八天json模块与pickle模块差异. json 的优点和缺点 优点  跨语言,体积小 缺点 只能支持 int str list tuple dict pickle 的优点和缺点 优点 专门为python设计,支持python所有的数据类型 缺点 只能python使用,存储数据占空间大 文章来自 www.96net.com.cn 原文地址:https://www.cnblogs.com/96net/p/97806

(二十四)模块

一.模块 什么是模块. 模块就是?个包含了python定义和声明的?件, ?件名就是模块的名字加上.py后缀. 换句话说我们?前写的所有的py?件都可以看成是?个模块,但是我们import加载的模块?共分成四个通?类别: 1. 使?pyhton编写的py?件 2. 已被变异为共享库或者DLL或C或者C++的扩展 3. 包好?组模块的包. 4. 使?c编写并连接到python解释器的内置模块 为什么要使?模块? 为了我们写的代码可以重?,不?于把所有的代码都写在?个?件内.当项?规模比较?的时候,

python学习笔记系列----(四)模块

这一章主要是叙述了python模块的概念以及包的概念,还有它们的使用:收获也是大大的. 提起python文件,经常会听到3个名词,python脚本,python模块,python包.脚本的概念是从python交互式命令行引用过来的,把在命令行内运行的代码段复制到一个文件里再运行,这个文件就可以称为一个脚本:脚本之间可能存在相同的函数等,为了一个脚本能使用另一个脚本里的函数等,这里的另一个脚本就可以称为一个模块,也就是说一个模块里的定义是可以被导入到别的模块或者主模块中使用的:python包是py

Python之旅.第四章.模块与包.总结(未完待遇)

一.模块 模块: 一系列功能的集合体,在python中一个py文件就是一个模块,模块名就是py文件的文件名: 模块的好处: 1.减少重复的代码 2.拿来主义 定义模块: 就是创建一个py文件: 使用模块: 关键字:import 用法:import 模块名(不要加py后缀) 注意区分执行文件和模块文件,执行文件是你当前逻辑程序,模块文件是你用来调用功能的文件: 首次导入模块: 1.创建一个模块的名称空间 2.执行模块文件,将模块文件产生的名字存放于创建的模块名称空间 3.当执行文件中拿到一个模块名