上一篇聊了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'], }}
3.修改后重启puppet
service puppetmaster restart