puppet多環境配置(puppet自動化系列2)

3、Puppet多環境部署

咱們爲puppetmaster創建3個環境,它們分別是開發環境(jqdev)、測試環境(jqtest)、生產環境(jqprd).node

3.1 配置puppet.confapp

在標籤[master]中添加environments環境,其次建立對應的環境標籤及配置建立目錄測試

[root@puppetmaster1 puppet]# cd /etc/puppet/spa

[root@puppetmaster1 puppet]# mkdir -p environments/jqdevrest

[root@puppetmaster1 environments]# mkdir -p jqdev/{application/modules,environment/modules}server

[root@puppetmaster1 puppet]# mkdir -p environments/jqprdssl

[root@puppetmaster1 environments]# mkdir -p jqprd/{application/modules,environment/modules}開發

[root@puppetmaster1 puppet]# mkdir -p environments/jqtestrem

[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

相關文章
相關標籤/搜索