Puppet的安装部署

环境:CoentOS 5.8 x86_64 ,selinux,iptables 已经关闭
主机规划:
  1. server.laoguang.me  192.168.12.117 
  2. client.laoguang.me  192.168.12.161 
一.安装前准备,很必要
1.1 hostname与IP映射写入/etc/hosts
  1. echo " 
  2. 192.168.12.117  server.laoguang.me  server 
  3. 192.168.12.161  client.laoguang.me  client 
  4. >> /etc/hosts 
  5.  
  6. scp /etc/hosts client:/etc/ 
1.2 同步时间,这个很重要
  1. yum -y install ntp 
  2. ntpdate ntp.api.bz 
二.安装puppet 
2.1 软件准备
  1. factor  ##factor是puppet提供内置工具,可以获取客户端的变量
  2. wget http://puppetlabs.com/downloads/facter/facter-1.6.7.tar.gz 
  3. puppet 
  4. wget http://puppetlabs.com/downloads/puppet/puppet-2.7.13.tar.gz 
2.2 安装ruby,Puppet是用ruby写的
  1. yum -y install ruby 
2.3 安装facter
  1. tar zxvf facter-1.6.4.tar.gz 
  2. cd facter-1.6.4 
  3. ruby install.rb 
2.3 安装Puppet
  1. cd .. 
  2. tar zxvf puppet-2.7.6.tar.gz 
  3. cd puppet-2.7.6 
  4. ruby install.rb 
2.4 添加puppet用户
  1. useradd -s /sbin/nologin puppet 
2.5 拷贝需要的配置文件 
  1. cd conf/redhat/ 
  2. cp puppet.conf /etc/puppet/ 
  3. cp fileserver.conf /etc/puppet/ 
  4. cp logrotate /etc/puppet/ 
  5. cp server.sysconfig /etc/sysconfig/puppetmaster 
  6. cp server.init /etc/init.d/puppetmaster 
三.配置与测试
3.1 修改配置文件
server端不用修改
client端:
  1. vim /etc/puppet/puppet.conf 
  2.  
  3. [main] 
  4.     logdir = /var/log/puppet 
  5.     rundir = /var/run/puppet 
  6.     ssldir = $vardir/ssl 
  7. [agent] 
  8.     classfile = $vardir/classes.txt 
  9.     serverserver = server.laoguang.me   ##定义server  
  10.     report = true                 ##状态报告 
  11.     runinterval = 180             ##client更新时间间隔 
  12.     localconfig = $vardir/localconfig 
3.2 测试
server端前台启动,便于查看日志:
  1. puppet master --no-daemonize --debug --verbose 
client验证:
  1. puppetd --test --server server.laoguang.me  
server端查看是否收到签名请求:
  1. puppet cert --list  
  2.   client.laoguang.me (xx:xx:xx:xx:xx:xx:--) 
server端为client签名
  1. puppet cert -s client.laoguang.me 
client端获取server关于对client的配置,并应用
  1. pupppet --test --server server.laoguang.me 
到此部署完毕!
 
遇到的问题:
1.没有添加puppet,server端启动不成功
2.没有同步时间,无法签名,同步时间后删除/var/lib/puppet/ssl/下的所有文件,重新验证
 
感受:安装比较简单,以后的具体配置很复杂啊,埋头苦干吧
 
更新:部署puppet web管理查看界面puppet-dashboard
 
四.部署dashboard
4.1 软件准备
1.ruby-enterprise-1.8.7 ##系统自带的1.8.5的有兼容问题
  1. wget http://rubyenterpriseedition.googlecode.com/files/ruby-enterprise-1.8.7-2012.02.tar.gz 
2.readline-devel ##ruby依赖,我的源里没有它所以
  1. wget ftp://rpmfind.net/linux/centos/5.9/os/i386/CentOS/readline-devel-5.1-3.el5.i386.rpm        ##x64可用 
3.libtermcap-devel   ##readline-devel依赖
  1. wget ftp://rpmfind.net/linux/centos/5.8/os/x86_64/CentOS/libtermcap-devel-2.0.8-46.1.x86_64.rpm 
4.puppet-dashboard-1.2.7   ##我们目的要安装的
  1. wget http://downloads.puppetlabs.com/dashboard/puppet-dashboard-1.2.7.tar.gz 
4.2 安装ruby-enterprise-1.87
先安装依赖包
  1. rpm -ivh libtermcap-devel-2.0.8-46.1.x86_64.rpm readline-devel-5.1-3.el5.i386.rpm 
解压安装ruby
  1. tar xvf ruby-enterprise-1.8.7-2012.02.tar.gz  
  2. ruby-enterprise-1.8.7-2012.02 
  3. ./installer  
  4. <Enter> 
  5. [/opt/ruby-enterprise-1.8.7-2012.02] : /usr/local/ruby     ##更改安装目录 
  6. <Enter> 
更改环境变量:
  1. vim /etc/profile.d/ruby.sh 
  2. export PATH=$PATH:/usr/local/ruby/bin 
  3.  
  4. . /etc/profile.d/ruby.sh 
添加别名
  1. vim /root/.bashrc 
  2. alias ruby='/usr/local/ruby/bin/ruby' 
  3. . /root/.bashrc 
查看版本
  1. ruby -v 
  2. ruby 1.8.7 (2012-02-08 MBARI 8/0x6770 on patchlevel 358) 
  3. [x86_64-linux], MBARI 0x6770,Ruby Enterprise Edition 2012.02 
4.3 安装其它工具
  1. gem install ruby-mysql 
  2. gem install rake 
  3. gem install rails 
4.4 安装Mysql与Mysql-server
  1. yum -y install mysql-devel mysql mysql-server 
启动Mysql
  1. service mysqld start 
建立数据库
  1. mysql 
  2. mysql> create database dashboard default charset utf8; 
  3. mysql> grant all on dashboard.* to 'dashboard'@'localhost' identified by 'redhat'; 
  4. mysql> flush privileges; 
4.5 安装dashboard
  1. tar xvf puppet-dashboard-1.2.7.tar.gz 
  2. mv puppet-dashboard-1.2.7 /usr/local/puppet-dashboard 
  3. cd /usr/local/puppet-dashboard 
编辑配置文件
  1. cp config/database.yml.example config/database.yml 
  2. vim config/database.yml 
  3.  
  4. production: 
  5.   database: dashboard 
  6.   username: dashboard 
  7.   password: "redhat" 
  8.   encoding: utf8 
  9.   adapter: mysql      #如果mysql-server在其它主机,可增加host:段 
 生成表
  1. rake RAILS_ENV=production db:create    ##到这可能会报错,gem与rails的版本可能不兼容, 
我选择了降级gem
  1. gem update --system 1.5.3   ##降级gem 
重新执行
  1. rake RAILS_ENV=production db:create     ##需在/usr/local/puppet-dashboard下运行 
  2. rake RAILS_ENV=production db:migrate 
如果执行正常,那么恭喜你
启动dashboard
  1. /usr/local/puppet-dashboard/script/server -e production -d 
  2. => Booting WEBrick 
  3. => Rails 2.3.14 application starting on http://0.0.0.0:3000    
访问http://ip:3000即可