Puppet Dashboard是由支持Puppet开发的公司Puppetlabs创建的,是Ruby on Rails程序。可以作为一个ENC(外部节点分类器)以及一个报告工具,并且正在逐渐成为一个包含许多Puppet新功能的集成界面,例如审计和资源管理功能。 Puppet Dashboard是一个Ruby on Rails程序,用于显示Puppet master和agent的相关信息。它允许你查看从一个或多个Puppet master汇总的图形和报告数据。它同时从一个或者多个Puppet master上收集来自于Puppet agent的资产数据(主机的Fact和其他信息)。最后,它能作为一个ENC来配置Puppet节点,并指定这些节点上的类和参数。
puppet dashboard的配置:
在master端
安装所需的软件包
yum install puppet-dashboard-1.2.23-1.el6.noarch.rpm mysql-server rubygem-rake-0.8.7-2.1.el6.noarch.rpm ruby-mysql-2.8.2-1.el6.x86_64.rpm -y
配置mysql数据库:
/etc/init.d/mysqld start mysql> CREATE DATABASE dashboard_production CHARACTER SET utf8; mysql> CREATE USER ‘dashboard‘@‘localhost‘ IDENTIFIED BY ‘westos‘; mysql> GRANT ALL PRIVILEGES ON dashboard_production.* TO ‘dashboard‘@‘localhost‘; vim /usr/share/puppet-dashboard/config/database.yml #这里只使用了生产环境配置 production: database: dashboard_production username: dashboard password: westos encoding: utf8 adapter: mysql cd /usr/share/puppet-dashboard/config rake RAILS_ENV=production db:migrate #建立 dashboard 所需的数据库和表
修改puppet-dashboard的时区
vim /usr/share/puppet-dashboard/config/settings.yml time_zone: ‘Beijing‘
使用下面这个指令可以查看可用的时区
rake time:zones:local
/etc/init.d/puppet-dashboard start
chmod 666 /usr/share/puppet-dashboard/log/production.log /etc/init.d/puppet-dashboard-workers start
设置报告汇总
vim /etc/puppet/puppet.conf [main] reports = http reporturl=http://172.25.254.1:3000/reports /etc/puppetmaster reload
登录http://172.25.9.1:3000进入到检测页面
此时还没有报告生成我们需要在client端打开报告同步以此数据就可以看到信息了
vim /etc/puppet/puppet.conf [agent] report =true puppet agent --server=server1.example.com --no-daemonize -vt #进行手动同步puppet未在后台运行的情况下
之后再次刷新网站就能看到报告了
点击节点就能看到具体的日志信息了
client端自动同步的情况下要在client端进行以下操作:
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 #默认同步的时间这里没有打开而是在下面的文件配置的
修改默认同步的时间
vim /etc/puppet/puppet.conf [agent] runinterval =300 #单位为秒 /etc/init.d/puppet start
nginx+passenger:
puppet 默认使用基于 Ruby 的 WEBRickHTTP 来处理 HTTPS 请求,但是这些语言的内置webserver目的仅是为了方便调试代码,本身的性能十分的差,而使用常见的Web Server软件就可以显著的提高单台的puppetmaster的性能。这里就是使用的是Nginx去提高puppetmaster的性能
安装所需的依赖性:
yum install -y gcc gcc-c++ curl-devel zlib-devel openssl-devel ruby-devel pcre-devel gem install passenger-5.0.15.gem rack-1.6.4.gem #没有联网的情况下需要gem包,联网的情况下直接 gem install rack passenger passenger-install-nginx-module #脚本会自动安装 nginx 支持,按提示操作
安装好后更改nginx的配置
vim /opt/nginx/conf/nginx.conf server { listen 8140; server_name server1.example.com; root /etc/puppet/rack/public; passenger_enabled on; passenger_set_header X_CLIENT_DN $ssl_client_s_dn; passenger_set_header X_CLIENT_VERIFY $ssl_client_verify; ssl on; ssl_session_timeout 5m; ssl_certificate /var/lib/puppet/ssl/certs/server1.example.com.pem; ssl_certificate_key /var/lib/puppet/ssl/private_keys/server1.example.com.pem; ssl_client_certificate /var/lib/puppet/ssl/ca/ca_crt.pem; ssl_crl /var/lib/puppet/ssl/ca/ca_crl.pem; ssl_verify_client optional; ssl_ciphers SSLv2:-LOW:-EXPORT:RC4+RSA; ssl_prefer_server_ciphers on; ssl_verify_depth 1; ssl_session_cache shared:SSL:128m; } mkdir /etc/puppet/rack/{public,tmp} -p cp /usr/share/puppet/ext/rack/config.ru /etc/puppet/rack/ chown puppet.puppet -R /etc/puppet/rack/ /etc/init.d/puppetmaster stop #puppetmaster不需要再启动了,nginx启动后会自动调用puppetmaster /opt/nginx/sbin/nginx -t #检测 nginx /opt/nginx/sbin/nginx
监测:在client端可以进行同步就证明成功了。