Puppet安装dashboard

安装依赖包

  1. [root@master ~]# sudo yum install -y mysql mysql-devel mysql-server ruby ruby-devel ruby-irb ruby-mysql ruby-rdoc ruby-ri 

       启动mysql并设置开机启动

  1. [root@master ~]# service mysqld start 
  2.  
  3. [root@master ~]# chkconfig  mysqld on 

       下载并安装rubygems

  1. [root@master ~]# wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.5.tgz 
  2.  
  3. [root@master ~]# tar -zxvf rubygems-1.3.5.tgz 
  4.  
  5. [root@master rubygems-1.3.5]# ls 
  6.  
  7. bin  ChangeLog  cruise_config.rb  GPL.txt  History.txt  lib  LICENSE.txt  Manifest.txt  pkgs  Rakefile  README  setup.rb  test  util 
  8.  
  9. [root@master rubygems-1.3.5]# ruby setup.rb 

      安装rake

  1. [root@master rubygems-1.3.5]# gem install rake 
  2.  
  3. Successfully installed rake-0.9.2.2 
  4.  
  5. 1 gem installed 
  6.  
  7. Installing ri documentation for rake-0.9.2.2... 
  8.  
  9. Installing RDoc documentation for rake-0.9.2.2... 

       Gem安装mysql

  1. [root@master puppet-dashboard]# gem install mysql -- --with-mysql-config=/usr/bin/mysql_config 
  2.  
  3. Building native extensions.  This could take a while... 
  4.  
  5. Successfully installed mysql-2.8.1 
  6.  
  7. 1 gem installed 
  8.  
  9. Installing ri documentation for mysql-2.8.1... 

       下载dashboard

  1. [root@master ~]# wget http://downloads.puppetlabs.com/dashboard/puppet-dashboard-1.2.6.tar.gz 
  2.  
  3. [root@master ~]# tar -zxvf  puppet-dashboard-1.2.6.tar.gz 
  4.  
  5. [root@master ~]# mv puppet-dashboard-1.2.6  /usr/local/puppet-dashboard 

       增加dashboard的用户和组

  1. [root@master puppet-dashboard]# groupadd puppet-dashboard    
  2.  
  3. [root@master puppet-dashboard]# useradd -g puppet-dashboard puppet-dashboard   
  4.  
  5. [root@master puppet-dashboard]# chown -R puppet-dashboard:puppet-dashboard /usr/local/puppet-dashboard/ 

       复制配置文件

  1. [root@master ~]# cd /usr/local/puppet-dashboard/ 
  2.  
  3. [root@master puppet-dashboard]# cp config/database.yml.example   config/database.yml 
  4.  
  5. [root@master puppet-dashboard]# cp config/settings.yml.example  config/settings.yml 

       创建dashboard数据库和用户

  1. [root@c1.inanu.net]# mysql -uroot -p'密码' 
  2.  
  3.   
  4.  
  5. mysql> create database dashboard default charset utf8; 
  6.  
  7. Query OK, 1 row affected (0.00 sec) 
  8.  
  9. mysql> use dashboard 
  10.  
  11. Database changed 
  12.  
  13. mysql> grant all on dashboard.* to dashboard@localhost identified by "password"
  14.  
  15. Query OK, 0 rows affected (0.00 sec) 
  16.  
  17.   
  18.  
  19. mysql> flush  privileges; 
  20.  
  21. Query OK, 0 rows affected (0.00 sec) 

       编辑database.yml文件,输入数据库的名称,用户和密码

  1. [root@master puppet-dashboard]# vim config/database.yml 
  2.  
  3.  production: 
  4.  
  5.     database: dashboard 
  6.  
  7.     username: dashboard 
  8.  
  9.     password: Password 
  10.  
  11.     encoding: utf8 
  12.  
  13.     adapter: mysql 
  14.  
  15.   

       创建数据库表,注意当前目录仍然是/opt/puppet-dashboard/config

  1. [root@master config]# rake RAILS_ENV=production db:migrate 
  2.  
  3. ==  BasicSchema: migrating ==================================================== 
  4.  
  5. -- create_table(:assignments, {:force=>true}) 
  6.  
  7.    -> 0.0135s 
  8.  
  9. -- create_table(:nodes, {:force=>true}) 
  10.  
  11.    -> 0.0121s 
  12.  
  13. -- create_table(:services, {:force=>true}) 
  14.  
  15.    -> 0.0125s 
  16.  
  17. ==  BasicSchema: migrated (0.0385s) =========================================== 
  18.  
  19. ==  CreateNodeGroupMemberships: migrating ===================================== 
  20.  
  21. -- create_table(:node_group_memberships) 
  22.  
  23.    -> 0.0194s 
  24.  
  25. ==  CreateNodeGroupMemberships: migrated (0.0195s) ============================ 
  26.  
  27. ==  CreateNodeClasses: migrating ============================================== 
  28.  
  29. -- create_table(:node_classes) 
  30.  
  31.    -> 0.0121s 
  32.  
  33. ==  CreateNodeClasses: migrated (0.0122s) ===================================== 
  34.  
  35. ==  CreateNodeClassMemberships: migrating ===================================== 
  36.  
  37. -- create_table(:node_class_memberships) 
  38.  
  39.    -> 0.0123s 
  40.  
  41. ==  CreateNodeClassMemberships: migrated (0.0124s) ============================ 
  42.  
  43. ==  CreateNodeGroups: migrating =============================================== 
  44.  
  45. -- create_table(:node_groups) 
  46.  
  47.    -> 0.0119s 
  48.  
  49. ==  CreateNodeGroups: migrated (0.0120s) ====================================== 
  50.  
  51. ==  CreateNodeGroupClassMemberships: migrating ================================ 
  52.  
  53. -- create_table(:node_group_class_memberships) 
  54.  
  55.    -> 0.0127s 
  56.  
  57. ==  CreateNodeGroupClassMemberships: migrated (0.0128s) ======================= 
  58.  
  59.   

       服务器端配置

  1. [master] 
  2.  
  3.         reports=store,http 
  4.  
  5.         reporturl=http://192.168.2.98:3000/reports 
  6.  
  7.         reportdir=/var/lib/puppet/reports 
  8.  
  9.         node_terminus=exec 
  10.  
  11.         external_nodes=/usr/bin/env PUPPET_DASHBOARD_URL=http://localhost:3000 /usr/local/puppet-dashboard/bin/external_node 

       重启Puppetmaster服务

  1. [root@master puppet-dashboard]# service puppetmaster restart 
  2.  
  3. 停止 puppetmaster:                                        [确定] 
  4.  
  5. 启动 puppetmaster:                                        [确定] 

       客户端配置

  1. [agent] 
  2.  
  3.     server=master.puppet 
  4.  
  5.     report=true 
  6.  
  7.     runinterval=3600 

       重启puppet服务

  1. [root@client1 ~]# service puppet restart 

     启动测试,这样启动造成找不到数据库

  1. [root@gh puppet-dashboard]# script/server -p 3100 
  2.  
  3. => Booting WEBrick 
  4.  
  5. => Rails 2.3.5 application starting on http://0.0.0.0:3100 
  6.  
  7. Database isn't the current migration version: expected 20110130010154, got 0 
  8.  
  9. You must either run 'rake db:migrate' or set environmental variable NO_MIGRATION_CHECK 

       正确启动方式

  1. [root@master puppet-dashboard]# ./script/server -e production –d 
  2.  
  3. => Booting WEBrick 
  4.  
  5. => Rails 2.3.12 application starting on http://0.0.0.0:3000 
  6.  
  7. => Call with -d to detach 
  8.  
  9. => Ctrl-C to shutdown server 
  10.  
  11. [2012-02-28 11:55:44] INFO  WEBrick 1.3.1 
  12.  
  13. [2012-02-28 11:55:44] INFO  ruby 1.8.7 (2011-06-30) [x86_64-linux] 
  14.  
  15. [2012-02-28 11:55:44] INFO  WEBrick::HTTPServer#start: pid=29333 port=3000 

  访问网址,截图如下

 刷新一下浏览器,可以在puppet dashboard上看到:

Backgroud Tasks

1 pending tasks

 监控

env    RAILS_ENV=production script/delayed_job -p dashboard -n 1 -m start

 运行任务

rake RAILS_ENV=production jobs:work

 重新查看浏览器,发现有一个report