community.general.maven_artifact – Загрузка артефакта из репозитория Maven
Примечание
Этот плагин входит в коллекцию community.general (версия 2.0.1).
Для его установки используйте: ansible-galaxy collection install community.general.
Для использования в плейбуке укажите: community.general.maven_artifact.
Обзор
- Загружает артефакт из репозитория Maven, используя координаты Maven, предоставленные модулю.
- Может извлекать снимки или релизы артефакта и определять последнюю доступную версию, если она не указана.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- lxml
- boto, если используется репозиторий S3 (s3://…)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| artifact_id строка / обязательно | Координата maven artifactId | |
| attributes строка добавлено в 2.3 ansible.builtin | Атрибуты, которые должны иметь полученный файл или каталог. Чтобы получить поддерживаемые флаги, см. страницу справки для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и отображается командой lsattr. Оператор = предполагается по умолчанию, в противном случае операторы + или - должны быть включены в строку.псевдонимы: attr | |
| classifier строка | Координата maven classifier | |
| client_cert путь добавлено в 1.3.0 community.general | Файл цепочки сертификатов в формате PEM, используемый для аутентификации клиента SSL. Этот файл также может содержать ключ, и если ключ включен, опция client_key не требуется. | |
| client_key путь добавлено в 1.3.0 community.general | Файл в формате PEM, содержащий ваш закрытый ключ, используемый для аутентификации клиента SSL. Если client_cert содержит как сертификат, так и ключ, эта опция не требуется. | |
| dest путь / обязательно | Путь, куда должен быть записан артефакт. Если указаны режим файла или права доступа, а целевой путь уже существует, они повлияют на загружаемый файл | |
| extension строка | По умолчанию: "jar" | Координата maven type/extension |
| force_basic_auth булево добавлено в 0.2.0 community.general |
| httplib2, библиотека, используемая модулем uri, отправляет информацию об аутентификации только тогда, когда веб-сервис отвечает на начальный запрос статусом 401. Поскольку некоторые сервисы basic auth не отправляют должным образом 401, вход может завершиться неудачей. Эта опция принуждает к отправке заголовка Basic authentication при первоначальном запросе. |
| group строка | Имя группы, которая должна владеть файлом/каталогом, как это подаётся в chown. | |
| group_id строка / обязательно | Координата Maven groupId | |
| headers словарь | Добавление пользовательских HTTP-заголовков к запросу в формате словаря/списка. | |
| keep_name булево |
| Если yes, имя загружаемого артефакта сохраняется, т.е. номер версии остается его частью.Эта опция действует только тогда, когда dest является каталогом и version установлено в latest или version_by_spec определено. |
| mode сырой | Права доступа, которые должен иметь полученный файл или каталог. Для тех, кто привык к /usr/bin/chmod, помните, что режимы на самом деле являются восьмеричными числами. Вы должны либо добавить ведущую нуль, чтобы парсер YAML Ansible знал, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и мог выполнить собственное преобразование из строки в число.Передача Ansible числа без соблюдения одного из этих правил приведет к десятичному числу, что повлечет за собой неожиданные результаты. Начиная с Ansible 1.8, режим может быть указан как символический режим (например, u+rwx или u=rw,g=r,o=r).Если mode не указан, и целевой файл не существует, по умолчанию будет использоваться umask на системе при установке режима для вновь созданного файла.Если mode не указан, а целевой файл существует, будет использоваться режим существующего файла.Указание mode — лучший способ гарантировать, что файлы создаются с правильными правами доступа. См. CVE-2020-1736 для получения дополнительной информации. | |
| owner строка | Имя пользователя, который должен владеть файлом/каталогом, как это передаётся в chown. | |
| password строка | Пароль для аутентификации в репозитории Maven. Используйте ключ доступа AWS, если репозиторий размещен на S3 псевдонимы: aws_secret_access_key | |
| repository_url строка | По умолчанию: "https://repo1.maven.org/maven2" | URL репозитория Maven для загрузки. Используйте s3://... если репозиторий размещен на Amazon S3, добавлено в версии 2.2. Используйте file://... если репозиторий локальный, добавлено в версии 2.6 |
| selevel строка | Часть уровня SELinux файлового контекста. Это атрибут MLS/MCS, иногда известный как range. При установке в _default, будет использоваться часть политики level, если она доступна. | |
| serole строка | Часть роли SELinux файлового контекста. При установке в _default, будет использоваться часть политики role, если она доступна. | |
| setype строка | Часть типа SELinux файлового контекста. При установке в _default, будет использоваться часть политики type, если она доступна. | |
| seuser строка | Часть пользователя SELinux файлового контекста. По умолчанию используется политика system, где это применимо.При установке в _default, будет использоваться часть политики user, если она доступна. | |
| state строка |
| Желаемое состояние артефакта |
| timeout целое число | По умолчанию: 10 | Устанавливает таймаут в секундах для попытки подключения |
| unsafe_writes булево добавлено в 2.2 ansible.builtin |
| Влияние на использование атомарной операции для предотвращения повреждения данных или несогласованных чтений из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это предотвращает это. Один пример — смонтированные файлы Docker, которые не могут обновляться атомарно изнутри контейнера и могут быть записаны только небезопасным способом. Эта опция позволяет Ansible переходить к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачей (однако она не принуждает Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
| username строка | Имя пользователя для аутентификации в репозитории Maven. Используйте ключ доступа AWS, если репозиторий размещен на S3 псевдонимы: aws_secret_key | |
| validate_certs булево |
| Если no, сертификаты SSL не будут проверены. Это следует установить только в no в случае отсутствия других вариантов. |
| verify_checksum строка |
| Если never, контрольная сумма md5 никогда не будет загружена и проверена.Если download, контрольная сумма md5 будет загружена и проверена только после загрузки артефакта. Это значение по умолчанию.Если change, контрольная сумма md5 будет загружена и проверена, если целевой файл уже существует, чтобы проверить, идентичны ли они. Такое поведение было до версии 2.6. Поскольку она загружает md5 до (возможно) загрузки артефакта, и так как некоторые программы репозиториев, действующие как прокси/кеш, возвращают ошибку 404, если артефакт еще не был помещен в кеш, она может завершиться неожиданной ошибкой. Если вам всё ещё нужно это, вы должны рассмотреть использование always вместо этого — если вы работаете с контрольной суммой, лучше использовать её для проверки целостности после загрузки.always объединяет download и change. |
| version строка | Координата Maven version Взаимоисключающее с version_by_spec. | |
| version_by_spec строка добавлено в 0.2.0 community.general | Диапазоны версий зависимостей maven. См. поддерживаемые диапазоны версий на https://cwiki.apache.org/confluence/display/MAVENOLD/Dependency+Mediation+and+Conflict+Resolution
Диапазон типов "(,1.0],[1.2,)" и "(,1.1),(1.1,)" не поддерживается. Взаимоисключающее с version. |
Примеры
- name: Download the latest version of the JUnit framework artifact from Maven Central
community.general.maven_artifact:
group_id: junit
artifact_id: junit
dest: /tmp/junit-latest.jar
- name: Download JUnit 4.11 from Maven Central
community.general.maven_artifact:
group_id: junit
artifact_id: junit
version: 4.11
dest: /tmp/junit-4.11.jar
- name: Download an artifact from a private repository requiring authentication
community.general.maven_artifact:
group_id: com.company
artifact_id: library-name
repository_url: 'https://repo.company.com/maven'
username: user
password: pass
dest: /tmp/library-name-latest.jar
- name: Download an artifact from a private repository requiring certificate authentication
community.general.maven_artifact:
group_id: com.company
artifact_id: library-name
repository_url: 'https://repo.company.com/maven'
client_cert: /path/to/cert.pem
client_key: /path/to/key.pem
dest: /tmp/library-name-latest.jar
- name: Download a WAR File to the Tomcat webapps directory to be deployed
community.general.maven_artifact:
group_id: com.company
artifact_id: web-app
extension: war
repository_url: 'https://repo.company.com/maven'
dest: /var/lib/tomcat7/webapps/web-app.war
- name: Keep a downloaded artifact's name, i.e. retain the version
community.general.maven_artifact:
version: latest
artifact_id: spring-core
group_id: org.springframework
dest: /tmp/
keep_name: yes
- name: Download the latest version of the JUnit framework artifact from Maven local
community.general.maven_artifact:
group_id: junit
artifact_id: junit
dest: /tmp/junit-latest.jar
repository_url: "file://{{ lookup('env','HOME') }}/.m2/repository"
- name: Download the latest version between 3.8 and 4.0 (exclusive) of the JUnit framework artifact from Maven Central
community.general.maven_artifact:
group_id: junit
artifact_id: junit
version_by_spec: "[3.8,4.0)"
dest: /tmp/
Авторы
- Chris Schmidt (@chrisisbeef)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/maven_artifact_module.html