У нас есть веб-приложение, которое предъявляет аналогичные требования, нам нужно включить файлы с указанием местоположения c при развертывании нашего приложения в этом месте.
Я не уверен, что это лучший маршрут, но мы включили использование Ansible в наш конвейер развертывания. Наша Ansible playbook использует файл hosts, который содержит переменные для местоположения и версии jar для развертывания.
Опять же, наша ситуация другая, но то же самое должно работать.
Например, , вы можете получить что-то вроде этого ...
Ваш Ansible файл инвентаря (хостов) может выглядеть следующим образом
[servers]
xxx.xxx.xxx.xxx
[all:vars]
app_name=mfgweb
env=qa
app_version=2020.03.4
*** If your artifact is a jar file
jar_group=com.somegroup
jar_name=some_jar <-- note: no extentsion
jar_version=2019.11.3
Ваша книга воспроизведения может выглядеть примерно так
---
- hosts: localhost
connection: local
tasks:
- name: Find old working directories
find:
paths: /tmp
patterns: 'ansible.*'
file_type: directory
age: 2d
register: tmp_dirs
- name: Cleanup old working directories
file:
path: "{{ item }}"
state: absent
loop: "{{ tmp_dirs.files | map(attribute='path') | list }}"
- name: Create working directory
tempfile:
state: directory
suffix: work
register: workdir
- name: Download artifact
maven_artifact:
group_id: "{{ jar_group }}"
artifact_id: "{{ jar_name }}"
version: "{{ jar_version }}"
repository_url: "{{ artifacts_url }}"
username: "{{ artifacts_user }}"
password: "{{ artifacts_password }}"
verify_checksum: never
dest: "{{ workdir.path }}/{{ app_name }}/"
Это всего лишь пример, но вы сможете установить необходимое программное обеспечение в вашу игровую книгу, используя yum и / или pip.
Документация Ansible очень хорошая и полная. Также вы можете найти много помощи здесь на SO.
Я надеюсь, что это дает вам представление о том, как продолжить