使用Ansible在Amazon Linux EC2实例上运行fat jar作为服务

时间:2015-05-17 15:02:30

标签: java deployment amazon-ec2 ansible

我想使用Ansible将Ninja应用部署到EC2 Amazon Linux实例。

作为Linux noob并且对Ansible来说是全新的,我想知道通过Ansible作为服务启动应用程序的最佳方式,而不仅仅是启动java进程,这就是我现在所做的:{{1 }}。

这暂时有用,但它不是幂等的。也就是说,我不认为Ansible可以找到一种方法来启动应用程序,如果它还没有运行。

我知道Ansible有service module。这会是一个使用的吗?

更新

role called fatjar-service on Ansible Galaxy看起来像我需要的东西,但它只适用于Ubuntu服务器。我的服务器有亚马逊Linux。

2 个答案:

答案 0 :(得分:1)

Ansible 服务模块用于管理现有的OS服务。 Ansible没有构建"创建"服务,因为可以有许多不同的方法为各种OS /发行版创建这样的脚本。 Ansible可以确保您的注册服务已启用并正在运行,但是没有内置模块可以从任意文件创建服务。

答案 1 :(得分:1)

我总是发现最好使用像Upstart这样的东西来包装应用程序(无论是java还是节点或其他),并使用标准的启动/停止命令或Ansible模块来控制应用程序。

Ansible可以轻松地在应用程序文件的副本旁边部署一个upstart包装器(它放在/ etc / init中的conf文件)。 “安装”后,开始/停止工作。

根据需要替换System V(init.d)或SystemD的Upstart(init) - 当然还有很多其他选项。