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

Run Java Jar as Service via Ansible on Ubuntu

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

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

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

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

谢谢

根据底层盒子的初始化系统(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

如果您的初始化方法是 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

更多信息:Ansible systemd module documentation