上一篇聊了puppet的安装部署方法,如果你还没有安装puppet,请点击下方链接查看具体安装方法:
这篇来看一下如何利用Puppet全自动部署tomcat,在Puppet中有很多资源,其中比较常用的包括:
package 通过程序安装软件
service 启动或停止服务
file 文件传输
exec 执行命令
由于tomcat用源码包安装的居多,所有下面主要用到file和exec资源
一.打开文件传输功能
1.vim /etc/puppet/fileserver.conf
在最后添加
[files]
path /home/files #文件放置路径
allow * #允许访问的主机名称
2.修改后重启puppet
service puppetmaster restart
二.多主机配置
1.通过site.pp中导入来使用其他位置上的配置文件
vim /etc/puppet/manifests/site.pp
import web/*.pp #web目录和site.pp在同级目录
$service=‘ppserver.com‘ #定义变量为web目录里的配置文件引用
$tomcatconf=‘/opt/apache-tomcat‘
2.修改web目录下的web.pp文件
vim /etc/puppet/manifests/web/web.pp
node ‘node3.com‘{ #标识只给node3.com这台主机推送,不写默认所有主机
file{‘tomcat‘: #使用文件资源,名称随便起
ensure=>present,
#文件如果存在就对比md5值,不同就进行传输,如果不存在直接传输
source =>"puppet://$server/files/apache-tomcat.tar.gz",
#指定文件在puppet服务器上的位置,如果引用变量,则必须使用双引号
path=>‘/opt/apache-tomcat.tar.gz‘,
#指定文件在客户端的位置,文件名必须要写
}~>
#‘~>‘指示下一个资源和这个资源有依懒性,上一个资源执行成功时会通知下一个资源
==subscribe=>Exec[‘tar xvf‘]
#还有‘->‘表示顺序性,只要上一个资源没有报错,就会执行下一个资源
==require=>Exec[‘tar xvf‘]
exec{‘tar xvf‘:
command=>"tar -xvf /opt/apache-tomcat.tar.gz -C /opt/",
#在客户端解压tomcat安装包
path=>"/usr/bin:/bin",
#在解压时所需命令所在的位置
refreshonly=>true,
#当上一个资源成功执行时才执行本资源,配合subscribe=>Exec[‘tar xvf‘]一起使用
}
file{‘server.xml‘: #替换配置文件
ensure=>present,
source =>"puppet://$server/files/server.xml",
path=>‘/opt/apache-tomcat/conf/server.xml‘,
}
exec{‘startup‘: #启动tomcat服务
command=>‘startup.sh‘,
#执行启动命令
path=>"$tomcatconf/bin:/usr/bin:/bin:/sbin",
refreshonly=>true,
subscribe=>Exec[‘server.xml‘],
}
本文出自 “linux运维技术” 博客,请务必保留此出处http://forall.blog.51cto.com/12356505/1913534
原文地址:http://forall.blog.51cto.com/12356505/1913534