puppet报告系统dashboard以及puppet+nginx

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了puppet报告系统dashboard以及puppet+nginx相关的知识,希望对你有一定的参考价值。

        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
    [main]
       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
    [agent]
        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
    [agent]
        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;

    ssl  on;
    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_ciphers  SSLv2:-LOW:-EXPORT:RC4+RSA;
    ssl_prefer_server_ciphers on;
    ssl_verify_depth 1;
    ssl_session_cache  shared: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端可以进行同步就证明成功了。

技术分享


以上是关于puppet报告系统dashboard以及puppet+nginx的主要内容,如果未能解决你的问题,请参考以下文章

puppet安装常遇见的问题

Puppet批量修改SSH端口-Linux软件分发

Windows Puppet 代理未连接到 AWSOpsWorks Puppet Enterprise 主服务器

puppet介绍

puppet 学习总结——puppet 入门详解

自动化运维工具puppet详解