上一篇聊了puppet的安装部署方法,如果你还没有安装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