【跟我学Puppet】1.5 Puppet 3.7 使用Hiera定义配置
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定义配置相关推荐
- puppet 手册之puppet rsync 模块应用完整版
上篇文章有介绍关于模块的配置和应用,Cron模块再实际的工作需求中,还是蛮多的,这篇文章就模块的应用多介绍一个篇幅,工作中常用的RSYNC Puppet也是用来同步文件的,针对一些小文件之类的,还是蛮 ...
- 【天赢金创】Puppet Hacking Guide —— Puppet 的启动:子命令
在阿里巴巴实习期间,由于各种机缘巧合,我开始专注于研读配置自动化管理软件 Puppet .这项工作持续了两个月,期间我在内网发布过多篇技术文章,详细地剖析 Puppet 的运行原理.业已实习完毕,所有 ...
- 获得无向图连通子图_讲透学烂二叉树(一):图的概念和定义—各种属性特征浅析...
树和图的概念 图是一种特殊的数据结构,由点和边构成,它可以用来描述元素之间的网状关系,这个网状没有顺序,也没有层次,就是简单的把各个元素连接起来. 图的概念和基本性质 图(graph):图(graph ...
- 二叉树第i层中的所有结点_讲透学烂二叉树(二):图中树的定义amp;各类型树的特征分析...
日常中我们见到的二叉树应用有,Java集合中的TreeSet和TreeMap,C++ STL中的set.map,以及Linux虚拟内存的管理,以及B-Tree,B+-Tree在文件系统,都是通过红黑树 ...
- java le下载安装_跟老杨学java系列(五) JDK的安装与配置
跟老杨学java系列(五) JDK的安装与配置 提示:本节内容对于java入门是非常关键的,对于刚接触java的同学一定要认真学习,欢迎大家留言探讨技术问题.其他问题概不回复. (书接上回)上节课程我 ...
- 【译学】数据分析手册学习02:数据的定义、分类、策略 【实例应用情境】
数据分析手册翻译及读后感, 英文原版资料可下载:introduction to data analysis handbook 数据的定义 数据是- 1973年<韦伯斯特新学院词典>将数据定 ...
- 合肥工业大学—SQL Server数据库实验九:视图的定义与使用
视图的定义与使用 1. 定义视图 2. 使用视图 1. 定义视图 在EDUC数据库中,已Student.Course 和SC表为基础完成一下视图定义: 1) 定义视图V_SC_G:该视图包含Stude ...
- 每天学点SpringCloud(八):使用Apollo做配置中心
版权声明:本文为博主原创文章,未经博主允许不得转载.博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/8160 ...
- 想学3D建模?适合安装3dsmax软件的笔记本配置
运行3dsmax需要较高笔记本配置,中高端游戏本也能带动3dsmax,用来学习足够.笔记本配置太差3dsmax会崩溃,什么样的笔记本电脑适合运行3dsmax? 一.CPU 3dsmax建模.实时预览除 ...
最新文章
- AcWing 734. 能量石 (01背包)+(贪心 - 领项交换)
- php 快速导出csv,php快速导出csv格式数据程序代码
- Elasticsearch7.x 安装及集群的配置
- 使用 Jwt-Auth 实现 API 用户认证以及无痛刷新访问令牌
- day for people, night for material
- Spring常问的面试
- 游戏打包过程枯燥且繁琐,如何提升打包效率?
- 有线电视的现状与发展,全国一网与广电5G一体化建设
- VPP:Bihash简介
- Vue页面返回顶部功能实现
- NEFUCTF校赛-题解
- java反编译luyten使用
- 计算机专业自考本需要学哪几门,自考本科都考哪些科目?一次考几门?
- Winmail反垃圾邮件指南:使用Winmail时,比较有效的过滤垃圾邮件的设置
- AutoCAD、Revit、Maya、3dsMax出现许可管理器不起作用
- vue实现下拉二级联动_vue实现二级联动效果
- iOS小技能:安全措施
- 0范数,1范数,2范数
- 行存储和列存储小介绍
- 心智模式:心智模式的更多资料