Java 使用Ansible在AmazonLinuxEC2实例上运行FATJAR作为服务
我想使用Ansible将应用程序部署到EC2 Amazon Linux实例 作为一个Linux noob,也是Ansible的新手,我想知道最好的方法是通过Ansible作为服务启动应用程序,而不是仅仅启动java进程,这就是我现在所做的:Java 使用Ansible在AmazonLinuxEC2实例上运行FATJAR作为服务,java,deployment,amazon-ec2,ansible,Java,Deployment,Amazon Ec2,Ansible,我想使用Ansible将应用程序部署到EC2 Amazon Linux实例 作为一个Linux noob,也是Ansible的新手,我想知道最好的方法是通过Ansible作为服务启动应用程序,而不是仅仅启动java进程,这就是我现在所做的:java-jar[path to my jar] 现在可以了,但它不是幂等的。也就是说,我认为Ansible无法找到一种方法,仅在应用程序尚未运行时才启动它 我知道Ansible有一个朋友。这是要用的吗 更新: 有一个看起来像我需要的,但它只适用于Ubuntu
java-jar[path to my jar]
现在可以了,但它不是幂等的。也就是说,我认为Ansible无法找到一种方法,仅在应用程序尚未运行时才启动它
我知道Ansible有一个朋友。这是要用的吗
更新:
有一个看起来像我需要的,但它只适用于Ubuntu服务器。我的服务器有Amazon Linux。Ansible服务模块用于管理现有的操作系统服务。Ansible没有“创建”服务的内置模块,因为可能有许多不同的方法为各种操作系统/发行版创建这样的脚本。Ansible可以确保您注册的服务已启用并正在运行,但没有内置模块可以从任意文件创建服务。我一直认为最好使用Upstart之类的工具包装应用程序(无论是java还是节点或其他),并使用标准启动/停止命令或Ansible模块从该点控制应用程序 Ansible可以轻松地在应用程序文件副本旁边部署upstart包装(它是一个conf文件,位于/etc/init中)。一旦“安装”,启动/停止工作正常
根据需要用Upstart(init)代替systemv(init.d)或SystemD,当然还有很多其他选项。是的,我同时也读到了关于服务模块的内容。我目前正在尝试自动创建作为守护进程运行所需的工件。我想可能会有一个Ansible模块。此外,我还必须将脚本复制到init.d,注册服务,等等。。。我希望Ansible能为我抽象出这种低级的东西。不,Ansible不能这样做,因为在不同的操作系统/发行版上有一百万种不同的创建服务脚本的方法。Ansible可以确保您注册的服务已启用并正在运行,但没有内置模块可以从任意文件创建服务。Thans Mxx。你为什么不把这个贴出来作为答案呢?如果几天内没有其他事情发生,我会接受的。