三、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)的更多相关文章

  1. Cucumber(1) —— 环境配置

    目录 学习资料 cucumber简介 cucumber环境配置 学习资料 1.cucumber官方学习网站 cucumber简介 1.cucumber是一种支持BBD(behavior-driven ...

  2. puppet初始化安装和配置(puppet自动化系列1)

    一.服务器规划 以下均直接yum安装最新版. 服务器操作系统为centos6.2 Puppetmaster1 10.168.32.116 puppstmaster1.jq.com Puppetmast ...

  3. 自动化运维工具之Puppet master/agent模型、站点清单和puppet多环境设定

    前文我们了解了puppe中模块的使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14086315.html:今天我来了解下puppet的master/age ...

  4. Puppet master nginx 扩展提升性能(puppet自动化系列4)

    puppet使用SSL(https)协议来进行通讯,默认情况下,puppet server端使用基于Ruby的WEBRick HTTP服务器.由于WEBRick HTTP服务器在处理agent端的性能 ...

  5. puppet插件fact和hiera(puppet自动化系列3)

    四.Fact插件 4.1 使用pluginsync进行发布 这种方法比较特殊,节点factpath目录里除了编写好的rb文件之外,还需要在puppet模块中引用,运行一次之后才会转换成fact.通常在 ...

  6. Puppet安装与配置简介(附视频教程)

    Puppet是一种Linux平台的集中配置管理系统,他可管理配置文件.用户.cron任务.软件包.系统服务等.puppet把这些系统实体称之为资源,puppet采用C/S星状的结构,所有的客户端和一个 ...

  7. puppet运维配置实列

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABQkAAAGBCAIAAABKMKAEAAAgAElEQVR4nOydeXwU9cH/t2o9WutR+7

  8. puppet yum安装配置,简单证书维护

    Puppet学习之puppet的安装和配置 一.Puppet简介 Puppet基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,最新版本 ...

  9. 配置puppet的主机端和客户端的自动认证

    配置puppet的主机端和客户端的自动认证 author:headsen  chen    2017-11-01  17:44:56 个人原创,转载请注明作者,出处,否则依法追究法律责任 1,先在主机 ...

随机推荐

  1. [php]Maximum function nesting level of '100' reached错误

    今天在做后台一个模块的时候报出了这个错误. Maximum function nesting level of '100' reached 仔细分析之后发现是在类的初始化过程中(__construct ...

  2. iOS 开发之RunLoop

    概念 RunLoop 就像她的名字一样,就是跑环,就是一个死循环.是一个可以随时休眠,随时唤醒的死循环. 那么一个手机App为什么会一直运行?而且在接受到用户点击的时候,会做出反应?这些都离不开Run ...

  3. 自编码器(autoencoder)

    今天我们会来聊聊用神经网络如何进行非监督形式的学习. 也就是 autoencoder, 自编码. 压缩与解压 有一个神经网络, 它在做的事情是 接收一张图片, 然后 给它打码, 最后 再从打码后的图片 ...

  4. iOS JSON 和 Mode l转换

    MJExtension  是我们项目开发常用的一个第三方框架  很好用. https://github.com/CoderMJLee/MJExtension 映射 json  value key  直 ...

  5. [原创]java WEB学习笔记08:HttpServletRequest & ServletRequest

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  6. Demo Nec

    /* 布局 */.g-va{width:1160px;margin:0 auto;} /* visual area */ /* 模块 */.m-nav{position:relative;height ...

  7. poj 3264 Balanced Lineup【RMQ-ST查询区间最大最小值之差 +模板应用】

    题目地址:http://poj.org/problem?id=3264 Sample Input 6 3 1 7 3 4 2 5 1 5 4 6 2 2 Sample Output 6 3 0分析:标 ...

  8. 中国剩余定理的应用:猪的安家 ->福州大学 OJ

                                                                     Problem 1402 猪的安家 Accept: 984    Su ...

  9. RabbitMQ点对点的模式

    1.点对点模式  一对一模式.  一个生产者投递消息给队列 只能允许有一个消费者进行消费    如果集群的话 会进行均摊消费   服务器配置不一样 均摊就不优了 长连接 不用三次握手之类的 提高传输效 ...

  10. 算法(Algorithms)第4版 练习 1.5.8

    假设原id数组: 0 1 1 4 4 8 6 1 8 0 输入p = 5, q = 7 则输出结果会出错,最终为: 0 1 1 4 4 1 6 1 8 0 因为当id[p](id[5] = 8)被赋值 ...