sweet-tooth-clojure.clojure-uberjar-webapp-app
Clojure Uberjar Webapp : Application
Ce rôle configure un serveur pour exécuter un programme Java autonome en tant que serveur web. Il :
- Installe les paquets nécessaires pour exécuter un programme Java (openjdk-8-jre)
- Installe un script upstart pour exécuter le programme en tant que service
- S’appuie sur des variables d'environnement pour configurer votre programme
Consultez https://github.com/sweet-tooth-clojure/ansible-roles pour un aperçu rapide et des instructions. Consultez Déployer votre première application Clojure... de l'ombre pour un guide d'introduction à Ansible et une explication détaillée de ce rôle.
Exigences
Aucune
Variables du rôle
J'ai essayé de paramétrer autant que possible, mais de définir des valeurs par défaut afin que vous n'ayez qu'à définir quelques variables pour que tout fonctionne. Si vous définissez clojure_uberjar_webapp_domain
, alors flyingmachine.clojure-uberjar-webapp-common
définira clojure_uberjar_webapp_app_name
, qui est utilisé par la plupart des variables ci-dessous.
Par exemple, si votre domaine est foo.bar.com
, le nom de l'application sera foo-bar-com
. Votre fichier jar Java sera téléchargé dans /var/www/foo-bar-com/foo-bar-com.jar
. Le service upstart sera nommé foo-bar-com
, et vous trouverez les journaux sous /var/log/foo-bar-com/foo-bar-com.log
. Je trouve que cette cohérence facilite la navigation dans le système de fichiers.
Il y a quelques références à des variables datomic, mais celles-ci sont optionnelles. J'espère améliorer les rôles pour que ce rôle ne contienne aucune référence à datomic.
Variable | Description |
---|---|
clojure_uberjar_webapp_app_user |
utilisateur qui possède les fichiers liés à l'application |
clojure_uberjar_webapp_app_http_port |
défini comme variable d'environnement HTTP_SERVER_PORT lors du démarrage du jar |
clojure_uberjar_webapp_app_http_env_path |
où mettre le fichier qui exporte HTTP_SERVER_PORT ; sera source dans upstart |
clojure_uberjar_webapp_app_service_name |
utilisé par upstart, par exemple sudo service xyz start |
clojure_uberjar_webapp_app_jar_name |
nom à utiliser lors de la copie du fichier jar sur le serveur |
clojure_uberjar_webapp_app_env_local_path |
où chercher sur la machine locale le fichier qui définit d'autres variables d'environnement pour l'application uberjar |
clojure_uberjar_webapp_app_env_path |
où sauvegarder le fichier qui définit les variables d'environnement de l'application ; sera source dans le script upstart |
clojure_uberjar_webapp_app_check_local_path |
où chercher sur la machine locale un modèle de script pour vérifier le déploiement |
clojure_uberjar_webapp_app_command |
utilisé dans le script upstart pour démarrer l'application web |
Dépendances
- flyingmachine.clojure-uberjar-webapp-common
- flyingmachine.clojure-uberjar-webapp-nginx
- utile mais optionnel
Exemple de 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"
Dépôt GitHub
https://github.com/sweet-tooth-clojure/ansible-role-clojure-uberjar-webapp-app
Licence
MIT
Informations sur l'auteur
Daniel Higginbotham
ansible-galaxy install sweet-tooth-clojure.clojure-uberjar-webapp-app