Puppet学习日志(1)

前两天看到一篇文章http://www.ustack.com/puppet_and_luke_story/ ,讲述了puppet的创始人Luke的故事,之后看了下puppet,觉得这确实是个很值得学习的东西,所以在这记录一下学习的过程。

Puppet是什么

puppet是一个快速部署的工具,能让系统管理员快速的配置服务器。puppet是一个C/S结构, 当然,这里的C可以有很多,因此,也可以说是一个星型结构. 所有的puppet客户端同一个服务器端的puppet通讯. 每个puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置服务器. 配置完成以后,puppet客户端可以反馈给服务器端一个消息。如果出错,也会给服务器端反馈一个消息。

总之,它解决的是服务器部署中的问题,能够大大简化部署服务器的难度。而且随着云计算时代的到来,快速部署也成为了一个很重要的功能,而puppet也成为了目前最主流使用的快速部署工具,是现在事实上的标准。

安装Puppet

 下面首先来安装puppet:

在debian环境下:

apt-get install puppet  puppetmaster
在centos下:
yum install puppet
或者:
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
用源码方式安装:

puppet是使用ruby开发的,在安装之前需要安装好以下的库

  • base64
  • cgi
  • digest/md5
  • etc
  • fileutils
  • ipaddr
  • openssl
  • strscan
  • syslog
  • uri
  • webrick
  • webrick/https
  • xmlrpc
安装facter:

facter是安装puppet必要的软件,解压并安装:

tar zxf facter-1.5.7.tar.gz
cd facter-1.5.7
ruby install.rb
最后来安装puppet:

tar zxf puppet-0.25.4.tar.gz
cd puppet-0.25.4
ruby install.rb
以上的几种安装都是单机模式的puppet,但是这样并没有发挥puppet的优势。puppet最大的优势就是c/s模式的配置,能够实现集群的统一管理。所有管理的机器都从同一个puppet主服务器上得到自己的配置文件并下载回来执行。下面就来配置c/s模式的puppet:
  • 实验环境:3台虚拟机,IP分别是192.168.24.128, 192.168.24.129并且配置了相应的主机名master,node1
  • 操作系统:ubuntu12.10
  • 网络:3台机器能够互相访问

首先配置服务端,在master主机上安装puppetmaster:

apt-get install puppetmaster
把puppet执行代码放在  /etc/puppet/manifest/

新建一个简单的site.pp:

node default {
          file { "/tmp/temp1.txt": content => "hello,first puppet manifest"; }
         }
下面来配置客户端, 安装puppet:
apt-get install puppet
安装好puppet之后,执行:
puppetd --server master --test
在上面的命令执行时,第一次进行连接的时候会进行ssl验证,需要执行一下的命令:
puppetca -s client
然后再执行倒数第二个命令,就可以成功执行了。

先学习到这里,下一篇里再继续对puppet进行研究。

你可能感兴趣的:(puppet)