puppet项目计划之(puppet dashboard图形管理篇)

  • 在服务端安装puppet的dashboard

1、 安装mysql

2、  yuminstall-y mysql mysql-devel mysql-server

3、  优化mysql设置

编辑 /etc/my.cnf, 在[mysqld]字段,增加最后一行

cat/etc/my.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommendedto prevent assorted security risks

symbolic-links=0

max_allowed_packet = 32M

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

4启动服务

/etc/init.d/mysqldstart

chkconfig mysqld on

   5设置mysql密码,我这里使用是密码是password

Mysqladmin –u root password `password`

创建一个dashboard数据库

    6mysql -uroot -p123456 <<EOF

      CREATE DATABASE dashboardCHARACTER SET utf8;

      CREATE USER'dashboard'@'localhost'IDENTIFIED BY 'password';

      GRANT ALL PRIVILEGES ONdashboard.* TO 'dashboard'@'localhost';

      FLUSH PRIVILEGES;

      EOF

  • Passenger+Apache+Dashboard
    这是让Apache支持ruby,由于Passenger不在centos官方源里,因此要添加epel的源

1、wgethttps://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-3.noarch.rpm

2、rpm -ivhepel-release-5-3.noarch.rpm

3、编写yum源以便找到mod_passenger puppet-dashboard

[geek-puppet]

name=Geek-puppet Repo

baseurl=http://download.longgeek.com/Puppet_for_rhel6.2/

gpgcheck=0

4、yuminstall mod_passenger puppet-dashboard

5、  配置Dashboard

vi/usr/share/puppet-dashboard/config/database.yml

production:

database: dashboard

username: dashboard

password: password

encoding: utf8

adapter: mysql

6、 修改时区

vi/usr/share/puppet-dashboard/config/environment.rb

 #config.time_zone= 'UTC'

 config.time_zone= 'Beijing'

7、 配置Apache
我们需要整合Passenger和apache

vim/etc/httpd/conf.d/passenger.conf

LoadModule passenger_modulemodules/mod_passenger.so

<IfModulemod_passenger.c>

   PassengerRoot/usr/share/rubygems/gems/passenger-3.0.17

   PassengerRuby /usr/bin/ruby

   PassengerHighPerformance on

   PassengerMaxPoolSize 12

   PassengerPoolIdleTime 1500

   PassengerStatThrottleRate 120

   RailsAutoDetect On

</IfModule>

<VirtualHost *:80>

       ServerName master.kylinyunwei.com

       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/master.kylinyunwei.com_error.log

       LogLevel warn

       CustomLog/var/log/httpd/master.kylinyunwei.com_access.log combined

       ServerSignature On

</VirtualHost>

8、  重启服务

[root@master ~]# servicehttpd restart

停止 httpd:                                               [确定]

正在启动 httpd:                                           [确定]

  • 配置puppet
    让Dashboard使用Reports,现在默认agent是已经启用Report的功能,所以你就不需要设置agent,你只需要设置Server端就可以 

1、vi/etc/puppet/puppet.conf

[master]

reports = store, http

reporturl = http://master.canghai.com:80/reports/upload

2重启puppetmaster 服务

/etc/init.d/puppetmasterrestart

3这时候就可以直接用 http://ip 访问puppet Dashboard

4、导入报告

cd/usr/share/puppet-dashboard

[root@masterpuppet-dashboard]# rake RAILS_ENV=production reports:import

(in/usr/share/puppet-dashboard)

Unable to read the packagingrepo info from ext/build_defaults.yaml

Importing 176 reports from/var/lib/puppet/reports/ in the background

Importing:     100%|#######################################################################################################################|Time: 00:00:04

176 of 176 reports queued

5执行导入的reports

cd/usr/share/puppet-dashboard

rake jobs:workRAILS_ENV="production"

[root@masterpuppet-dashboard]# rake jobs:work RAILS_ENV="production"

(in /usr/share/puppet-dashboard)

Unable to readthe packaging repo info from ext/build_defaults.yaml

[Worker(host:master.kylinyunwei.compid:19114)] Starting job worker

[Worker(host:master.kylinyunwei.compid:19114)] Report.create_from_yaml_file completed after 0.3231

[Worker(host:master.kylinyunwei.compid:19114)] 1 jobs processed at 2.8080 j/s, 0 failed ...

6、查看结果

wKiom1RW8HTSiMa_AANEiTB8nfk388.jpg

7、成功报告

wKioL1RW8OPgFTsLAAHWMOmKpAc158.jpg