在Ubuntu上通过Ansible运行Java Jar作为服务

时间:2017-04-24 11:03:45

标签: ubuntu service jar ansible devops

通过Ansible运行独立.jar作为服务的最佳方法是什么?

我需要在Ubuntu EC2主机上通过ansible运行metabase.jar。

我应该守护它吗?有没有推荐的方法或库?

理想情况下,如果可能,我想通过Ansible处理程序来管理状态。

由于

1 个答案:

答案 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

更多信息:Ansible systemd module documentation