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