1. 环境准备

OS:CentOS 6.4

关闭selinux和iptables

部署Puppet:1.0 Puppet 3.7部署

安装Puppet源:http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm

完成PuppetMaster/Agent的部署,证书签署...

Hiera是一个key/value配置数据的查找工具,可以用来方便的配置特殊节点配置数据.

2. 使用Hiera

  a) 安装hiera

如果安装的是Puppet 3.7不需要再安装Hiera了..

如果安装的是2.7版本,需要执行下面的命令.

yum install hiera hiera-puppet -y

b)配置hiera.yaml

查看配置文件的路径

puppet master --configprint hiera_config    #默认在/etc/puppet/hiera.yaml

hiera的配置文件必须是YAML hash格式.

#一个参考的配置..,注意每个最顶层的配置,前面必须要有一个 :
---
:backends:- yaml- json
:yaml::datadir: /etc/puppet/hieradata
:json::datadir: /etc/puppet/hieradata
:hierarchy:- "%{::clientcert}"- "%{::custom_location}"- common#如果hiera.yaml存在,但是里面是空的..,那么它的默认配置如下..
---
:backends: yaml
:yaml::datadir: /var/lib/hiera:hierarchy: common
:logger: console

c) 配置参数

#顶层配置
:hierarchy#必须是一个字符串或数组,每一个名字都代表一个静态或动态数据源#动态数据是一个简单的 %{variable} 内插变量#在层次结构中,按顺序检查,自上而下.#默认值是common:backend#必须是一个字符串或数组,每一个名字都代表一个可用的Hiera的backend#内置的backend是yaml和json,可以添加额外的backend作为附加的#默认值是yaml#backend设置
:yaml and :json
:datadir   #可以在目录中找到数据源的文件,必须是一个字符串#可以在路径中使用变量内插/etc/puppet/hieradata/%{::environment}#默认值 /var/lib/hiera#配置hiera.yaml
mkdir /etc/puppet/hieradata/
cat > /etc/puppet/hiera.yaml <<EOF
---
:backends:- yaml
:yaml::datadir: /etc/puppet/hieradata
:logger: console
:hierarchy:- "%{operatingsystem}%{::operatingsystemmajrelease}"- "%{::osfamily}"- common
EOF#创建默认会被匹配的数据文件..,使用classes引入base模块
cat > /etc/puppet/hieradata/common.yaml <<EOF
---
classes:- base
EOF#创建当osfamily被匹配为RedHat时的文件...
cat > /etc/puppet/hieradata/RedHat.yaml <<EOF
---
os: redhat
EOF#创建当operatingsystem和operatingsystemmajrelease被匹配时的文件..
cat > /etc/puppet/hieradata/CentOS6.yaml <<EOF
---
os: CentOS
os_type:Linux: true unix: false
EOF#配置site.pp自动导入类模块...
cat > /etc/puppet/manifests/site.pp <<EOF
hiera_include('classes')
EOF#创建一个base模块,打印出os变量
#对于查找数据可以使用三种函数
#标准查询hiera 获取一个匹配key的value
#合并查询hiera_array  获取所有匹配的键,然后返回它们的值到一个数组中
#合并查询hiera_hash 类似数组,返回hash的结构.
mkdir /etc/puppet/modules/base/manifests
cat > /etc/puppet/modules/base/manifests/init.pp <<EOF
class base {$test1 = hiera('os')$test2 = hiera_array('os')$test3 = hiera_hash('os_type')notify { "OS1: $test1":}notify { "OS2: $test2":}
}
EOF#重启Puppet Master

3. 执行Puppet Agent

[root@agent1 ~]# puppet agent --verbose --no-daemonize
Notice: Starting Puppet client version 3.7.3
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for agent1.dbsa.cn
Info: Applying configuration version '1417636182'
Notice: OS1: CentOS
Notice: /Stage[main]/Base/Notify[OS1: CentOS]/message: defined 'message' as 'OS1: CentOS'
Notice: OS2: CentOSredhatdefault
Notice: /Stage[main]/Base/Notify[OS2: CentOSredhatdefault]/message: defined 'message' as 'OS2: CentOSredhatdefault'
Notice: Finished catalog run in 0.03 seconds
^CNotice: Caught INT; calling stop
[root@agent1 ~]# facter operatingsystem
CentOS
[root@agent1 ~]# facter operatingsystemmajrelease
6

转载于:https://blog.51cto.com/kinda22/1586495

【跟我学Puppet】1.5 Puppet 3.7 使用Hiera定义配置相关推荐

  1. puppet 手册之puppet rsync 模块应用完整版

    上篇文章有介绍关于模块的配置和应用,Cron模块再实际的工作需求中,还是蛮多的,这篇文章就模块的应用多介绍一个篇幅,工作中常用的RSYNC Puppet也是用来同步文件的,针对一些小文件之类的,还是蛮 ...

  2. 【天赢金创】Puppet Hacking Guide —— Puppet 的启动:子命令

    在阿里巴巴实习期间,由于各种机缘巧合,我开始专注于研读配置自动化管理软件 Puppet .这项工作持续了两个月,期间我在内网发布过多篇技术文章,详细地剖析 Puppet 的运行原理.业已实习完毕,所有 ...

  3. 获得无向图连通子图_讲透学烂二叉树(一):图的概念和定义—各种属性特征浅析...

    树和图的概念 图是一种特殊的数据结构,由点和边构成,它可以用来描述元素之间的网状关系,这个网状没有顺序,也没有层次,就是简单的把各个元素连接起来. 图的概念和基本性质 图(graph):图(graph ...

  4. 二叉树第i层中的所有结点_讲透学烂二叉树(二):图中树的定义amp;各类型树的特征分析...

    日常中我们见到的二叉树应用有,Java集合中的TreeSet和TreeMap,C++ STL中的set.map,以及Linux虚拟内存的管理,以及B-Tree,B+-Tree在文件系统,都是通过红黑树 ...

  5. java le下载安装_跟老杨学java系列(五) JDK的安装与配置

    跟老杨学java系列(五) JDK的安装与配置 提示:本节内容对于java入门是非常关键的,对于刚接触java的同学一定要认真学习,欢迎大家留言探讨技术问题.其他问题概不回复. (书接上回)上节课程我 ...

  6. 【译学】数据分析手册学习02:数据的定义、分类、策略 【实例应用情境】

    数据分析手册翻译及读后感, 英文原版资料可下载:introduction to data analysis handbook 数据的定义 数据是- 1973年<韦伯斯特新学院词典>将数据定 ...

  7. 合肥工业大学—SQL Server数据库实验九:视图的定义与使用

    视图的定义与使用 1. 定义视图 2. 使用视图 1. 定义视图 在EDUC数据库中,已Student.Course 和SC表为基础完成一下视图定义: 1) 定义视图V_SC_G:该视图包含Stude ...

  8. 每天学点SpringCloud(八):使用Apollo做配置中心

    版权声明:本文为博主原创文章,未经博主允许不得转载.博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/8160 ...

  9. 想学3D建模?适合安装3dsmax软件的笔记本配置

    运行3dsmax需要较高笔记本配置,中高端游戏本也能带动3dsmax,用来学习足够.笔记本配置太差3dsmax会崩溃,什么样的笔记本电脑适合运行3dsmax? 一.CPU 3dsmax建模.实时预览除 ...

最新文章

  1. AcWing 734. 能量石 (01背包)+(贪心 - 领项交换)
  2. php 快速导出csv,php快速导出csv格式数据程序代码
  3. Elasticsearch7.x 安装及集群的配置
  4. 使用 Jwt-Auth 实现 API 用户认证以及无痛刷新访问令牌
  5. day for people, night for material
  6. Spring常问的面试
  7. 游戏打包过程枯燥且繁琐,如何提升打包效率?
  8. 有线电视的现状与发展,全国一网与广电5G一体化建设
  9. VPP:Bihash简介
  10. Vue页面返回顶部功能实现
  11. NEFUCTF校赛-题解
  12. java反编译luyten使用
  13. 计算机专业自考本需要学哪几门,自考本科都考哪些科目?一次考几门?
  14. Winmail反垃圾邮件指南:使用Winmail时,比较有效的过滤垃圾邮件的设置
  15. AutoCAD、Revit、Maya、3dsMax出现许可管理器不起作用
  16. vue实现下拉二级联动_vue实现二级联动效果
  17. iOS小技能:安全措施
  18. 0范数,1范数,2范数
  19. 行存储和列存储小介绍
  20. 心智模式:心智模式的更多资料

热门文章

  1. 一张图看懂光圈、快门、感光度的意义
  2. 十个全网最具创意的聊天机器人:漫威和联合国儿童基金会都在尝试使用聊天机器人...
  3. Go channel 通道
  4. Javaweb支付宝支付
  5. “怀孕后,老公居然背着我做这些事”:有没有嫁对人,看这点就知道了
  6. influxDB快速入门实战教程
  7. pyton 内置模块
  8. 计算机二进制数的换算
  9. shiro的anon部分失效
  10. 各应用市场(安卓)的入口整理: