fablefe 发表于 2015-9-16 10:24:49

puppet多环境配置(puppet自动化系列2)

三、Puppet多环境部署

我们为puppetmaster建立3个环境,它们分别是开发环境(jqdev)、测试环境(jqtest)、生产环境(jqprd).
3.1 配置puppet.conf
  在标签中添加environments环境,其次创建对应的环境标签及配置创建目录
  # cd /etc/puppet/
  # mkdir -p environments/jqdev
  # mkdir -p jqdev/{application/modules,environment/modules}
  # mkdir -p environments/jqprd
  # mkdir -p jqprd/{application/modules,environment/modules}
  # mkdir -p environments/jqtest
  # mkdir -p jqtest/{application/modules,environment/modules}
  移动默认环境modules中的配置到jqprd对应的环境中
  其中puppet和yum模块属于基础环境模块,motd属于应用环境模块,关于此类puppet,yum,motd模块方案,请参见kisspuppet.com。

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

# cp /etc/puppet/fileserver.conf{,.jqdev}
# cp /etc/puppet/fileserver.conf{,.jqtest}
# cp /etc/puppet/fileserver.conf{,.jqprd}
# ll /etc/puppet/
total 88
-rw-r--r-- 1 root root2569 Jan7 07:51 auth.conf
-rw-r--r-- 1 root root    17 Mar9 17:54 autosign.conf.bak
drwxr-xr-x 5 root root4096 Mar 27 22:33 environments
-rw-r--r-- 1 root root   381 Jan7 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 root4096 Mar 25 05:23 manifests
drwxr-xr-x 2 root root4096 Mar 27 22:40 modules
-rw-r--r-- 1 root root1063 Mar 27 21:55 puppet.conf
-rw-r--r-- 1 root root   853 Mar9 00:48 puppet.conf.bak
-rw-r--r-- 1 root root 42031 Mar9 03:25 puppet.conf.out
  最后配置puppetmaster配置文件
  # grep -v "#" ./puppet.conf
  
      logdir = /var/log/puppet
      rundir = /var/run/puppet
      ssldir = $vardir/ssl
  
  
      classfile = $vardir/classes.txt
      localconfig = $vardir/localconfig
      server = puppetmaster1.jq.com
      certname = puppetmaster1_cert.jq.com
  
  
      certname = puppetmaster1.jq.com
      environments = jqdev,jqtest,jqprd
      basemodulepath   = /etc/puppet/modules:/usr/share/puppet/modules
  
  modulepath = $confdir/environments/jqdev/environment/modules:$confdir/environments/jqdev/application/module
  manifest = $confdir/environments/jqdev/manifests/site.pp
  fileserverconfig = /etc/puppet/fileserver.conf.jqdev
  
  
  modulepath = $confdir/environments/jqtest/environment/modules:$confdir/environments/jqtest/application/modules
  manifest = $confdir/environments/jqtest/manifests/site.pp
  fileserverconfig = /etc/puppet/fileserver.conf.jqtest
  
  
  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服务

# /etc/init.d/puppetmaster restart
Stopping puppetmaster:                                    
Starting puppetmaster:                                    
  
  
  在客户端测试
  # 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的版本,多环境变量,配置有变更,详情如下:
  彻底搞定。详情如下:
# grep -v "#" /etc/puppet/puppet.conf

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

classfile = $vardir/classes.txt
localconfig = $vardir/localconfig
server = pm01.jq.com
certname = pm01.jq.com
pluginsync = true
environment = jqprd

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下的配置文件如下:
# pwd
/etc/puppet/environments/jqprd
# cat environment.conf
modulepath =
$basemodulepath:/etc/puppet/environments/jqprd/environment/modules:/etc/puppet/environments/jqprd/application/modules
树状结构如下:
# 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]
查看完整版本: puppet多环境配置(puppet自动化系列2)