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

标签 ubuntu service jar ansible devops

通过 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

更多信息:Ansible systemd module documentation

关于ubuntu - 在 Ubuntu 上通过 Ansible 将 Java Jar 作为服务运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43586389/

相关文章:

java - 无法执行 jar 文件 : "no main manifest attribute"

javascript - JavaScript 可以使用 jar 文件中的类吗(非互联网使用)

ubuntu - xkb : Correct way to interact with it on Mint 15/Ubuntu 13

windows - 在 Windows 10 Bash 上安装 webpack(Windows 上的 Ubuntu 上的 Bash)。继续获取 "webpack: command not found"

ruby-on-rails - Linux Rails Gem 安装错误

java - Java 服务提供 API 应该如何工作?

service - 如何为 systemd 日志创建日志条目?

java - 在 Ant 中运行 Junit 任务

amazon-web-services - 增加 EC2 磁盘大小

Angular2 InputFormControl 和 ValueChange 连续触发