设为首页 收藏本站
查看: 1018|回复: 0

[经验分享] puppet多环境配置(puppet自动化系列2)

[复制链接]

尚未签到

发表于 2015-9-16 10:24:49 | 显示全部楼层 |阅读模式
三、Puppet多环境部署

我们为puppetmaster建立3个环境,它们分别是开发环境(jqdev)、测试环境(jqtest)、生产环境(jqprd).

3.1 配置puppet.conf

  在标签[master]中添加environments环境,其次创建对应的环境标签及配置创建目录
  [iyunv@puppetmaster1 puppet]# cd /etc/puppet/
  [iyunv@puppetmaster1 puppet]# mkdir -p environments/jqdev
  [iyunv@puppetmaster1 environments]# mkdir -p jqdev/{application/modules,environment/modules}
  [iyunv@puppetmaster1 puppet]# mkdir -p environments/jqprd
  [iyunv@puppetmaster1 environments]# mkdir -p jqprd/{application/modules,environment/modules}
  [iyunv@puppetmaster1 puppet]# mkdir -p environments/jqtest
  [iyunv@puppetmaster1 environments]# mkdir -p jqtest/{application/modules,environment/modules}
  移动默认环境modules中的配置到jqprd对应的环境中
  其中puppet和yum模块属于基础环境模块,motd属于应用环境模块,关于此类puppet,yum,motd模块方案,请参见kisspuppet.com。

[iyunv@puppetmaster1 environments]# mv /etc/puppet/modules/puppet jqprd/environment/modules/
[iyunv@puppetmaster1 environments]# mv /etc/puppet/modules/yum  jqprd/environment/modules/
[iyunv@puppetmaster1 environments]# mv /etc/puppet/modules/motd jqprd/application/modules/
  复制manifests文件至jqprd环境中
  [iyunv@puppetmaster1 environments]# cp /etc/puppet/manifests jqprd/ -r
  
  删除掉默认环境manifests中site.pp文件内容
  因为模块已经移除,其次默认环境production已经不再使用了。
  [iyunv@puppetmaster environments]# >/etc/puppet/manifests/site.pp
  
  创建fileserverconfig文件

[iyunv@puppetmaster ~]# cp /etc/puppet/fileserver.conf{,.jqdev}
[iyunv@puppetmaster ~]# cp /etc/puppet/fileserver.conf{,.jqtest}
[iyunv@puppetmaster ~]# cp /etc/puppet/fileserver.conf{,.jqprd}
[iyunv@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配置文件
  [iyunv@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服务

[iyunv@puppetmaster1 ~]# /etc/init.d/puppetmaster restart
Stopping puppetmaster:                                     [  OK  ]
Starting puppetmaster:                                     [  OK  ]
  
  
  在客户端测试
  [iyunv@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的版本,多环境变量,配置有变更,详情如下:
  彻底搞定。详情如下:
[iyunv@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下的配置文件如下:
[iyunv@pm01 jqprd]# pwd
/etc/puppet/environments/jqprd
[iyunv@pm01 jqprd]# cat environment.conf
modulepath =
$basemodulepath:/etc/puppet/environments/jqprd/environment/modules:/etc/puppet/environments/jqprd/application/modules
树状结构如下:
[iyunv@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
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-114348-1-1.html 上篇帖子: [翻译]用 Puppet 搭建易管理的服务器基础架构(2) 下篇帖子: puppet使用方法总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表