通过Ansible运行独立.jar作为服务的最佳方法是什么?
我需要在Ubuntu EC2主机上通过ansible运行metabase.jar。
我应该守护它吗?有没有推荐的方法或库?
理想情况下,如果可能,我想通过Ansible处理程序来管理状态。
由于
答案 0 :(得分:4)
根据底层框的init系统(init.d或systemctl),有两种方法。
<强>的init.d 强>
使用ansible,您可以在
下创建应用程序jar的符号链接/etc/init.d/<your_service_name>
然后,您可以使用ansible的服务模块来管理状态 服务
- service:
name: <your_service_name>
state: restarted
更多信息:Ansible service module documentation
<强> systemctl 强>
如果您的init方法是systemd,则必须创建一个非常简单的Unit文件
[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