puppet的语言 还没有被vim支持,编辑时候黑底白字,不容易排错,看起来也不好分辨,请一定要看我一下这篇高亮显示的文章^.^ 继续阅读
puppet的语言 还没有被vim支持,编辑时候黑底白字,不容易排错,看起来也不好分辨,请一定要看我一下这篇高亮显示的文章^.^ 继续阅读
前言:为了在webGUI上面管理puppet,查看report信息,可以使用puppet项目组推出的dashboard面板。
配置前准备:
1 确认ruby版本(官方要求的版本1.8.4到1.8.7):
#ruby -v
ruby 1.8.5 (2006-08-25) [x86_64-linux]
注:后面会安装rake,它会提示我们的ruby版本要>1.8.6。(本文主要针对编译安装,对于yum安装直接yum install rubygems即可)
如果不升级,安装的rubygem的版本要低于1.3.1.
升级很复杂,这里我使用的办法是修改YUM,建立ruby.repo(优点是配置简单):
#cd/etc/yum.repos.d/
#vi ruby.repo,内容如下:
[ruby]
name=ruby
baseurl=http://repo.premiumhelp.eu/ruby/
gpgcheck=0
enabled=0
# yum --enablerepo=ruby upgrade
现在:
# ruby -v
ruby 1.8.6 (2010-02-05 patchlevel 399) [x86_64-linux]
2 安装 mysql-devel和 ruby-mysql(ruby-masql也可以 使用gem install mysql安装)
#yum install ruby-mysql mysql-devel mysql mysql-server
3 启动mysql:
#service mysqld start
#chkconfig mysqld on
4 安装GEM软件包安装器
#wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.5.tgz
注:1.3.5版本以上和centos5.5不兼容。
# tar zxvf rubygems-1.3.5.tgz
# cd rubygems-1.3.5
# ruby setup.rb
5 安装rake
#gem install rake
显示如下:
Successfully installed rake-0.8.7
1 gem installed
Installing ri documentation for rake-0.8.7...
Installing RDoc documentation for rake-0.8.7...
6 下载安装Dashboard:
#wget http://puppetlabs.com/downloads/dashboard/puppet-dashboard-1.0.4.tgz
#tar zxvf puppet-dashboard-1.0.4.tgz –C /usr/local/puppet-dashboard
7 给mysql创建一个mysql数据库,并且指定用户给puppet
创建一个软连接(根据个人配置):
#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
#mysql
mysql> create database dashboard default charset utf8;
Query OK, 1 row affected (0.00 sec)
mysql> use dashboard
Database changed
mysql> grant all on dashboard.* to dashboard@localhost identified by 'dashboard' ;
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
8 下面的重点:先进入面板的安装目录,在进行下面的操作:
#cd /usr/local/puppet-dashboard
9 给面板建立一个数据库的Yml文件,因为有默认的database.yml.example 复制一下。
# cp config/database.yml.example config/database.yml
10 修改database.yml,我们使用生产环境,所以在以下位置修改:
production:
database: dashboard
username: dashboard
password: dashboard
encoding: utf8
adapter: mysql
使用rake任务创建刚从在config / database.yml文件设置的数据库
# rake RAILS_ENV=production db:create
出现如下:
(in /usr/local/puppet-dashboard)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
no such file to load – mysql(没有安装mysql的问题,下面执行前确保先安装mysql-devel)
# gem install mysql
# rake RAILS_ENV=production db:migrate(为典型的生产环境配置)
Ok 可以启动了!
11 这个面板是自带web的,所以不需要apache支持(和apache结合看后来的文章)
# script/server -p 3100 -d (“-d”表示后台运行)
假设我们使用3100端口(默认3000)
12 Web报告功能:
1 首先在master端新增一个配置文件:
# vi /etc/puppet/manifests/site.pp
添加以下内容:
# Create /tmp/testfile
class test_class {
file {
"/tmp/testfile":
name => "/tmp/testfile",
mode => 666,
owner => root,
group => root;
}
}
# tell puppet on which client to run the class
node 'client.dongwm.com' {
include test_class
}
Server端配置:
注:yum安装puppet的版本号是0.25.X,编译安装的版本号是2.6.X,配置略有不同请注意
# puppetmasterd --configprint libdir
# vi /etc/puppet/puppet.conf
在【main】添加以下内容:
reports = http, store
启动puppetmaster
/etc/init.d/puppetmaster restart
client端配置:
# vi /etc/puppet/puppet.conf
在【agent】添加以下内容:
report = true
启动puppet:
/etc/init.d/puppet restart
在web面板里面添加我们配置的node(其实面板也会自动添加node进来)
点击 左中的add class
添加test_class(上面的site.pp已定义)

点击创建!
点击左中的add group
添加root组:

点击创建
最后增加node,点开左中的add node
增加client.dongwm.com 这个node

找到puppetmaster的lib目录
#puppetmasterd --configprint libdir
/var/lib/puppet/lib
#mkdir –p /var/lib/puppet/lib/puppet/reports/
#cp ext/puppet/puppet_dashboard.rb /var/lib/puppet/lib/puppet/reports/
#/var/lib/puppet/lib/puppet/reports/puppet_dashboard.rb
导入现有的报告
#rake RAILS_ENV=production reports:import /var/lib/puppet/lib/puppet/reports/
以下是成功后的界面:

Puppet是一款开源的工具,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。可以被其他人利用,而忽略公司差异,实现了自动化部署。
环境:
系统:centos5.5
1 首先安装企业Linux(EPEL)yum的仓库的额外的软件包:
#rpm –Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
2 安装centos需要的软件包:
#yum install -y mysql mysql-devel mysql-server ruby ruby-devel ruby-irb ruby-mysql ruby-rdoc ruby-ri
我安装的版本是ruby1.8.5 ,不要安装1.87以上的版本,puppet还不支持。
mysql可以使用自己编译安装的
3 启动mysql:
#service mysqld start
#chkconfig mysqld on
4 下载最近版本的puppet,我用的是编译安装,所以需要先安装facter:
注:它的作用是收集主机的一些资料,比如CPU,主机IP等,facter把收集到值发送给puppet服务器端,服务器端就可以根据不同的条件来对不同的节点机器生成不同的puppet配置文件
#wget http://puppetlabs.com/downloads/facter/facter-latest.tgz
# tar zxvf facter-latest.tgz
# cd facter-1.5.8
# /usr/local/bin/ruby install.rb
5 下载安装puppet主程序
# wget http://puppetlabs.com/downloads/puppet/puppet-2.6.3.tar.gz
# tar zxvf puppet-2.6.3.tar.gz
# cd puppet-2.6.3
# /usr/local/bin/ruby install.rb
6 修改hosts文件
server端
127.0.0.1 localhost.localdomain localhost puppet
192.168.8.56 client.dongwm.com
client端
192.168.8.200 puppet
7 Server端安装与配置
1 拷贝源文件
#mkdir /etc/puppet
#cp conf/auth.conf /etc/puppet/
#cp conf/redhat/fileserver.conf /etc/puppet/
#cp conf/redhat/puppet.conf /etc/puppet/
#cp conf/redhat/server.init /etc/init.d/puppetmaster
#chmod +x /etc/init.d/puppetmaster
#chkconfig –add puppetmaster
#chkconfig puppetmaster on
#mkdir -p /etc/puppet/manifests
2 创建puppet帐号
# puppetmasterd –mkusers(执行中可能会出一些错误,基本上以前安装或创建过puppet用户的原因,执行就是让它自动去 /var/lib/puppet下创建一些目录)
#mkdir /var/lib/puppet/rrd && chown puppet.puppet /var/lib/puppet/rrd
3修改主机名(需要fqdn格式)
#hostname master.dongwm.com
# vi /etc/sysconfig/network
修改为:HOSTNAME=master.dongwm.com
4启动服务
*第一次启动时puppet会自动创建所需的文件,包括一系列证书文件等
我建议使用DEBUG模式,可以看见启动过程:
puppetmasterd -d –no-daemonize -v –trace
8 Client端配置
编译安装同server端
1 复制配置文件
#mkdir /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 +x /etc/init.d/puppet
#chkconfig –add puppet
#chkconfig puppet on
2 创建puppet帐号
# puppetd –mkusers
#mkdir –r /var/lib/puppet/rrd &&chown puppet.puppet /var/lib/puppet/rrd
3 修改主机名
# hostname client.dongwm.com
# vi /etc/sysconfig/network
修改
HOSTNAME=client.dongwm.com
4 启动服务
/etc/init.d/puppet start
注:当启动puppet时,程序会根据puppet.conf中的配置自动向服务端发起证书验证请求。
puppet.conf的详细完整内容可以使用“puppet –genconfig | less”(master端使用puppetmasterd –genconfig | less)
命令详细查看
5 签名证书
我们在server端查看等待确认的证书:
#puppetca –list
client.okooo.com
全部认证:
#puppetca -s -a
注:也可以在master端的puppet.conf加这样一行:
autosign = true
这样就会自动签证书了。
客户端再请求一次:
#puppetd –test –server master.dongwm.com
err: Could not retrieve catalog from remote server: certificate verify failed
这是时间不同步的问题:
同步一下时间(两端都执行):
#/usr/sbin/ntpdate time.nist.gov
删除/var/lib/puppet/ssl目录下的文件(或者在/etc/puppet/ssl),重新请求。
OK这次出现的正确的:
info: Caching certificate for client.dongwm.com
info: Caching certificate_revocation_list for ca
info: Caching catalog for client.dongwm.com
info: Applying configuration version ’1290862961′
info: Creating state file /var/lib/puppet/state/state.yaml
安装成功!
FAQ:
安装过程中能够成功签收证书需要注意的是一定要修改一下配置:
1 # hostname client.dongwm.com
2 # vi /etc/sysconfig/network
3# vi /etc/hosts
近期评论