从Puppet安装TomEE

Apache TomEE是针对Java EE 6 Web Profile认证的全Apache堆栈,其中Tomcat是最高的。 它是Tomcat + Java EE的结合体。 Puppet是一种用于声明式管理我们的系统配置的工具。 我们只需要描述系统资源及其状态。 此描述存储在Puppet的核心文件中,称为Puppet清单。 在当前文章中,我们将看到如何将TomEE定义为Puppet资源,以便可以将其自动安装在Puppet管理的所有计算机中。 我正在使用Ubuntu 12.04 ,但是当然可以将其适应您的系统。 因为TomEE是用Java编写的,所以显然我们需要确保系统中存在JDK ,对于我们的示例,我们将使用OpenJDK 1.6 。 将软件包安装到我们的系统的方法是使用软件包资源,该资源使用基础的软件包管理器来查找,下载和安装它。

让我们创建一个init.pp清单文件,我们要做的第一件事是创建一个exec任务,该任务用最新可用软件包列表更新软件包管理器。

# update the (outdated) package list
exec { 'update-package-list':
command => 'usrbinsudo usrbinapt-get update',
}

然后,我们可以定义一个负责安装OpenJDK的类Puppet中的类可以理解为资源的集合, Puppet将其视为一个单元。

class java_6 {

  package { "openjdk-6-jdk":
    ensure => installed,
    require => Exec["update-package-list"],
  }

}

我想这是非常直观的,首先我们要确保openjdk-6-jdk软件包已存在于系统中。 如果未安装,则执行Exec ['update-package-list']资源,最后,程序包管理器将OpenJDK安装到系统中。 执行完这部分之后,我们可以运行java -versionjavac -version了而没有任何问题, OpenJDK在那里。

下一步是安装TomEE 。 可能TomEE软件包不在软件包格式的分发包存储库中(例如,对于Debian .deb )。 因此,我们需要一种与OpenJDK所采用的方法不同的方法。 我们将从TomEE站点下载tar.gz文件,并将其解压缩到安装目录。

class tomee {


 file {"/opt/tomee-1.5.1":
    ensure => directory,
    recurse => true,
 } ->

 exec { "download-tomee" :
    command => "/usr/bin/wget http://apache.rediris.es/openejb/openejb-4.5.1/apache-tomee-1.5.1-webprofile.tar.gz -O 

/tmp/tomee-1.5.1.tar.gz",
    creates => "/tmp/tomee-1.5.1.tar.gz",
 } ->

 exec { "unpack-tomee" : 
    command => "/bin/tar -xzf /tmp/tomee-1.5.1.tar.gz -C /opt/tomee-1.5.1 --strip-components=1",
    creates => "/opt/tomee-1.5.1/bin",
 }

}

OpenJDK一样,我们正在创建一个名为tomee的类。 首先,我们创建要安装TomEE的目录( tar命令要求目标目录应该已经创建)。 然后,我们使用wget命令从Apache站点下载TomEE ,以最终将其解压缩到已经创建的目录中。

注意使用->Puppet不保证已定义资源的执行顺序,因此,如果先下载TomEE然后再安装TomEE ,则不能推断出“先验”。 为了定义一个订单,我们使用->运算符,它设置资源之间的优先级。

现在,我们已经在计算机上安装了Apache TomEE ,但是显然没有自动启动和停止,您必须执行/opt/tomee-1.5.1/bin/startup.sh才能使TomEE可用。 让我们通过使用服务资源来更改它。 顾名思义,它会将已安装的服务器注册为服务。 因此,在tomee类内部定义下一个服务资源:

service { "tomee" :
    provider => "init",
    ensure => running,
    start => "/opt/tomee-1.5.1/bin/startup.sh",
    stop => "/opt/tomee-1.5.1/bin/shutdown.sh",
    status => "",
    restart => "",
    hasstatus => false,
    hasrestart => false,
    require => [ Exec["unpack-tomee"], Package["openjdk-6-jdk"] ],
  }

请注意先前声明的两点,第一个是provider / start / stop声明,provider设置为init,这意味着我们要使用标准的init样式服务管理,但是例如,您可以使用launchd ( (对于Mac OS X),是upstart ,是Windows (对于Windows计算机),…有关更多信息,请参见[ http://docs.puppetlabs.com/references/latest/type.html#service ]。 而且由于默认情况下TomTo并未实现为Linux服务(基本上是因为尚未从.deb之类的本地软件包安装),因此我们需要指定执行哪个命令来启动和停止TomEE

第二点是服务资源需要解压缩TomEE并安装OpenJDK ,因此require属性包含两个声明。 在此处查看完整脚本。

关于示例的最后说明:

    • 木偶创建 EXEC任务里面的属性,是用于了解,如果资源应该被执行或不(的情况下,该文件存在, 高管将不会被执行)。 在我们的例子中,我们正在tmp目录中下载TomEE 。 大多数操作系统会定期删除此目录,因此它是下载该目录的不便之地,但在本教程中,它可以完美运行,因为我可以每次重新执行该脚本作为新的执行。
  • 为了简化,我们将所有内容添加到一个文件中,在您的企业中,我建议创建一个TomEE模块,以便您可以在所有项目中共享。
  • TomEE版本应设置为变量/参数/层次,以便在发布新版本的TomEE时可以重用同一类。

参考:One Jar To Rulem All博客中,从我们的JCG合作伙伴 Alex Soto 从Puppet安装TomEE

翻译自: https://www.javacodegeeks.com/2013/04/installing-tomee-from-puppet.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值