最近一直在看刚买的那两本书,趁着热乎劲,就把看到的内容整理出来,留着以后复习用,今天来学习一下Puppet工具的使用。
puppet是基于Ruby写成的自动化部署工具,c/s结构,工作模式是在服务器端安装puppet-server包,在客户端安装puppet客户端软件,当客户端连接上puppet master后,定义在master的配置文件会被编译,然后在客户端运行。
实验环境一台centos6.2(10.0.0.16,主机名:baidu.com,master)
centos6.0(10.0.0.7,主机名:shanker.com,client)。
先ntpdate更新好两台电脑的时间,ntpdate ntp.api.bz
安装Puppet需要的软件包,用yum安装
yum -y install mysql mysql-devel mysql-server ruby-devel ruby-irb ruby-mysql ruby-rdoc ruby-ri
书上作者说Puppet不支持ruby1.8.7以上版本,但是我安装的是1.8.7是支持的
- [root@baidu ~]# ruby --version
- ruby 1.8.7 (2011-06-30 patchlevel 352) [i386-linux]
- [root@baidu ~]#
然后下载最新的 puppet-2.7.10.tar.gz和facter-1.6.5.tar.gz ,地址在http://puppetlabs.com/downloads/{facter,puppet}里可以找到。
先安装facter,tar zxvf facter-1.6.5.tar.gz
cd facter
/usr/bin/ruby install.rb
然后安装puppet,解包,然后ruby install.rb
- mkdir /etc/puppet
- cp conf/auth.conf /etc/puppet/
- cp conf/redhat/fileserver.con /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 /etc/puppet/manifests
创建puppet帐号
puppdtmasterd --mkusers,如果这条命令执行错误,那就是代表以前创建过puppet的用户,只要自己手工创建就可以解决。
groupadd puppet
useradd -g puppet puppet
然后创建相应的目录
mkdir -p /var/lib/puppet/rrd
chown puppet:puppet /var/lib/puppet/rrd
启动服务
/etc/init.d/puppetmaster start
______________________________________________________________________
下面是客户端的配置,安装都是一样
复制配置文件
- mkdir /etc/puppet
- cp conf/auth.con /etc/puppet
- cp conf/namespaceauth.con /etc/puppet
- cp conf/redhat/puppet.con /etc/puppet
- cp conf/redhat/client.init /etc/init.d/puppet
- chmod +x /etc/init.d/puppet
- chkconfig --add puppet
- chkconfig puppet on
创建puppet帐号
puppetd --mkusers
建立puppet相应目录
mkdir -p /var/lib/puppet/rrd
chown puppet:puppet /var/lib/puppet/rrd
启动服务
/etc/init.d/puppet start
然后向server端发出请求指令
puppet --test --server baidu.com
puppet server端要接受客户端的请求
puppetca -s -a
-a表示接受全部请求
客户端在发一次请求
puppetd --test --server baidu.com -w
6
shell会出现蓝色的字体
下面进行内容测试
在服务器端/etc/puppet/manifests 下建立site.pp
内容如下
- [root@baidu tmp]# cat /etc/puppet/manifests/site.pp
- node default{
- file { "/tmp/test.txt":
- content =>"this is a test 02/03/2012,hello, this is from shanker server",
- ensure =>present,
- owner=> root, group=>root, mode=>440,
- }
- }
然后在客户端在执行
puppetd --test --server baidu.com -w 6
实验到此结束,感觉puppet博大精深,我只领会到一点,以后工作中用到了 好好学习学习。