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