全部博文(2065)
分类: LINUX
2010-10-19 21:34:15
puppet安装与布置
整理:2010-10-19
centos的官方软件库里面不包含puppet包,但是在epel项目里面有包含puppet包. epel 是一个对rhel软件仓库的扩展,把一些有用的,但是rhel库没包含的软件收集在一起做成的一个软件仓库.
因此首先在centos上面安装epel,以 32位的centos5 举例,其他版本以此类推
操作步聚:
1. rpm -Uvh
2. yum install puppet
说明:注意当前OS的版本。下载的URL是有变化的!
安装第一步:修改主机名然后再去安装puppet软件的!
目前架构
客户端的主机 localhost.localdomain
主控端的主机 server.puppet.com
安装整理
1. 将服务器装先安装好
先修改主机名 #echo ‘192.168.0.108 server.puppet.com’ >>/etc/hosts #hostname –F /etc/hostname |
先把计算机名称定义出来 |
开始通过yum的方式安装
#rpm -Uvh #yum install -y puppet-server 安装服务端 #service puppetmaster start 将服务启动 #chkconfig --level 2345 puppetmaster on 将其添加进启动服务 |
编写一个配置文件
[root@server ~]# vi /etc/puppet/manifests/site.pp node default { file { "/tmp/temp1.txt": #注意千万不要写错了! content=>"hello,first puppet manifest"; } } 因为puppet的第一个执行的代码就是这个文件了。所以必须要存在的! |
这个配置文件的作用其实就是让默认连入进来的puppet客户端执行一个操作就是在/tmp目录下面生成一个temp1.txt内容为hello,first puppet manifest
2. 客户端配置
#192.168.0.103 client.puppet.com 修改其hostname #hostname –F /etc/hostname 让修改立即生效.这个时候需要退出系统然后再登录 |
安装客户端
#rpm -Uvh #yum install -y puppet 客户端 |
先测试一下不连接服务器试下
编写一个配置文件
[root@client ~]# more /tmp/1.pp file { "/tmp/test": content=>"hello\n", mode=>0644; } |
然后去执行一下:
[root@client puppet]# puppet /tmp/1.pp #把配置文件带上就行了
开始检查与服务器连接的情况
[root@client puppet]# echo "192.168.0.108 server.puppet.com" >> /etc/hosts 将服务器的对应关系写入到hosts里面去
[root@client puppet]# puppetd --server server.puppet.com –test #表示从服务器端下载配置命令再执行
info: Caching catalog for client.puppet.com
info: Applying configuration version '1287471376'
notice: //Node[default]/File[/tmp/temp1.txt]/content: defined content as 'unknow
n checksum'
info: Creating state file /var/lib/puppet/state/state.yaml
notice: Finished catalog run in 0.03 seconds
再打开此目录看看:
[root@client puppet]# more /tmp/temp1.txt
hello,first puppet manifest 确实第一次连接的时候把东西写进来了的!
客户端和服务端都是通过SSL链接的。(将来我们的socket也最好是写成SSL的封装吧),在服务器有一个自签名的根证书,在服务器有一个自签名的根证书,在安装软件的时候自动生成。
注意:要在安装软件以前先设置好主机名,因为生成证书的时候要把主机名写入证书,如果证书生成好了再改主机名就会连接不上。
注意:每个客户端的证书要经过根证书签名才能与服务器连接。所以首先要在客户端执行下面的命令来请求服务器签名证书。