orachide.springboot_service
Ansible Rolle für Spring Boot App
Ansible-Rolle, die eine Spring Boot-Anwendung als Dienst installiert.
Diese Rolle kopiert das Anwendungsartefakt auf den Server und startet es. Standardmäßig erstellt die Rolle auch einen Dienst (SystemV - init.d, Systemd), um die Anwendung zu verwalten.
Anforderungen
Ihre Spring Boot-Anwendung sollte zuvor als vollständig ausführbare JAR verpackt werden, wie hier erklärt:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
Rollenvariablen
Variablen | Erforderlich | Standardwert | Beschreibung |
---|---|---|---|
sb_app_install_java | falsch | true | Soll Java vor der Installation der App installiert werden? |
sb_app_create_users | falsch | true | Soll Benutzer vor der Installation der App erstellt werden? |
sb_app_name | wahr | Keine | Der Anwendungsname |
sb_app_group_id | wahr | Keine | Die Maven-Artefaktgruppen-ID |
sb_app_artifact_id | wahr | Keine | Die Maven-Artefakt-ID |
sb_app_version | wahr | Keine | Die Maven-Artefaktversion |
sb_app_user | wahr | Keine | Der Besitzer der Anwendungsdateien auf dem Server |
sb_app_user_group | wahr | Keine | Die Gruppe, die die Anwendungsdateien besitzt |
sb_app_extension | wahr | jar | Die Dateierweiterung des Artefakts. (jar, war, ear) |
sb_app_state | falsch | present | Kann entweder present oder absent sein, je nachdem, ob installiert oder deinstalliert werden soll |
sb_app_classifier | falsch | Keine | Der Klassifizierer der Artefaktdatei (SOURCES, DOCS...) |
sb_maven_repository_url | falsch | Maven offizielles Repository | Die URL zum Maven-Repository |
sb_app_repository_username | falsch | Keine | Benutzername für die Authentifizierung im Maven-Repository |
sb_app_repository_password | falsch | Keine | Passwort für die Authentifizierung im Maven-Repository |
sb_app_artifact_file | falsch | Keine | Der lokale Pfad zum Artefakt, das bereitgestellt werden soll. Wenn angegeben, lädt die Rolle das Artefakt nicht von sb_maven_repository_url herunter, sondern verwendet die lokale Artefaktdatei. |
sb_local_maven_artifact_dowload | falsch | falsch | Soll das Artefakt zunächst lokal heruntergeladen und dann auf den Remote-Host kopiert werden? |
sb_applications_root_folder | falsch | /opt/applis | Der Stammordner, in den die Anwendungsdateien kopiert werden |
sb_app_java_opts_xms | falsch | 256M | JAVA XMS-Wert |
sb_app_java_opts_xmx | falsch | 1024M | JAVA XMX-Wert |
sb_app_java_opts_others | falsch | Keine | Benutzerdefinierte JAVA_OPTS-Optionen |
sb_app_config_file_template_path | falsch | Keine | Pfad zur Vorlage der Spring application.yml-Datei. Diese Datei wird in die Nähe des Artefakts kopiert |
sb_app_config_file_final_name | falsch | application.yml | Endgültiger Name der Konfigurationsdatei, kann *.yml oder .properties sein |
sb_app_logback_file_template_path | falsch | Keine | Pfad zur Vorlage der Logback-Datei. Diese Datei wird geladen, indem die System-Eigenschaft logging.config festgelegt wird |
sb_app_healthcheck_urls | falsch | Keine | Http-URLs zur Überprüfung, ob der Dienst gesund ist (sollte ein Array sein) |
sb_app_healthcheck_ports | falsch | Keine | TCP-Ports zur Überprüfung, ob der Dienst gesund ist (sollte ein Array sein) |
sb_app_service_java_home | falsch | Keine | Setzt das JAVA_HOME, das verwendet werden soll |
sb_app_stop_wait_time | falsch | 60 Sekunden | Die Zeit in Sekunden, die beim Stoppen der Anwendung gewartet werden soll, bevor ein erzwungenes Herunterfahren erfolgt |
sb_app_env | falsch | Array mit Namen und Wert | Umgebungsvariablen, die in die EnvironmentFile hinzugefügt werden |
Abhängigkeiten
Diese Rolle kann JAVA mit geerlingguy.java installieren.
Diese Rolle kann APP-Benutzer mit singleplatform-eng.users erstellen.
Beispiel-Playbook
Verwendung eines lokalen Maven-Artefakts
- name: Zusammenführen
hosts: alle
roles:
- role: ansible-role-springboot
sb_app_name: dummy-boot-app
sb_app_group_id: fr.chidix
sb_app_artifact_id: dummy-boot-app
sb_app_version: 0.0.1-SNAPSHOT
sb_app_extension: jar
sb_app_user: sbuser
sb_app_user_group: sbgroup
sb_local_maven_artifact_dowload: falsch
sb_app_artifact_file: "{{ playbook_dir}}/artifacts/dummy-boot-app-0.0.1-SNAPSHOT.jar"
sb_app_config_file_template_path: "{{ playbook_dir }}/templates/dummy-boot-app-configuration.yml.j2"
sb_app_java_opts_others: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6006"
sb_app_healthcheck_urls:
- "http://localhost:8082/actuator/health"
sb_app_healthcheck_ports:
- 8082
sb_app_env:
- name: LOGGING_PATH
value: "{{ sb_applications_root_folder }}/{{ sb_app_name | upper }}/logs"
- name: SERVER_PORT
value: 8080
Verwendung eines Maven-Artefakts aus einem Maven-Repository
- name: Zusammenführen
hosts: alle
roles:
- role: ansible-role-springboot
sb_app_as_a_service: true
sb_app_name: dummy-boot-app
sb_app_group_id: fr.chidix
sb_app_artifact_id: dummy-boot-app
sb_app_version: 0.0.1-SNAPSHOT
sb_app_extension: jar
sb_app_user: sbuser
sb_app_user_group: sbgroup
sb_maven_repository_url: https://my-private-maven-repository/repository/maven-snapshots/
sb_app_repository_username: mein-benutzer
sb_app_repository_password: mein-sehr-sicheres-passwort
sb_local_maven_artifact_dowload: falsch
sb_app_config_file_template_path: "{{ playbook_dir }}/templates/dummy-boot-app-configuration.yml.j2"
sb_app_healthcheck_urls:
- "http://localhost:8082/actuator/health"
sb_app_healthcheck_ports:
- 8082
sb_app_env:
- name: LOGGING_PATH
value: "{{ sb_applications_root_folder }}/{{ sb_app_name | upper }}/logs"
- name: SERVER_PORT
value: 8080
Mehrere Microservices auf denselben Hosts bereitstellen
- name: Zusammenführen
hosts: alle
vars:
# Gemeinsame Variablen für alle Bereitstellungen hier hinzufügen
sb_java_package: java-1.8.0-openjdk
sb_app_as_a_service: true
sb_app_extension: jar
sb_applications_root_folder: /opt/applis
sb_app_group_id: "org.springframework.samples.service.service"
roles:
- {
role: "ansible-role-springboot",
sb_app_name: "microservices-registration",
sb_app_artifact_id: "my-frontend",
sb_app_version: "2.0.0.RELEASE",
sb_app_run_args: '"registration 8082"',
sb_app_healthcheck_urls: [
"http://localhost:8082/actuator/health"
]
}
- {
role: "ansible-role-springboot",
sb_app_name: "microservices-web",
sb_app_artifact_id: "my-backend",
sb_app_version: "2.0.0.RELEASE",
sb_app_run_args: '"web 8083"',
sb_app_healthcheck_urls: [
"http://localhost:8083/actuator/health"
]
}
Lizenz
BSD
Autoreninformation
Diese Rolle wurde 2018 von Rachide Ouattara erstellt.
Über das Projekt
Deploy Spring Boot application as a service (initd or Systemd)
Installieren
ansible-galaxy install orachide.springboot_service
Lizenz
Unknown
Downloads
1.3k
Besitzer
Want to learn and share more and more !!!!