orachide.springboot_service

Ansible Role Spring Boot アプリ

ビルドステータス Ansible Galaxy

このAnsibleロールは、Spring Bootアプリケーションをサービスとしてインストールします。

このロールは、アプリケーションのアーティファクトをサーバーにコピーし、起動します。デフォルトでは、アプリケーションを管理するためのサービス(SystemV - init.d, Systemd)も作成します。

要件

あなたのSpring Bootアプリケーションは、次のリンクに従って完全に実行可能なjarとしてパッケージ化されている必要があります:

https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html#deployment-install

<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 !!!!