vim /usr/share/puppet-dashboard/config/database.yml
参考资料:刘宇第十八章:《puppet实战》
(I)安装相关依赖包
1 添加EPEL包管理器:
sudo rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm
2 安装依赖软件包
yum install -y mysql-server ri rdoc
3 安装相关的软件RubyGem
注意:开始安装官方最新的版本(2.4.1)结果到后面报错。google之后,发现时版本不对,所以老老实实用了刘宇书上的提供的版本.
cd /tmp
wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz
tar -zxvf rubygems-1.3.7.tgz
cd rubygems-1.3.7
ruby setup.rb
4安装rake
gem install rake
--------------------------------------------------------------------------------------------------------------------------------------------
(II)安装Dashboard软件包
1. 通过RPM包安装puppet Dashboard,添加Yum仓库
rpm -ivh http://yum.puppetlabs.com/el/6Server/products/x86_64/puppetlabs-release-6-7.noarch.rpm
安装成功后会有PuppetLabs仓库配置文件/etc/yum.repos.d/puppetlabs.repo存在。
2.安装Dashboard
yum install -y puppet-dashboard
(III)配置Dashboard
1.配置mysql数据库
创建dashboard数据库和用户
mysql
create database dashboard default charset utf8;
grant all privileges on dashboard.* to 'lixw'@'localhost' identified by '1';
flush privileges;
2. 编辑YAMl配置文
编辑/usr/share/puppet-dashboard/config/database.yml
vim /usr/share/puppet-dashboard/config/database.yml
production:
database: dashboard
username: lixw
password: 1
encoding: utf8
adapter: mysql
3. 用ruby的rake命令创建数据库和创建表
cd /usr/share/puppet-dashboard/config/
rake RAILS_ENV=production db:migrate
在mysql命令行中查看:
use dashboard;
show tables;
4. 运行puppet-dashboard
/etc/init.d/puppet-dashboard start
或者
/usr/share/puppet-dashboard/script/server -e production
这样将用3000端口运行自带的webrick服务器。
5.在本地主机(其他主机访问的话要将0.0.0.0替换成安装Dashboard宿主主机的IP地址)的浏览器中输入http://0.0.0.0:3000/,回车显示如下
II集成Dashboard
1.导入现有报告
cd /usr/share/puppet-dashboard
sudo rake RAILS_ENV=production reports:import
注意:1).DEPRECATION WARNING: Rake tasks in vendor/plugins/delayed_job/tasks are deprecated. Use lib/tasks instead. (called from /usr/share/puppet-dashboard/vendor/rails/railties/lib/tasks/rails.rb:10)
rake aborted!
Don't know how to build task 'RAILS_ENV' 错误是因为master端puppet.conf中[master]缺少
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY
补上就OK了。
2). RAILS_ENV=production之间不要有空格(即RAILS_ENV= production)会报错!
这时候Dashboard面板
2.开启报告
上图中有145pending tasks,但是【nodes】中“0 All”,说明有些即将发生的任务,但是没有生效,需要使用下面的命令启动修改:
env RAILS_ENV=production script/delayed_job -p dashboard -n 1 -m start
PS:要是已有多于一个进程正在运行的错误:
env RAILS_ENV=production script/delayed_job -p dashboard -n 1 -m restart
最后使用下面的命令使任务生效:
rake RAILS_ENV=production jobs:work
PS:之前执行env RAILS_ENV=production script/delayed_job -p dashboard -n 1 -m start后正常,但是按理说执行命令rake RAILS_ENV=production jobs:work之后,就应该显示正常的报告,但是实际情况一直是[Nodes] 里面为“0 ALL”,现在我不是很肯定是什么原因,但是我在/etc/puppet/puppet.conf
中[master]添加了
reports = store, log, http, tagmail,rrdgraph
reporturl = http://master.domain.com:3000/reports/
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY
storeconfigs = true
autosign = true
再重启master 和 在执行dashboard 上面的rake 命令就OK了!最关键的是前面4行,而最前面两行是官网dashboard安装文档中明确要求配置的。后面的几行也是官网在介绍puppet.conf配置文件说明了的。
注意:dashboard上面的时间(默认UTC)和中国时区(CST)是对不上的需要更改:
vim /usr/share/puppet-dashboard/config/settings.yml
time_zone: 'Asia/Shanghai'(要是没有time_zone就添加这一行)
**备注**:设置的settings.yml会覆盖掉config/environment.rb中对应的配置项(config.time_zone = 'UTC')
重启puppet-Dashboard:
/etc/init.d/puppet-dashboard restart
PS:写的很好很详细的文章:http://bbs.linuxtone.org/thread-24122-1-1.html
报错:
1.
ERROR:Error installing mysql:
ERROR:Failed to build gemnative extension.
/usr/bin/ruby extconf.rbmkmf
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h
解决方案:
yum -y install gcc mysql-devel ruby-devel rubygems
gem install -y mysql -- --with-mysql-config=/usr/bin/mysql_config
2.
Starting puppet agent: /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- json (LoadError)
解决方案:
gem install json