puppet多环境配置(puppet自动化系列2)
三、Puppet多环境部署
我们为puppetmaster建立3个环境,它们分别是开发环境(jqdev)、测试环境(jqtest)、生产环境(jqprd).
3.1 配置puppet.conf
在标签[master]中添加environments环境,其次创建对应的环境标签及配置创建目录
[root@puppetmaster1 puppet]# cd /etc/puppet/
[root@puppetmaster1 puppet]# mkdir -p environments/jqdev
[root@puppetmaster1 environments]# mkdir -p jqdev/{application/modules,environment/modules}
[root@puppetmaster1 puppet]# mkdir -p environments/jqprd
[root@puppetmaster1 environments]# mkdir -p jqprd/{application/modules,environment/modules}
[root@puppetmaster1 puppet]# mkdir -p environments/jqtest
[root@puppetmaster1 environments]# mkdir -p jqtest/{application/modules,environment/modules}
移动默认环境modules中的配置到jqprd对应的环境中
其中puppet和yum模块属于基础环境模块,motd属于应用环境模块,关于此类puppet,yum,motd模块方案,请参见kisspuppet.com。
[root@puppetmaster1 environments]# mv /etc/puppet/modules/puppet jqprd/environment/modules/
[root@puppetmaster1 environments]# mv /etc/puppet/modules/yum jqprd/environment/modules/
[root@puppetmaster1 environments]# mv /etc/puppet/modules/motd jqprd/application/modules/
复制manifests文件至jqprd环境中
[root@puppetmaster1 environments]# cp /etc/puppet/manifests jqprd/ -r
删除掉默认环境manifests中site.pp文件内容
因为模块已经移除,其次默认环境production已经不再使用了。
[root@puppetmaster environments]# >/etc/puppet/manifests/site.pp
创建fileserverconfig文件
[root@puppetmaster ~]# cp /etc/puppet/fileserver.conf{,.jqdev}
[root@puppetmaster ~]# cp /etc/puppet/fileserver.conf{,.jqtest}
[root@puppetmaster ~]# cp /etc/puppet/fileserver.conf{,.jqprd}
[root@puppetmaster ~]# ll /etc/puppet/
total 88
-rw-r--r-- 1 root root 2569 Jan 7 07:51 auth.conf
-rw-r--r-- 1 root root 17 Mar 9 17:54 autosign.conf.bak
drwxr-xr-x 5 root root 4096 Mar 27 22:33 environments
-rw-r--r-- 1 root root 381 Jan 7 07:49 fileserver.conf
-rw-r--r-- 1 root root 381 Mar 27 22:46 fileserver.conf.jqdev #指向jqdev环境
-rw-r--r-- 1 root root 381 Mar 27 22:46 fileserver.conf.jqprd #指向jqmq环境
-rw-r--r-- 1 root root 381 Mar 27 22:46 fileserver.conf.jqtest #指向jqdev环境
drwxr-xr-x 2 root root 4096 Mar 25 05:23 manifests
drwxr-xr-x 2 root root 4096 Mar 27 22:40 modules
-rw-r--r-- 1 root root 1063 Mar 27 21:55 puppet.conf
-rw-r--r-- 1 root root 853 Mar 9 00:48 puppet.conf.bak
-rw-r--r-- 1 root root 42031 Mar 9 03:25 puppet.conf.out
最后配置puppetmaster配置文件
[root@puppetmaster1 puppet]# grep -v "#" ./puppet.conf
[main]
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
[agent]
classfile = $vardir/classes.txt
localconfig = $vardir/localconfig
server = puppetmaster1.jq.com
certname = puppetmaster1_cert.jq.com
[master]
certname = puppetmaster1.jq.com
environments = jqdev,jqtest,jqprd
basemodulepath = /etc/puppet/modules:/usr/share/puppet/modules
[jqdev]
modulepath = $confdir/environments/jqdev/environment/modules:$confdir/environments/jqdev/application/module
manifest = $confdir/environments/jqdev/manifests/site.pp
fileserverconfig = /etc/puppet/fileserver.conf.jqdev
[jqtest]
modulepath = $confdir/environments/jqtest/environment/modules:$confdir/environments/jqtest/application/modules
manifest = $confdir/environments/jqtest/manifests/site.pp
fileserverconfig = /etc/puppet/fileserver.conf.jqtest
[jqprd]
modulepath = $confdir/environments/jqprd/environment/modules:$confdir/environments/jqprd/application/modules
manifest = $confdir/environments/jqprd/manifests/site.pp
fileserverconfig = /etc/puppet/fileserver.conf.jqprd
重启puppetmaster服务
[root@puppetmaster1 ~]# /etc/init.d/puppetmaster restart
Stopping puppetmaster: [ OK ]
Starting puppetmaster: [ OK ]
在客户端测试
[root@ag1 yum.repos.d]# puppet agent -t --environment=jqprd
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for ag1_cert.jq.com
Info: Applying configuration version '1419413649'
本系统puppet均根据kisspuppet的博客(http://kisspuppet.com/)进行实验,非常感谢!!!
3.7的版本,多环境变量,配置有变更,详情如下:
彻底搞定。详情如下:
[root@pm01 jqprd]# grep -v "#" /etc/puppet/puppet.conf
[main]
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
privatekeydir = $ssldir/private_keys { group = service }
hostprivkey = $privatekeydir/$certname.pem { mode = 640 }
environment_timeout = 2s
environmentpath = $confdir/environments
basemodulepath = $config/modules:/usr/share/puppet/modules
[agent]
classfile = $vardir/classes.txt
localconfig = $vardir/localconfig
server = pm01.jq.com
certname = pm01.jq.com
pluginsync = true
environment = jqprd
[master]
certname = pm01.jq.com
ssl_client_verify_header = HTTP_X_CLIENT_VERIFY
ssl_client_header = HTTP_X_CLIENT_DN
reports = foreman
external_nodes = /etc/puppet/node.rb
node_terminus = exec
jqprd下的配置文件如下:
[root@pm01 jqprd]# pwd
/etc/puppet/environments/jqprd
[root@pm01 jqprd]# cat environment.conf
modulepath =
$basemodulepath:/etc/puppet/environments/jqprd/environment/modules:/etc/puppet/environments/jqprd/application/modules
树状结构如下:
[root@pm01 environments]# tree ./jqprd/
./jqprd/
├── application
│ └── modules
│ └── motd
│ ├── files
│ │ └── etc
│ │ └── motd
│ ├── manifests
│ │ └── init.pp
│ └── templates
├── environment
│ └── modules
│ ├── facts
│ │ ├── files
│ │ │ └── facts.d
│ │ │ ├── ag01.txt
│ │ │ ├── ag02.txt
│ │ │ └── pm01.txt
│ │ ├── lib
│ │ │ └── facter
│ │ │ └── hwclock.rb
│ │ ├── manifests
│ │ │ ├── config.pp
│ │ │ ├── exec.pp
│ │ │ └── init.pp
│ │ └── templates
│ ├── puppet
│ │ ├── files
│ │ ├── manifests
│ │ │ ├── config.pp
│ │ │ ├── init.pp
│ │ │ ├── install.pp
│ │ │ ├── params.pp
│ │ │ ├── params.pp.bak
│ │ │ └── service.pp
│ │ └── templates
│ │ └── puppet.conf.erb
│ └── yum
│ ├── files
│ │ ├── etc
│ │ │ └── yum.conf
│ │ └── PM-GPG-KEY
│ │ └── RPM-GPG-KEY-CentOS-6
│ ├── manifests
│ │ ├── config.pp
│ │ ├── init.pp
│ │ ├── install.pp
│ │ └── params.pp
│ └── templates
├── environment.conf
├── hiera
│ ├── ag01.yaml
│ ├── ag02.yaml
│ ├── ag2.yaml.bak
│ ├── common.yaml
│ ├── pm01.yaml
│ └── RedHat.yaml
└── manifests
├── site.pp
└── site.pp.bak
28 directories, 31 files
puppet多环境配置(puppet自动化系列2)的更多相关文章
- Cucumber(1) —— 环境配置
目录 学习资料 cucumber简介 cucumber环境配置 学习资料 1.cucumber官方学习网站 cucumber简介 1.cucumber是一种支持BBD(behavior-driven ...
- puppet初始化安装和配置(puppet自动化系列1)
一.服务器规划 以下均直接yum安装最新版. 服务器操作系统为centos6.2 Puppetmaster1 10.168.32.116 puppstmaster1.jq.com Puppetmast ...
- 自动化运维工具之Puppet master/agent模型、站点清单和puppet多环境设定
前文我们了解了puppe中模块的使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14086315.html:今天我来了解下puppet的master/age ...
- Puppet master nginx 扩展提升性能(puppet自动化系列4)
puppet使用SSL(https)协议来进行通讯,默认情况下,puppet server端使用基于Ruby的WEBRick HTTP服务器.由于WEBRick HTTP服务器在处理agent端的性能 ...
- puppet插件fact和hiera(puppet自动化系列3)
四.Fact插件 4.1 使用pluginsync进行发布 这种方法比较特殊,节点factpath目录里除了编写好的rb文件之外,还需要在puppet模块中引用,运行一次之后才会转换成fact.通常在 ...
- Puppet安装与配置简介(附视频教程)
Puppet是一种Linux平台的集中配置管理系统,他可管理配置文件.用户.cron任务.软件包.系统服务等.puppet把这些系统实体称之为资源,puppet采用C/S星状的结构,所有的客户端和一个 ...
- puppet运维配置实列
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABQkAAAGBCAIAAABKMKAEAAAgAElEQVR4nOydeXwU9cH/t2o9WutR+7
- puppet yum安装配置,简单证书维护
Puppet学习之puppet的安装和配置 一.Puppet简介 Puppet基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,最新版本 ...
- 配置puppet的主机端和客户端的自动认证
配置puppet的主机端和客户端的自动认证 author:headsen chen 2017-11-01 17:44:56 个人原创,转载请注明作者,出处,否则依法追究法律责任 1,先在主机 ...
随机推荐
- jsp联合javascript操作html
1 执行的先后顺序 jsp先处理,给页面里面的变量赋值等等.然后整个页面发送给客户端,在客户端执行javascipt相关的代码. 2 jsp文件的构成 html文件+java程序片段+jsp标签=js ...
- 让intellij挂在异常处,特别是出现null pointer的地方
1 在Intellij中设置java exception breakpoint 在调试模式下,run->view breakpoints 在java exception breakpoints- ...
- Vue学习-基础语法
Vue v-if指令 Vue.js的指令是以v-开头的,它们作用于HTML元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会为绑定的目标元素添加一些特殊的行为,我们可以将指令看作特殊的HTM ...
- 变分推断(Variational Inference)
变分 对于普通的函数f(x),我们可以认为f是一个关于x的一个实数算子,其作用是将实数x映射到实数f(x).那么类比这种模式,假设存在函数算子F,它是关于f(x)的函数算子,可以将f(x)映射成实数F ...
- lazyload.js参数说明
lazyload.js是jQuery的一个插件,可以用来实现图片异步加载. lazyload插件如何添加参数: $("img").lazyload({ //参数添加到此位置,建议一 ...
- HDU - 1800 Flying to the Mars 【贪心】
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1800 题意 给出N个人的 level 然后 高的level 的 人 是可以携带 比他低level 的人 ...
- 【LeetCode】数组排列问题(permutations)(附加next_permutation解析)
描述 Given a collection of distinct integers, return all possible permutations. Example: Input: [1,2,3 ...
- while 读取文件内容
exec < filename while read line;do echo $line done 方法1 while read line;do echo $line done<$ 方法 ...
- EntityFramework 学习 一 并发
EntityFramework默认支持乐观并发 乐观并发中,实体加载后如果都没发生变化,ef保存该实体 首先,我们需要一个rowversion列为了控制student实体的并发问题,rowversio ...
- Python- 贪婪与非贪婪
python运行匹配时,如果没有人为限定,默认是贪婪模式. import re a = 'python 22222java34bigdata' r = re.findall('[a-z]{3}',a) ...