通过 Ansible 将独立 .jar 作为服务运行的最佳方法是什么?
我需要在 Ubuntu EC2 主机上通过 ansible 运行 metabase.jar。
我应该守护它吗?有推荐的方法或库吗?
理想情况下,如果可能的话,我希望通过 Ansible 处理程序来管理状态。
谢谢
最佳答案
根据底层盒子的 init 系统(init.d 或 systemctl),有两种方法。
init.d
使用 ansible,您可以在
下创建应用程序 jar 的符号链接(symbolic link)/etc/init.d/<your_service_name>
然后你可以使用ansible的服务模块来管理 服务
- service:
name: <your_service_name>
state: restarted
更多信息:Ansible service module documentation
系统控制
如果您的 init 方法是 systemd,您将必须创建一个非常简单的单元文件
[Unit]
Description=<Description>
[Service]
ExecStart=/path/to/<your_app>.jar
[Install]
WantedBy=multi-user.target
将单元文件复制到
/etc/systemd/service/<your_unit_file>.service
然后就可以使用ansible的systemd模块来管理服务的状态
- name: Start Service
systemd:
name: <your service name>
state: started
关于ubuntu - 在 Ubuntu 上通过 Ansible 将 Java Jar 作为服务运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43586389/