orachide.springboot_service
Ansible Role Spring Boot アプリ
このAnsibleロールは、Spring Bootアプリケーションをサービスとしてインストールします。
このロールは、アプリケーションのアーティファクトをサーバーにコピーし、起動します。デフォルトでは、アプリケーションを管理するためのサービス(SystemV - init.d, Systemd)も作成します。
要件
あなたのSpring Bootアプリケーションは、次のリンクに従って完全に実行可能なjarとしてパッケージ化されている必要があります:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
ロール変数
変数名 | 必須 | デフォルト値 | 説明 |
---|---|---|---|
sb_app_install_java | false | true | アプリインストール前にJavaをインストールするか |
sb_app_create_users | false | true | アプリインストール前にユーザーを作成するか |
sb_app_name | true | なし | アプリケーション名 |
sb_app_group_id | true | なし | MavenアーティファクトグループID |
sb_app_artifact_id | true | なし | MavenアーティファクトID |
sb_app_version | true | なし | Mavenアーティファクトバージョン |
sb_app_user | true | なし | サーバー上のアプリケーションファイルの所有者 |
sb_app_user_group | true | なし | アプリケーションファイルを所有するグループ |
sb_app_extension | true | jar | アーティファクトファイルの拡張子(jar, war, ear) |
sb_app_state | false | present | インストールまたはアンインストールに応じて present または absent |
sb_app_classifier | false | なし | アーティファクトファイルの分類子(SOURCES, DOCS...) |
sb_maven_repository_url | false | Maven公式リポジトリ | MavenリポジトリのURL |
sb_app_repository_username | false | なし | Mavenリポジトリ認証に使用されるユーザー名 |
sb_app_repository_password | false | なし | Mavenリポジトリ認証に使用されるパスワード |
sb_app_artifact_file | false | なし | デプロイするアーティファクトへのローカルパス。定義されている場合、ロールは sb_maven_repository_url からアーティファクトをダウンロードせず、ローカルアーティファクトファイルを使用します。 |
sb_local_maven_artifact_download | false | false | アーティファクトを最初にローカルにダウンロードし、その後リモートホストにコピーするか? |
sb_applications_root_folder | false | /opt/applis | アプリケーションファイルがコピーされるルートフォルダー |
sb_app_java_opts_xms | false | 256M | JAVA XMS値 |
sb_app_java_opts_xmx | false | 1024M | JAVA XMX値 |
sb_app_java_opts_others | false | なし | カスタムJAVA_OPTSオプション |
sb_app_config_file_template_path | false | なし | Springアプリケーションのymlファイルテンプレートパス。このファイルはアーティファクトの近くにコピーされます。 |
sb_app_config_file_final_name | false | application.yml | 設定ファイルの最終名、*.ymlまたは*.propertiesにすることができます。 |
sb_app_logback_file_template_path | false | なし | Logbackファイルのテンプレートパス。このファイルは logging.config システムプロパティを設定することで読み込まれます。 |
sb_app_healthcheck_urls | false | なし | サービスが正常かどうかを確認するためのHttp URL(配列である必要があります) |
sb_app_healthcheck_ports | false | なし | サービスが正常かどうかを確認するためのTCPポート(配列である必要があります) |
sb_app_service_java_home | false | なし | 使用する JAVA_HOME を設定 |
sb_app_stop_wait_time | false | 60秒 | アプリケーションを停止する際に強制終了する前に待つ秒数 |
sb_app_env | false | 名前と値の配列 | 環境ファイルに追加される環境変数 |
依存関係
このロールは geerlingguy.java を使用してJAVAをインストールできます。
このロールは singleplatform-eng.users を使用してアプリユーザーを作成できます。
例プレイブック
ローカルMavenアーティファクトの使用
- name: Converge
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
MavenリポジトリからのMavenアーティファクトの使用
- name: Converge
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
同じホストに複数のマイクロサービスをデプロイ
- name: Converge
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"
ライセンス
BSD
著者情報
このロールは2018年に Rachide Ouattara によって作られました。
プロジェクトについて
Deploy Spring Boot application as a service (initd or Systemd)
インストール
ansible-galaxy install orachide.springboot_service
ライセンス
Unknown
ダウンロード
1.3k
所有者
Want to learn and share more and more !!!!