五.模板应用(添加虚拟主机)

文件存放在 templates 目录中,以*.erb 结尾

1. vim /etc/puppet/modules/httpd/manifests/init.pp

 

puppet (二)_管理 

 

2.vim /etc/puppet/modules/httpd/templates/httpd_vhost.erb

puppet (二)_web_02 

 

3.vim /etc/puppet/manifests/nodes/server3.pp

puppet (二)_管理_03 

 

4.修改配置文件 vim /etc/puppet/modules/files/httpd.conf

puppet (二)_web_04 

5.测试 (记得添加虚拟主机的解析)

Client:puppet agent --server server1.example.com --no-daemonize -vt

puppet (二)_puppet_05 

puppet (二)_web_06 

 

 

六.以web的方式管理puppet ( puppet-dashboard )

1.安装软件

server

puppet (二)_puppet_07 

yum install -y puppet-dashboard-1.2.12-1.el6.noarch.rpm rubygem-rake-0.8.7-2.1.el6.noarch.rpm ruby-mysql-2.8.2-1.el6.x86_64.rpm

 

注意:

 

puppet (二)_管理_08 

 

2.创建数据库

mysql -pwestos -e  "create database dashboard_production character set utf8 "

mysql -pwestos  -e "create user dashboard@localhost identified by 'westos' "

mysql -pwestos -e "grant all on dashboard_production.* to dashboard@localhost "

 

 

3.修改配置服务

server :

 

vim /usr/share/puppet-dashboard/config/database.yml

------ 只留下生产环境配置

puppet (二)_web_09 

 

cd /usr/share/puppet-dashboard/config

rake RAILS_ENV=production db:migrate

------ 建立 dashboard 所需的数据库和表

puppet (二)_管理_10 

rake time:zones:local

----- 查看本地支持的时区

puppet (二)_puppet_11 

puppet-dashboard 默认时区不正确,需要修改:

vim  /usr/share/puppet-dashboard/config/settings.yml

puppet (二)_web_12 

 

4.启动服务

/etc/init.d/puppet-dashboard start

puppet (二)_web_13 

chmod 666 /usr/share/puppet-dashboard/log/production.log

/etc/init.d/puppet-dashboard-workers start

puppet (二)_管理_14 

5.实时报告汇总:

server :

vim /etc/puppet/puppet.conf

puppet (二)_web_15 

/etc/init.d/puppetmaster reload

 

 

Client :

vim /etc/puppet/puppet.conf

puppet (二)_puppet_16 

puppet agent --server server1.example.com --no-daemonize -vt

 

访问 172.25.23.3:3000

若配置文件没有改变,则刷新后可看到绿色部分unchanged增加

puppet (二)_web_17 

若修改了配置文件,则蓝色部分changed增加

点击server3.example.com -> Recent reports -> log 可看到日志

puppet (二)_管理_18 

 

 

 

6.在客户端安装完 puppet 后,并且认证完后,我们可以看到效果,那怎样让它自动与服务器同步呢?默认多少分钟跟服务器同步呢?怎样修改同步的时间呢,这时候我们需要配置客户端

(1) 配置 puppet 相关参数和同步时间:

vim /etc/sysconfig/puppet

PUPPET_SERVER=puppet.example.com  #puppet master 的地址

PUPPET_PORT=8140#puppet 监听端口

PUPPET_LOG=/var/log/puppet/puppet.log  #puppet 本地日志

#PUPPET_EXTRA_OPTS=--waitforcert=500 【默认同步的时间,我这里不修改这行参数】

(2) 默认配置完毕后,客户端会半个小时跟服务器同步一次,我们可以修改这个时间。

vim /etc/puppet/puppet.conf

[agent]

runinterval = 60   #代表 60 秒跟服务器同步一次

/etc/init.d/puppet reload

 

 

七.nginx+passenger

puppet 默认使用基于 Ruby 的 WEBRickHTTP 来处理 HTTPS 请求,单个服务器使用Apache/Nginx+Passenger 替换掉 WEBRickHTTP,Passenger 是用于将 Ruby 程序进行嵌入执行的Apache 模块,实现对 puppet 的负载均衡。

puppet (二)_管理_19 

 

gem install rack passenger

puppet (二)_管理_20 

 

yum install -y gcc gcc-c++ curl-devel zlib-devel openssl-devel ruby-devel

 

passenger-install-nginx-module

puppet (二)_puppet_21 

 

确保所有的都是yes,为no的则退出,安装相应软件

 

puppet (二)_管理_22 

 

脚本会自动安装 nginx 支持,按提示操作,基本就是一路回车,除了上图所示

 

 

vim /opt/nginx/conf/nginx.conf

 

puppet (二)_web_23 

......

puppet (二)_puppet_24 

 

mkdir /etc/puppet/rack/{public,tmp} -p

cp /usr/share/puppet/ext/rack/config.ru /etc/puppet/rack/

chown puppet.puppet /etc/puppet/rack/config.ru

/etc/init.d/puppetmaster stop

/opt/nginx/sbin/nginx -t

/opt/nginx/sbin/nginx

puppetmaster 不需要启动 , nginx 启动时会自动调用 puppet。

 

puppet (二)_web_25