maven_artifact - Загрузка артефакта из репозитория Maven
Новая версия в 2.0.
Обзор
- Загружает артефакт из репозитория Maven, используя координаты Maven, предоставленные модулю.
- Может извлекать снимки или релизные версии артефакта и будет разрешать последнюю доступную версию, если она отсутствует.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- lxml
- boto, если используется репозиторий S3 (s3://…)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| artifact_id обязательно | Координата maven artifactId | |
| attributes (добавлено в 2.3) | Атрибуты файла или каталога. Для получения поддерживаемых флагов см. справку man для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и в отображаемом выводе lsattr. псевдонимы: attr | |
| classifier | Координата maven classifier | |
| dest обязательно | Путь, куда должен быть записан артефакт Если заданы права доступа к файлу или владельца, и целевой путь уже существует, они влияют на загружаемый файл | |
| extension | По умолчанию: "jar" | Координата maven type/extension |
| group | Имя группы, которая должна владеть файлом/каталогом, как это подается в chown. | |
| group_id обязательно | Координата Maven groupId | |
| keep_name bool (добавлено в 2.4) |
| Если yes, имя загруженного артефакта сохраняется, то есть номер версии остается частью имени.Этот параметр имеет эффект только тогда, когда dest является каталогом и version установлено в latest. |
| mode | Режим файла или каталога. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны указать ведущий ноль, чтобы парсер YAML Ansible понял, что это восьмеричное число (например, 0644 или 01777), или заключить его в кавычки (например, '644' или '0644'), чтобы Ansible получил строку и мог выполнить преобразование строки в число. Если вы передадите Ansible число без соблюдения этих правил, это будет интерпретировано как десятичное число, что приведёт к неожиданным результатам. С версии 1.8 режим может быть задан в символьном виде (например, u+rwx или u=rw,g=r,o=r). | |
| owner | Имя пользователя, который должен владеть файлом/каталогом, как это подается в chown. | |
| password | Пароль для аутентификации с репозиторием Maven. Используйте ключ доступа AWS, если репозиторий размещен в S3 псевдонимы: aws_secret_access_key | |
| repository_url | По умолчанию: "http://repo1.maven.org/maven2" | URL репозитория Maven для загрузки. Используйте s3://... если репозиторий размещен в Amazon S3, добавлено в версии 2.2. Используйте file://... если репозиторий локальный, добавлено в версии 2.6 |
| selevel | По умолчанию: "s0" | Часть контекста файла SELinux. Это атрибут MLS/MCS, иногда известный как range. Функция _default работает так же, как для seuser. |
| serole | Роль в контексте файла SELinux, функция _default работает так же, как для seuser. | |
| setype | Тип в контексте файла SELinux, функция _default работает так же, как для seuser. | |
| seuser | Пользователь в контексте файла SELinux. По умолчанию будет использоваться политика системы, если применимо. Если задано _default, будет использоваться часть политики user, если она доступна. | |
| state |
| Желаемое состояние артефакта |
| timeout (добавлено в 2.3) | По умолчанию: 10 | Устанавливает тайм-аут в секундах для попытки подключения |
| unsafe_writes bool (добавлено в 2.2) |
| Обычно этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или работают некорректно, что препятствует этому. Одним из примеров являются файлы, смонтированные в Docker; они не могут быть обновлены атомарно и могут обновляться только небезопасными способами. Этот булевый параметр позволяет Ansible использовать небезопасные методы обновления файлов в тех случаях, когда у вас нет другого выбора. Имейте в виду, что это подвержено гонкам и может привести к повреждению данных. |
| username | Имя пользователя для аутентификации в репозитории Maven. Используйте ключ доступа AWS, если репозиторий размещен в S3 псевдонимы: aws_secret_key | |
| validate_certs bool (добавлено в 1.9.3) |
| Если no, сертификаты SSL не будут проверены. Это следует устанавливать в no только в крайнем случае. |
| verify_checksum (добавлено в 2.6) |
| Если never, контрольная сумма md5 никогда не будет загружена и проверена.Если download, контрольная сумма md5 будет загружена и проверена только после загрузки артефакта. Это значение по умолчанию.Если change, контрольная сумма md5 будет загружена и проверена, если целевой файл уже существует, чтобы проверить их идентичность. Это было поведением до версии 2.6. Поскольку контрольная сумма загружается до (возможно) загрузки артефакта, и поскольку некоторые репозиторные программы, действуя в качестве прокси/кеша, возвращают ошибку 404, если артефакт ещё не был помещен в кэш, это может привести к неожиданным сбоям. Если вам всё ещё нужно это, вы должны рассмотреть использование always вместо этого — если вы работаете с контрольной суммой, лучше использовать её для проверки целостности после загрузки.always объединяет download и change. |
| version | По умолчанию: "latest" | Координата maven version |
Примеры
# Download the latest version of the JUnit framework artifact from Maven Central
- maven_artifact:
group_id: junit
artifact_id: junit
dest: /tmp/junit-latest.jar
# Download JUnit 4.11 from Maven Central
- maven_artifact:
group_id: junit
artifact_id: junit
version: 4.11
dest: /tmp/junit-4.11.jar
# Download an artifact from a private repository requiring authentication
- 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
# Download a WAR File to the Tomcat webapps directory to be deployed
- 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
# Keep a downloaded artifact's name, i.e. retain the version
- maven_artifact:
version: latest
artifact_id: spring-core
group_id: org.springframework
dest: /tmp/
keep_name: yes
# Download the latest version of the JUnit framework artifact from Maven local
- maven_artifact:
group_id: junit
artifact_id: junit
dest: /tmp/junit-latest.jar
repository_url: "file://{{ lookup('env','HOME') }}/.m2/repository"
Статус
Этот модуль помечен как предварительный, что означает, что его интерфейс не гарантируется обратно совместимым.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. См. Техническое обслуживание и поддержка модулей для получения дополнительной информации.
Список других модулей, поддерживаемых сообществом Ansible, см. в этом разделе.
Автор
- Chris Schmidt (@chrisisbeef)
Подсказка
Если вы заметите какие-либо проблемы в этом документе, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/maven_artifact_module.html