Puppet 及 dashboard 安装手册 V1.0 About Me ID:Roger Oracle Senior Consultant Email:oracledba@live.cn Blog:www.killdb.com Page 1 of 11
版本记录 版本编号版本日期修改者说明 Version 1.0 2012-05-05 Roger 创建文档 目录 一 准备环境... 3 1). 软件下载... 3 2). 修改 /etc/hosts... 3 3). 创建 Puppet 用户以及用户组... 3 4). 安装 ruby... 3 二 安装 Puppet 管理端... 3 1). 安装 facter... 3 2). 验证 facter 是否安装成功... 4 3). 解压安装 puppet 管理端... 4 4). 配置 puppet 管理端... 4 5). 编辑 /etc/puppet/pupper.conf... 4 6). 配置管理端自动 SSL 认证... 4 7). 启动 puppet 管理端... 5 三 安装 Puppet Client... 5 1). 安装 facter... 5 2). 验证 facter 是否安装成功... 5 3). 解压安装 puppet client 端... 5 4). 配置 puppet client 端... 5 5). 编辑 /etc/puppet/puppet.conf... 6 四 文件同步测试... 6 1). 编辑 /etc/puppet/fileserver.conf... 6 2). 编辑 /etc/puppet/manifests/site.pp... 6 3). 启动管理端和客户端, 验证文件是否同步... 6 五 安装 Dashboard... 6 1). 升级 ruby... 7 2). 安装 gem 包... 7 3). 安装 mysql rpm... 8 4). 安装配置 dashboard... 8 5). 导入 reports... 8 Page 2 of 11
6). 启动 dashboard... 9 一 准备环境 1). 软件下载 登录官方网站下载如下软件即可 : http://downloads.puppetlabs.com/puppet/puppet-2.7.13.tar.gz http://puppetlabs.com/downloads/facter/facter-1.6.4.tar.gz 2). 修改 /etc/hosts 修改 /etc/sysconfig/network 和 /etc/hosts, 最好是能使用域名, 如下 : 192.168.0.160 server.puppet.com server 192.168.0.161 killdb1.puppet.com 192.168.0.114 killdb2.puppet.com 3). 创建 Puppet 用户以及用户组 groupadd puppet useradd -g puppet -s /bin/false -M puppet 4). 安装 ruby 对于 redhat 5 以及 redhat5 以上版本, 操作系统自带 ruby, 版本为 1.8.5, 为 puppet 官方支持较好的版 本, 可以不必进行单独的 ruby 安装 说明 : 对于 redhat 4 以及以下版本, 操作系统不自带 ruby, 需要进行手工安装 下载地址 :ftp://ftp.ruby-lang.org/pub/ruby/1.8/ 二 安装 Puppet 管理端 1). 安装 facter tar -zxvf facter-1.6.4.tar.gz cd facter-1.6.4 ruby install.rb Page 3 of 11
2). 验证 facter 是否安装成功 输入 facter 命令即可进行验证 3). 解压安装 puppet 管理端 tar -zxvf puppet-2.7.13.tar.gz cd puppet-2.7.13 ruby install.rb 4). 配置 puppet 管理端 cd /ulic/puppet/puppet-2.7.13 cd conf/redhat cp puppet.conf /etc/puppet cp fileserver.conf /etc/puppet cp logrotate /etc/puppet cp server.sysconfig /etc/sysconfig/puppetmaster cp server.init /etc/init.d/puppetmaster chmod 775 /etc/init.d/puppetmaster chkconfig --add puppetmasterd chkconfig --level 35 puppetmasterd on 5). 编辑 /etc/puppet/pupper.conf 添加如下信息 : [master] reports = store, http reporturl = http://10.18.2.135:3000/reports/upload 6). 配置管理端自动 SSL 认证 cd /etc/puppet/ echo "*.ulic.com.cn" >>autosign.conf cat auto*.conf 说明 : 如果更改主机名以后, 客户端认证失效以后, 可以删除如下目录中相应的主机认证文件, 进行重新认 证 /var/lib/puppet/ssl/ca/signed Page 4 of 11
7). 启动 puppet 管理端 service puppetmasterd start netstat -natlp grep ruby -- 检查 puppet 管理端是否正常启动 说明 :Puppet 服务端默认 8140 端口侦听服务, 需要在 iptables 上开启该端口 三 安装 Puppet Client 1). 安装 facter tar -zxvf facter-1.6.4.tar.gz cd facter-1.6.4 ruby install.rb 2). 验证 facter 是否安装成功 输入 facter 命令即可进行验证 3). 解压安装 puppet client 端 tar -zxvf puppet-2.7.13.tar.gz cd puppet-2.7.13 ruby install.rb 4). 配置 puppet client 端 cd /ulic/puppet/puppet-2.7.13 mkdir -p /etc/puppet cp conf/auth.conf /etc/puppet/ cp conf/namespaceauth.conf /etc/puppet/ cp conf/redhat/puppet.conf /etc/puppet/ cp conf/redhat/client.init /etc/init.d/puppet chmod 755 /etc/init.d/ puppetd chkconfig --add puppetd chkconfig --level 35 puppetd on Page 5 of 11
5). 编辑 /etc/puppet/puppet.conf 添加如下信息 : server=puppet-master.puppet.com Listen = true report=true runinterval=180 说明 : server report runinterval 为管理端主机名 属性为 dashboard 属性,true 意为将信息报告给 dashboard 软件 为 puppet 客户端每次检测管理端配置文件变化的间隔时间 四 文件同步测试 1). 编辑 /etc/puppet/fileserver.conf 添加如下信息 : [files] path /tmp/test allow 10.18.2.0.0/24 2). 编辑 /etc/puppet/manifests/site.pp 添加如下信息 : file { "/tmp/test/test.sh": source => "puppet://puppet-master.puppet.com/files/test.sh", } 3). 启动管理端和客户端, 验证文件是否同步 service puppetmaster start service puppetd start ls -ltr /tmp/test -- 管理端 -- 客户端 五 安装 Dashboard Page 6 of 11
1). 升级 ruby tar zxf ruby-enterprise-1.8.7-2011.12.tar.gz cd /ulic/puppet/dashboard/ ruby-enterprise-1.8.7-2011.12./installer 修改 /etc/profile, 添加如下信息 : PATH=$PATH$:$HOME/bin:/opt/ruby-enterprise-1.8.7-2011.12/bin 2). 安装 gem 包 gem install arel gem install bundler gem install erubis gem install hike gem install journey gem install json gem install mail gem install mime-types gem install polyglot gem install rack -v 1.4.1 gem install rack-cache gem install rack-ssl gem install rack-test gem install railties gem install rdoc gem install sprockets gem install thor gem install tilt gem install treetop gem install tzinfo gem install builder gem install i18n gem install multi_json gem install rails gem install railties gem install rake gem install actionmailer gem install actionpack gem install activemodel gem install activerecord gem install activeresource gem install activesupport Page 7 of 11
gem install mysql -- --with-mysql-config=/usr/bin/mysql_config 说明 : 如果安装过程中发现 gem 版本过高导致其他问题, 可以进行降级, 如下 : gem update --system=1.5.3 3). 安装 mysql rpm rpm -ivh perl-dbi-* rpm -ivh perl-dbd-mysql* rpm -ivh mysql-5.0.77* rpm -ivh mysql-devel-5.0.77* rpm -ivh mysql-server-5.0.77* 4). 安装配置 dashboard tar zxf puppet-dashboard-1.2.7.tar.gz mv puppet-dashboard-1.27 puppet-dashboard cd puppet-dashboard/config cp database.yml.example database.yml cp setting.yml. example setting.yml 编辑 database.yml 修改数据库连接信息 : production: database: dashboard username: dashboard password: dashboard encoding: utf8 adapter: mysql 创建数据库, 并创建相关用户且授权 : create database dashboard default charset utf8; grant all privileges on dashboard.* to dashboard@localhost identified by 'dashboard'; flush privileges; 5). 导入 reports export RAILS_ENV=production rake db:migrate rake RAILS_ENV=production reports:import Page 8 of 11
6). 启动 dashboard 更改 Mysql maximum packet size, 官方文档推荐值为 32m 以上, 我这里设置为 64m mysql> use dashboard Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> set max_allowed_packet = 67108864; Query OK, 0 rows affected (0.00 sec) mysql> mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) script/server -e production -d env RAILS_ENV=production script/delayed_job -p dashboard -n 4 -m start 说明 : 默认端口为 3000,htpp 地址如下 : http://10.18.2.135:3000 优化 dashboard: rake RAILS_ENV=production db:raw:optimize [root@puppet-master dashboard]# rake RAILS_ENV=production db:raw:optimize Optimizing tables, this may take a while: * delayed_job_failures * delayed_jobs * metrics * node_class_memberships * node_classes * node_group_class_memberships * node_group_edges * node_group_memberships * node_groups * nodes * old_reports * parameters * report_logs Page 9 of 11
* reports * resource_events * resource_statuses * schema_migrations * timeline_events 清理一个月以前的 reports: rake RAILS_ENV=production reports:prune upto=1 unit=mon 效果图预览 : Page 10 of 11
补充 : Puppet Dashboard 官方文档地址 : http://docs.puppetlabs.com/dashboard/manual/1.2/bootstrapping.html Page 11 of 11