orachide.springboot_service
Ansible角色 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_dowload | 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 application.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: 合并
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_dowload: 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: 合并
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_dowload: 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: 合并
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
作者信息
此角色由Rachide Ouattara于2018年创建。
关于项目
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 !!!!