orachide.springboot_service
Rol Ansible dla aplikacji Spring Boot
Rola Ansible, która instaluje aplikację Spring Boot jako usługę.
Ta rola skopiuje artefakt aplikacji na serwer i uruchomi go. Domyślnie rola również utworzy usługę (SystemV - init.d, Systemd) do zarządzania aplikacją.
Wymagania
Twoja aplikacja Spring Boot powinna być wcześniej spakowana jako w pełni wykonywalny plik jar, jak opisano tutaj:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
Zmienne roli
Zmienne | Wymagane | Wartość domyślna | Opis |
---|---|---|---|
sb_app_install_java | fałsz | prawda | powinno zainstalować Jave przed instalacją aplikacji |
sb_app_create_users | fałsz | prawda | powinno utworzyć użytkowników przed instalacją aplikacji |
sb_app_name | prawda | Brak | nazwa aplikacji |
sb_app_group_id | prawda | Brak | identyfikator grupy artefaktu maven |
sb_app_artifact_id | prawda | Brak | identyfikator artefaktu maven |
sb_app_version | prawda | Brak | wersja artefaktu maven |
sb_app_user | prawda | Brak | właściciel plików aplikacji na serwerze |
sb_app_user_group | prawda | Brak | grupa właściciela plików aplikacji |
sb_app_extension | prawda | jar | rozszerzenie pliku artefaktu (jar, war, ear) |
sb_app_state | fałsz | obecny | Może być obecny lub nieobecny, w zależności od instalacji lub odinstalowania |
sb_app_classifier | fałsz | Brak | klasyfikator pliku artefaktu (SOURCES, DOCS...) |
sb_maven_repository_url | fałsz | oficjalne repo Maven | adres URL do repozytorium maven |
sb_app_repository_username | fałsz | Brak | nazwa użytkownika do autoryzacji w repozytorium maven |
sb_app_repository_password | fałsz | Brak | hasło do autoryzacji w repozytorium maven |
sb_app_artifact_file | fałsz | Brak | lokalna ścieżka do artefaktu do wdrożenia. Jeśli zdefiniowane, rola nie pobierze artefaktu z sb_maven_repository_url, ale użyje lokalnego pliku artefaktu. |
sb_local_maven_artifact_download | fałsz | fałsz | Artefakt powinien być pobrany lokalnie najpierw, a następnie skopiowany na zdalny host? |
sb_applications_root_folder | fałsz | /opt/applis | główny folder, do którego będą kopiowane pliki aplikacji |
sb_app_java_opts_xms | fałsz | 256M | wartość JAVA XMS |
sb_app_java_opts_xmx | fałsz | 1024M | wartość JAVA XMX |
sb_app_java_opts_others | fałsz | Brak | dodatkowe opcje JAVA_OPTS |
sb_app_config_file_template_path | fałsz | Brak | ścieżka do szablonu pliku application.yml. Ten plik zostanie skopiowany w pobliżu artefaktu |
sb_app_config_file_final_name | fałsz | application.yml | ostateczna nazwa pliku konfiguracyjnego, może być *.yml lub *.properties |
sb_app_logback_file_template_path | fałsz | Brak | ścieżka do szablonu pliku Logback. Ten plik będzie załadowany ustawiając właściwość systemową logging.config |
sb_app_healthcheck_urls | fałsz | Brak | Url do sprawdzenia stanu usługi (powinno być tablicą) |
sb_app_healthcheck_ports | fałsz | Brak | Porty TCP do sprawdzenia stanu usługi (powinno być tablicą) |
sb_app_service_java_home | fałsz | Brak | Ustaw JAVA_HOME do użycia |
sb_app_stop_wait_time | fałsz | 60 sek | Czas w sekundach, aby czekać podczas zatrzymywania aplikacji przed wymuszeniem zamknięcia |
sb_app_env | fałsz | tablica z nazwą i wartością | Zmienne środowiskowe, które zostaną dodane do EnvironmentFile |
Zależności
Ta rola może zainstalować JAVĘ używając geerlingguy.java
Ta rola może utworzyć użytkownika APP używając singleplatform-eng.users
Przykład Playbooka
Używając lokalnego artefaktu maven
- name: Konwergencja
hosts: all
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_download: false
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
Używając artefaktu maven z repozytorium maven
- name: Konwergencja
hosts: all
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: my-user
sb_app_repository_password: my-very-secure-password
sb_local_maven_artifact_download: false
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
Wdrażanie wielu mikroserwisów na tych samych hostach
- name: Konwergencja
hosts: all
vars:
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"
]
}
Licencja
BSD
Informacje o autorze
Ta rola została stworzona w 2018 roku przez Rachide Ouattara.
O projekcie
Deploy Spring Boot application as a service (initd or Systemd)
Zainstaluj
ansible-galaxy install orachide.springboot_service
Licencja
Unknown
Pobrania
1.3k
Właściciel
Want to learn and share more and more !!!!