kution 发表于 2018-8-2 10:34:00

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
# rpm -ivh ftp://rpmfind.net/linux/centos/6.5/os/x86_64/Packages/rubygem-rake-0.8.7-2.1.el6.noarch.rpm  
# yum install -y ruby-mysql mysql-server puppet-dashboard
  3、配置mysql
# 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
# 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我们工作在生产环境。
# service puppet-dashboard start  5、检查数据
  查看导入数据:
# 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
  查看工作状态:
# 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
# vi /etc/httpd/conf.d/dashboard.conf  
Listen 8141
  
<VirtualHost *:8141>
  
      DocumentRoot /usr/share/puppet-dashboard/public
  
      <Directory /usr/share/puppet-dashboard/public/>
  
                Options None
  
                AllowOverride AuthConfig
  
                Order allow,deny
  
                allow from all
  
      </Directory>
  
      ErrorLog /var/log/httpd/dashboard.error.log
  
      LogLevel warn
  
      CustomLog /var/log/httpd/dashboard.access.log combined
  
</VirtualHost>
  不是在配置passenger.conf上面修改,而是新建的专门给dashboard的配置,端口也不一样。
  2、服务
  关闭WEBRick使用apache代替
# 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/

# tailf /var/log/httpd/dashboard.access.log
# puppet agent --server puppet.ewin.com --test
  三、Puppet整合Dashboard
  1、手动导入
# 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”表示正在等待的任务(将puppet传给http的reports导入dashboard),但没有生效,使用如下命令启动修改:
# env RAILS_ENV=production script/delayed_job -p dashboard -n 1 -m start  2、自动导入(整合)
  (1)Linux客户端配置:
# vi /etc/puppet/puppet.conf  

  
report = true#从2.7.0版本开始默认开启
  (2)Windows客户端配置:
D:\Program Files\Puppet Labs\Puppet\puppet\ext\redhat\puppet.conf  
C:\ProgramData\PuppetLabs\puppet\etc\puppet.conf
  两个配置文件都没有设置report=true但报告正常,待解~~
  (3)Puppet服务端配置(关键):
# vi /etc/puppet/puppet.conf  

  
reports = http,store          #如果不加上store,将不再在/var/lib/puppet/reports/存储报告
  
reporturl = http://localhost:8141/reports
  如果要取消puppet集成dashboard,注消上面两行即可。
  如果是在puppet服务端直接修改,别忘了提交到SVN,因此建议养成在管理机器上修改的习惯:
# svn ci /etc/puppet/ -m "update reports url"  (4)启动服务:
# service httpd restart  
# cd /usr/share/puppet-dashboard/
  
# rake RAILS_ENV=production jobs:work
  
Starting job worker
  
Report.create_from_yaml_file completed after 2.2778
  
Report.create_from_yaml_file completed after 1.0872
  
Report.create_from_yaml_file completed after 1.0863
  
Report.create_from_yaml_file completed after 2.2699 ...
  Rake命令使导入报告任务开始运行,运行后可以按Ctrl+C退出,它会在后台自动运行;
# echo "rake RAILS_ENV=production jobs:work" >> /etc/rc.local  Rake命令需要加入到开机启动,否则你会发现重启服务器后Dashboard的WEB页面的最新reports不更新了,而且左上角的“Backgroud Tasks”等待任务在不断增加,就是因为这个开机后没运行导致的。
  3、其他命令
  优化数据库:
# rake RAILS_ENV=production db:raw:optimize  删除报告:
# 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]
查看完整版本: Puppet整合Dashboard(一):Puppet整合Dashboard