sweet-tooth-clojure.clojure-uberjar-webapp-app
Clojure Uberjar Webapp: App
Diese Rolle konfiguriert einen Server, um ein eigenständiges Java-Programm als Webserver auszuführen. Es:
- Installiert die benötigten Pakete, um ein Java-Programm auszuführen (openjdk-8-jre)
- Installiert ein Upstart-Skript, um das Programm als Dienst auszuführen
- Nutzt Umgebungsvariablen, um dein Programm zu konfigurieren
Siehe https://github.com/sweet-tooth-clojure/ansible-roles für einen schnellen Überblick und Anleitungen. Siehe Deploying Your First Clojure App ...From the Shadows für eine Einführung in Ansible und eine ausführliche Erklärung dieser Rolle.
Anforderungen
Keine
Rollenvariablen
Ich habe versucht, so viel wie möglich zu parametrisieren, um Standardwerte zu definieren, damit du nur ein paar Variablen angeben musst, damit alles funktioniert. Wenn du clojure_uberjar_webapp_domain
definierst, dann wird flyingmachine.clojure-uberjar-webapp-common
clojure_uberjar_webapp_app_name
definieren, welches von den meisten Variablen unten verwendet wird.
Zum Beispiel, wenn deine Domain foo.bar.com
ist, wird der App-Name foo-bar-com
sein. Deine Java-JAR wird hochgeladen nach
/var/www/foo-bar-com/foo-bar-com.jar
. Der Upstart-Dienst wird foo-bar-com
genannt, und du findest die Protokolle unter
/var/log/foo-bar-com/foo-bar-com.log
. Ich finde, dass diese Konsistenz es einfacher macht, im Dateisystem zu navigieren.
Es gibt einige Verweise auf Datomic-Variablen, aber diese sind optional. Ich hoffe, die Rollen so zu verbessern, dass diese Rolle keine Verweise auf Datomic enthält.
Variable | Beschreibung |
---|---|
clojure_uberjar_webapp_app_user |
Benutzer, der die app-bezogenen Dateien besitzt |
clojure_uberjar_webapp_app_http_port |
Wird als HTTP_SERVER_PORT Umgebungsvariable beim Starten der JAR gesetzt |
clojure_uberjar_webapp_app_http_env_path |
Wo die Datei platziert wird, die HTTP_SERVER_PORT exportiert; wird in Upstart verwendet |
clojure_uberjar_webapp_app_service_name |
Wird von Upstart verwendet, z.B. sudo service xyz start |
clojure_uberjar_webapp_app_jar_name |
Name, der beim Kopieren der JAR-Datei auf den Server verwendet wird |
clojure_uberjar_webapp_app_env_local_path |
Wo lokal nach der Datei gesucht wird, die andere Umgebungsvariablen für die Uberjar-App setzt |
clojure_uberjar_webapp_app_env_path |
Wo die Datei gespeichert wird, die die Umgebungsvariablen der App setzt; wird im Upstart-Skript verwendet |
clojure_uberjar_webapp_app_check_local_path |
Wo lokal nach einer Skriptschablone gesucht wird, um die Bereitstellung zu überprüfen |
clojure_uberjar_webapp_app_command |
Wird im Upstart-Skript verwendet, um die Web-App zu starten |
Abhängigkeiten
- flyingmachine.clojure-uberjar-webapp-common
- flyingmachine.clojure-uberjar-webapp-nginx
- ist nützlich, aber optional
Beispiel-Playbook
---
- 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 Repository
https://github.com/sweet-tooth-clojure/ansible-role-clojure-uberjar-webapp-app
Lizenz
MIT
Autoreninformation
Daniel Higginbotham
ansible-galaxy install sweet-tooth-clojure.clojure-uberjar-webapp-app