sweet-tooth-clojure.clojure-uberjar-webapp-app

Clojure Uberjar Webapp: 应用程序

这个角色配置一个服务器来运行一个独立的 Java 程序作为网页服务器。它完成以下几件事:

  • 安装运行 Java 程序所需的包(openjdk-8-jre)
  • 安装一个 upstart 脚本来将程序作为服务运行
  • 依赖环境变量来配置你的程序

请查看 https://github.com/sweet-tooth-clojure/ansible-roles 以获取快速概述和说明。请参阅 部署你的第一个 Clojure 应用...从阴影中 获取 Ansible 的入门指南和这个角色的深入解释。

要求

角色变量

我尽量将参数化处理得尽可能全面,并定义默认值,这样你只需要定义少量变量就能使一切正常工作。如果你定义了 clojure_uberjar_webapp_domain,那么 flyingmachine.clojure-uberjar-webapp-common 将会定义 clojure_uberjar_webapp_app_name,这在大多数变量中都会用到。

例如,如果你的域名是 foo.bar.com,那么应用程序名将是 foo-bar-com。你的 Java JAR 文件将上传到 /var/www/foo-bar-com/foo-bar-com.jar。upstart 服务将命名为 foo-bar-com,你会在 /var/log/foo-bar-com/foo-bar-com.log 下找到日志。我发现这种一致性使得在文件系统中导航更容易。

有些变量与 datomic 有关,但这些是可选的。我希望改善角色,使得该角色不包含对 datomic 的任何引用。

变量 描述
clojure_uberjar_webapp_app_user 拥有应用程序相关文件的用户
clojure_uberjar_webapp_app_http_port 启动 JAR 时设置为 HTTP_SERVER_PORT 环境变量
clojure_uberjar_webapp_app_http_env_path 放置导出 HTTP_SERVER_PORT 的文件的位置;在 upstart 中被引用
clojure_uberjar_webapp_app_service_name 在 upstart 中使用,例如 sudo service xyz start
clojure_uberjar_webapp_app_jar_name 复制 JAR 文件到服务器时使用的名称
clojure_uberjar_webapp_app_env_local_path 在本地机器上查找设置其他环境变量的文件的位置
clojure_uberjar_webapp_app_env_path 保存设置应用程序环境变量的文件的位置;在 upstart 脚本中被引用
clojure_uberjar_webapp_app_check_local_path 在本地机器上查找检查部署所需脚本模板的位置
clojure_uberjar_webapp_app_command 在 upstart 脚本中用于启动网页应用程序

依赖关系

示例剧本

---
- hosts: webservers
  become: true
  become_method: sudo
  roles:
    - "sweet-tooth-clojure.clojure-uberjar-webapp-common"
    - "sweet-tooth-clojure.clojure-uberjar-webapp-nginx"
    - "sweet-tooth-clojure.clojure-uberjar-webapp-datomic-free"
    - "sweet-tooth-clojure.clojure-uberjar-webapp-app"

GitHub 仓库

https://github.com/sweet-tooth-clojure/ansible-role-clojure-uberjar-webapp-app

许可证

MIT

作者信息

Daniel Higginbotham

关于项目

Run an uberjar web app

安装
ansible-galaxy install sweet-tooth-clojure.clojure-uberjar-webapp-app
许可证
Unknown
下载
408