# Author:fairylly
Puppet Dashboard是GUI(图形用户界面)方式管理puppet,可以查看puppet运行日志。
安装过程中,一直追求使用新版,导致安装配置一直出错,重装了好几次才成功,一定要注意相互匹配的版本才是安装成功的前提。
1、安装依赖
2 RubyGems
2 Rake version 0.8.3 or newer
2 MySQL database server version 5.x
2 Ruby-MySQL bindings version 2.7.x or 2.8.x
#gem source -r http://rubygems.org/ \\删除默认的源
#gem source -r http://production.s3.rubygems.org/
#gem sources -a http://ruby.taobao.org/ \\由于国内网络原因,导致rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败,所以使用淘宝提供的镜像
Rubygems
下载:
http://files.rubyforge.vm.bytemark.co.uk/rubygems/rubygems-1.8.25.tgz
Rubygems安装:
# tar xzvf rubygems-1.8.25.tgz
# cd rubygems-1.8.25
# ruby setup.rb
# gem -v
1.8.25
注:原来装了2.1.7版本,dashboard在准备架构:rake RAILS_ENV=production db:migrate时,会出错,具体见问题记录6;
Rake
1)直接安装:
# # gem install rake -v 0.8.7
注:原来装了10.1.0版本太高,会有问题;
Rails
安装:
# gem install rails -v 3.2.15
注:直接使用gem install rails安装4.0版本,会要求ruby版本>=1.9.3
activesupport requires Ruby version >= 1.9.3
安装rails过程中,如果有提示:make: *** [atomic_reference.o] Error 1
则先进行:# gem install atomic -- --with-cflags=-march=i686
具体见:问题记录8;
Mysql
版本确认:
# mysql -V
mysql Ver 14.12 Distrib 5.0.95, for redhat-linux-gnu (i386) using readline 5.1
安装方法:yum install -y mysql mysql-server mysql-devel
Ruby-mysql
下载:
ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/dibo2010:/buildservice/CentOS_CentOS-5/i386/ruby-mysql-2.8.1-9.1.i386.rpm
安装:
# yum install -y libruby
# rpm -ivh ruby-mysql-2.8.1-9.1.i386.rpm
mysql的gem模块
# gem install mysql
2、安装dashboard
Dashboard下载:
https://downloads.puppetlabs.com/dashboard/
安装:
# tar xzvf puppet-dashboard-1.2.23.tar.gz
# mv puppet-dashboard-1.2.23 /opt/puppet-dashboard
# groupadd puppet-dashboard
# useradd puppet-dashboard -g puppet-dashboard
# chown -R puppet-dashboard:puppet-dashboard /opt/puppet-dashboard
3、配置dashboard
# cd /opt/puppet-dashboard/config
# cp -af database.yml.example database.yml
# cp -af settings.yml.example settings.yml
database.yml包含生产(production)、开发(development)、测试环境(test);
我们使用生产环境,所以在database.yml以下位置修改:
production:
database: dashboard_production
username: dashboard
password: dashboard
encoding: utf8
adapter: mysql
4、创建dashboard数据库
mysql> CREATE DATABASE dashboard_production CHARACTER SET utf8;
mysql> CREATE USER 'dashboard'@'localhost' IDENTIFIED BY 'dashboard';
mysql> GRANT ALL PRIVILEGES ON dashboard_production.* TO 'dashboard'@'localhost';
mysql> flush privileges;
5、修改mysql最大数据包大小配置
Dashboard在罕见情况下,有可能发送一行17M的数据,为了确保正常运行,修改mysql最大数据包大小配置:
# vi /etc/my.cnf
# Allowing 32MB allows an occasional 17MB row with plenty of spare room max_allowed_packet = 32M
6、准备架构
一旦dashboard有了它的数据库,它就可以创建表,但是这必须手工完成的:db:migrate的rake任务。对于典型的production生产环境中使用的:
# rake RAILS_ENV=production db:migrate
7、启动bashboard
# sudo -u puppet-dashboard ./script/server -e production
启动后,可以使用:http://dashboardserver:3000进行访问;
8、配置puppet发送报告
Puppet客户端:
# puppet.conf (on each agent)
[agent]
report = true
Puppet服务端:
# puppet.conf (on puppet master)
[master]
reports = store,http
reporturl = http://dashboardserver:3000/reports/upload
注:服务端修改配置后,需要重启服务;
修改显示的时间:
默认为UTC
# vi /opt/puppet-dashboard/config/environment.rb
#config.time_zone = 'UTC'
config.time_zone = 'Beijing'
配置后,如果已启动puppet-dashboard,则需要重启puppet-dashboard;
9、导入已存在报告
# rake RAILS_ENV=production reports:import
Importing 6 reports from /var/lib/puppet/reports in the background
Importing: 100% |###########################################################################################################################################| Time: 00:00:01
6 of 6 reports queued