Puppet整合Dashboard(一):Puppet整合Dashboard
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
[root@puppet ~]# rpm -ivh ftp://rpmfind.net/linux/centos/6.5/os/x86_64/Packages/rubygem-rake-0.8.7-2.1.el6.noarch.rpm [root@puppet ~]# yum install -y ruby-mysql mysql-server puppet-dashboard
mysql create database dashboard character set utf8; mysql grant all on dashboard.* to dashboard @ localhost identified by 123456 mysql flush privileges; mysql quit [root@puppet ~]# vi /etc/my.cnf [mysqld] max_allowed_packet=32M [root@puppet ~]# service mysqld restart
[root@puppet ~]# cd /usr/share/puppet-dashboard/ [root@puppet puppet-dashboard]# vi config/database.yml production: database: dashboard username: dashboard password: 123456 encoding: utf8 adapter: mysql [root@puppet puppet-dashboard]# vi config/settings.yml time_zone: Asia/Shanghai [root@puppet puppet-dashboard]# rake gems:refresh_specs [root@puppet puppet-dashboard]# rake RAILS_ENV=production db:migrate
使用合适的表填充数据库,环境变量RAILS_ENV=production告诉Ruby on Rails我们工作在生产环境。
[root@puppet ~]# cd /usr/share/puppet-dashboard/ [root@puppet 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 [2014-11-14 15:36:28] INFO WEBrick 1.3.1 [2014-11-14 15:36:28] INFO ruby 1.8.7 (2011-06-30) [x86_64-linux] [2014-11-14 15:36:28] INFO WEBrick::HTTPServer#start: pid=36461 port=3000 ^C[2014-11-14 15:37:36] INFO going to shutdown [2014-11-14 15:37:36] INFO WEBrick::HTTPServer#start done. Exiting
可以看到dashboard默认运行在WEBrick的3000端口,按Ctrl+C关闭服务,下面改成apache运行。
二、dashboard整合apache
1、配置
参考示例:/usr/share/puppet-dashboard/ext/passenger/dashboard-vhost.conf
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代替
[root@puppet ~]# service puppet-dashboard stop [root@puppet ~]# service puppetmaster stop [root@puppet ~]# service httpd restart [root@puppet ~]# iptables -I INPUT -p tcp dport 8141 -j ACCEPT [root@puppet ~]# service iptables save
不能显示页面:http://10.188.1.73:3000/
可以正常显示页面:http://10.188.1.73:8141/
[root@puppet ~]# cd /usr/share/puppet-dashboard/ [root@puppet 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),但没有生效,使用如下命令启动修改:
[root@puppet puppet-dashboard]# env RAILS_ENV=production script/delayed_job -p dashboard -n 1 -m start
D:/Program Files/Puppet Labs/Puppet/puppet/ext/redhat/puppet.conf C:/ProgramData/PuppetLabs/puppet/etc/puppet.conf
两个配置文件都没有设置report=true但报告正常,待解~~
(3)Puppet服务端配置(关键):
[main] reports = http,store #如果不加上store,将不再在/var/lib/puppet/reports/存储报告 reporturl = http://localhost:8141/reports
如果要取消puppet集成dashboard,注消上面两行即可。
如果是在puppet服务端直接修改,别忘了提交到SVN,因此建议养成在管理机器上修改的习惯:
[root@puppet ~]# cd /usr/share/puppet-dashboard/ [root@puppet puppet-dashboard]# rake RAILS_ENV=production jobs:work [Worker(host:puppet.ewin.com pid:61845)] Starting job worker [Worker(host:puppet.ewin.com pid:61845)] Report.create_from_yaml_file completed after 2.2778 [Worker(host:puppet.ewin.com pid:61845)] Report.create_from_yaml_file completed after 1.0872 [Worker(host:puppet.ewin.com pid:61845)] Report.create_from_yaml_file completed after 1.0863 [Worker(host:puppet.ewin.com pid:61845)] Report.create_from_yaml_file completed after 2.2699
[root@puppet puppet-dashboard]# echo rake RAILS_ENV=production jobs:work /etc/rc.local
Rake命令需要加入到开机启动,否则你会发现重启服务器后Dashboard的WEB页面的最新reports不更新了,而且左上角的“Backgroud Tasks”等待任务在不断增加,就是因为这个开机后没运行导致的。
3、其他命令
优化数据库:
[root@puppet puppet-dashboard]# rake RAILS_ENV=production reports:prune upto=1 unit=mon Deleting reports before 2014-10-15 08:38 UTC Deleted 0 reports.
相关文章
- Netty(一) SpringBoot 整合长连接心跳机制
- 博文推荐|整合 Spring 与 Pulsar,在 Java 中构建微服务
- spring 整合 mybatis原理
- 吹爆!阿里高工携18位架构师耗时57天整合的1658页面试总结太香了
- SpringBoot实战:整合MyBatis搭建基本骨架
- SpringBoot整合Redis实现分布式缓存、分布式锁等,实战分享!
- 一文搞懂阿里云服务器部署Redis并整合Spring Boot
- MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合详解编程语言
- EasyUI实现异步加载tree(整合Struts2)详解编程语言
- Win11 Build 22000.100发布:任务栏整合Teams聊天功能等
- Puppet整合SVN(二):SVN整合Apache
- 快速整合XP上的MySQL 5.6数据库(xpmysql5.6)
- 提升SSM性能整合Redis缓存技术(ssm中整合redis)