xywuyiba8 发表于 2018-8-2 07:21:39

puppet报告系统dashboard以及puppet+nginx-bantiaomichong

  Puppet Dashboard是由支持Puppet开发的公司Puppetlabs创建的,是Ruby on Rails程序。可以作为一个ENC(外部节点分类器)以及一个报告工具,并且正在逐渐成为一个包含许多Puppet新功能的集成界面,例如审计和资源管理功能。 Puppet Dashboard是一个Ruby on Rails程序,用于显示Puppet master和agent的相关信息。它允许你查看从一个或多个Puppet master汇总的图形和报告数据。它同时从一个或者多个Puppet master上收集来自于Puppet agent的资产数据(主机的Fact和其他信息)。最后,它能作为一个ENC来配置Puppet节点,并指定这些节点上的类和参数。
  puppet dashboard的配置:
  在master端
  安装所需的软件包
yum install puppet-dashboard-1.2.23-1.el6.noarch.rpm mysql-server rubygem-rake-0.8.7-2.1.el6.noarch.rpm ruby-mysql-2.8.2-1.el6.x86_64.rpm -y  配置mysql数据库:
/etc/init.d/mysqld start  
mysql> CREATE DATABASE dashboard_production CHARACTER SET utf8;
  
mysql> CREATE USER 'dashboard'@'localhost' IDENTIFIED BY 'westos';
  
mysql> GRANT ALL PRIVILEGES ON dashboard_production.* TO 'dashboard'@'localhost';
  
vim /usr/share/puppet-dashboard/config/database.yml #这里只使用了生产环境配置
  
    production:
  
      database: dashboard_production
  
      username: dashboard
  
      password: westos
  
      encoding: utf8
  
      adapter: mysql
  
cd /usr/share/puppet-dashboard/config
  
rake RAILS_ENV=production db:migrate#建立 dashboard 所需的数据库和表

  修改puppet-dashboard的时区
vim /usr/share/puppet-dashboard/config/settings.yml  
    time_zone: 'Beijing'
  使用下面这个指令可以查看可用的时区
rake time:zones:local
/etc/init.d/puppet-dashboard start
chmod 666 /usr/share/puppet-dashboard/log/production.log  
/etc/init.d/puppet-dashboard-workers start
  设置报告汇总
vim /etc/puppet/puppet.conf  
   
  
       reports = http
  
       reporturl=http://172.25.254.1:3000/reports
  
/etc/puppetmaster reload
  登录http://172.25.9.1:3000进入到检测页面

  此时还没有报告生成我们需要在client端打开报告同步以此数据就可以看到信息了
vim /etc/puppet/puppet.conf  
   
  
      report =true
  
puppet agent --server=server1.example.com --no-daemonize -vt   #进行手动同步puppet未在后台运行的情况下

  之后再次刷新网站就能看到报告了

  点击节点就能看到具体的日志信息了

  client端自动同步的情况下要在client端进行以下操作:
vim /etc/sysconfig/puppet  
PUPPET_SERVER=puppet.example.com #puppet master 的地址
  
PUPPET_PORT=8140         #puppet 监听端口
  
PUPPET_LOG=/var/log/puppet/puppet.log #puppet 本地日志#PUPPET_EXTRA_OPTS=--waitforcert=500 #默认同步的时间这里没有打开而是在下面的文件配置的
  修改默认同步的时间
vim /etc/puppet/puppet.conf  
   
  
      runinterval =300 #单位为秒
  
/etc/init.d/puppet start
  nginx+passenger:
  puppet 默认使用基于 Ruby 的 WEBRickHTTP 来处理 HTTPS 请求,但是这些语言的内置webserver目的仅是为了方便调试代码,本身的性能十分的差,而使用常见的Web Server软件就可以显著的提高单台的puppetmaster的性能。这里就是使用的是Nginx去提高puppetmaster的性能
  安装所需的依赖性:
yum install -y gcc gcc-c++ curl-devel zlib-devel openssl-devel ruby-devel pcre-devel  
gem install passenger-5.0.15.gem rack-1.6.4.gem #没有联网的情况下需要gem包,联网的情况下直接 gem install rack passenger
  

  
passenger-install-nginx-module #脚本会自动安装 nginx 支持,按提示操作
  安装好后更改nginx的配置
vim /opt/nginx/conf/nginx.conf  
    server {
  
    listen 8140;
  
    server_name server1.example.com;
  
    root /etc/puppet/rack/public;
  
    passenger_enabled on;
  

  
    passenger_set_header X_CLIENT_DN $ssl_client_s_dn;
  
    passenger_set_header X_CLIENT_VERIFY $ssl_client_verify;
  

  
    sslon;
  
    ssl_session_timeout 5m;
  
    ssl_certificate /var/lib/puppet/ssl/certs/server1.example.com.pem;
  
    ssl_certificate_key /var/lib/puppet/ssl/private_keys/server1.example.com.pem;
  
    ssl_client_certificate /var/lib/puppet/ssl/ca/ca_crt.pem;
  
    ssl_crl/var/lib/puppet/ssl/ca/ca_crl.pem;
  
    ssl_verify_client optional;
  
    ssl_ciphersSSLv2:-LOW:-EXPORT:RC4+RSA;
  
    ssl_prefer_server_ciphers on;
  
    ssl_verify_depth 1;
  
    ssl_session_cacheshared:SSL:128m;
  
    }
  
mkdir /etc/puppet/rack/{public,tmp} -p
  
cp /usr/share/puppet/ext/rack/config.ru /etc/puppet/rack/
  
chown puppet.puppet -R /etc/puppet/rack/
  
/etc/init.d/puppetmaster stop #puppetmaster不需要再启动了,nginx启动后会自动调用puppetmaster
  
/opt/nginx/sbin/nginx -t #检测 nginx
  
/opt/nginx/sbin/nginx
  监测:在client端可以进行同步就证明成功了。
页: [1]
查看完整版本: puppet报告系统dashboard以及puppet+nginx-bantiaomichong