we23213 发表于 2014-11-17 08:49:19

Puppet整合Dashboard(一):Puppet整合Dashboard

一、安装配置Dshboard
1、功能说明

Puppet Dasshboard是由支持Puppet开发的公司Puppetlabs创建的,是Ruby on Rails程序;
可以作为一个ENC(外部节点分类器)以及一个报告工具,包含许多Puppet新功能的集成界面,例如审计和资源管理功能;
能显示Puppet master和agent的相关信息;
它能作为一个ENC来配置Puppet节点,并指定这些节点上的类和参数;
Puppet Dashboard(1.2.3)程序目前版本只支持Ruby 1.8.x,以及只支持MySQL作为数据库后端。
官方配置指南:https://docs.puppetlabs.com/dashboard/manual/1.2/
2、安装软件包
安装rubygem-rake

1
2
# rpm -ivh ftp://rpmfind.net/linux/centos/6 ... -2.1.el6.noarch.rpm
# yum install -y ruby-mysql mysql-server puppet-dashboard




3、配置mysql

1
2
3
4
5
6
7
8
9
10
11
12
# service mysqld start
# chkconfig mysqld on
# mysqladmin -uroot password 123456
# mysql -p123456
mysql> create database dashboard character set utf8;
mysql> grant all on dashboard.* to 'dashboard'@'localhost' identified by "123456";
mysql> flush privileges;
mysql> quit
# vi /etc/my.cnf

max_allowed_packet=32M
# service mysqld restart




4、配置dashboard

1
2
3
4
5
6
7
8
9
10
11
12
# cd /usr/share/puppet-dashboard/
# vi config/database.yml
production:   
database: dashboard   
username: dashboard   
password: 123456   
encoding: utf8   
adapter: mysql
# vi config/settings.yml
time_zone: 'Asia/Shanghai'
# rake gems:refresh_specs
# rake RAILS_ENV=production db:migrate




   使用合适的表填充数据库,环境变量RAILS_ENV=production告诉Ruby on Rails我们工作在生产环境。

1
# service puppet-dashboard start




5、检查数据
查看导入数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# mysql -udashboard -p123456
mysql> use dashboard;
mysql> show tables;
+------------------------------+
| Tables_in_dashboard          |
+------------------------------+
| delayed_job_failures         |
| delayed_jobs               |
| metrics                      |
| node_class_memberships       |
| node_classes               |
| node_group_class_memberships |
| node_group_edges             |
| node_group_memberships       |
| node_groups                  |
| nodes                        |
| old_reports                  |
| parameters                   |
| report_logs                  |
| reports                      |
| resource_events            |
| resource_statuses            |
| schema_migrations            |
| timeline_events            |
+------------------------------+
18 rows in set (0.00 sec)
mysql> quit




查看工作状态:

1
2
3
4
5
6
7
8
9
10
11
12
# cd /usr/share/puppet-dashboard/
# ./script/server -e production
=> Booting WEBrick
=> Rails 2.3.17 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
INFOWEBrick 1.3.1
INFOruby 1.8.7 (2011-06-30)
INFOWEBrick::HTTPServer#start: pid=36461 port=3000
^C INFOgoing to shutdown ...
INFOWEBrick::HTTPServer#start done.
Exiting




   可以看到dashboard默认运行在WEBrick的3000端口,按Ctrl+C关闭服务,下面改成apache运行。

二、dashboard整合apache
1、配置
    参考示例:/usr/share/puppet-dashboard/ext/passenger/dashboard-vhost.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# vi /etc/httpd/conf.d/dashboard.conf
Listen 8141

      DocumentRoot /usr/share/puppet-dashboard/public
      
                Options None
                AllowOverride AuthConfig
                Order allow,deny
                allow from all
      
      ErrorLog /var/log/httpd/dashboard.error.log
      LogLevel warn
      CustomLog /var/log/httpd/dashboard.access.log combined





    不是在配置passenger.conf上面修改,而是新建的专门给dashboard的配置,端口也不一样。

2、服务
    关闭WEBRick使用apache代替

1
2
3
4
5
# service puppet-dashboard stop
# service puppetmaster stop
# service httpd restart
# iptables -I INPUT -p tcp --dport 8141 -j ACCEPT
# service iptables save




3、检查
    不能显示页面:http://10.188.1.73:3000/
    可以正常显示页面:http://10.188.1.73:8141/




1
# tailf /var/log/httpd/dashboard.access.log






1
# puppet agent --server puppet.ewin.com --test






三、Puppet整合Dashboard
1、手动导入

1
2
3
4
5
# cd /usr/share/puppet-dashboard/
# rake RAILS_ENV=production reports:import
Importing 13456 reports from /var/lib/puppet/reports in the background
Importing:   100% |#########################################| Time: 00:06:27
13456 of 13456 reports queued




    puppet报告保存目录/var/lib/puppet/reports/
    页面左上角“Backgroud Tasks”表示正在等待的任务,但没有生效,使用如下命令启动修改

1
# env RAILS_ENV=production script/delayed_job -p dashboard -n 1 -m start




2、自动导入(整合)
    Linux客户端配置:

1
2
3
# vi /etc/puppet/puppet.conf

report = true#从2.7.0版本开始默认开启




    Windows客户端配置:

1
2
D:Program FilesPuppet LabsPuppetpuppetextedhatpuppet.conf
C:ProgramDataPuppetLabspuppetetcpuppet.conf




    两个配置文件都没有设置report=true但报告正常,待解~~
    Puppet服务端配置(关键):

1
2
3
4
# vi /etc/puppet/puppet.conf

reports = http,store          #如果不加上store,将不再在/var/lib/puppet/reports/存储报告
reporturl = http://localhost:8141/reports




    如果要取消puppet集成dashboard,注消上面两行即可。
    如果是在puppet服务端直接修改,别忘了提交到SVN,因此建议养成在管理机器上修改的习惯:

1
# svn ci /etc/puppet/ -m "update reports url"




    启动服务:

1
2
3
# service httpd restart
# cd /usr/share/puppet-dashboard/
# rake RAILS_ENV=production jobs:work#使任务生效,只需要运行一次




3、其他命令
    优化数据库:

1
# rake RAILS_ENV=production db:raw:optimize




    删除报告:

1
2
3
# rake RAILS_ENV=production reports:prune upto=1 unit=mon
Deleting reports before 2014-10-15 08:38 UTC...
Deleted 0 reports.




      upto=1 unit=mon表示1个月前的报告,可用day表示天。

1
   查看报告:





      红色表示运行失败
      橙色表示等待运行
      蓝色表示运行成功及改变的信息
      绿色表示运行成功但什么都没做

页: [1]
查看完整版本: Puppet整合Dashboard(一):Puppet整合Dashboard