community.general.maven_artifact – Загрузка артефакта из репозитория Maven
Примечание
Этот плагин входит в коллекцию community.general (версия 1.3.2).
Для его установки используйте: 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. Поскольку некоторые службы базовой аутентификации не отправляют должным образом 401, попытки входа могут завершиться неудачей. Этот параметр принуждает к отправке заголовка базовой аутентификации при первоначальном запросе. |
| 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). | |
| owner строка | Имя пользователя, который должен владеть файлом/каталогом, как передается в chown. | |
| password строка | Пароль для аутентификации в Maven Repository. Используйте ключ доступа AWS, если репозиторий размещен в S3. псевдонимы: aws_secret_access_key | |
| repository_url строка | По умолчанию: "https://repo1.maven.org/maven2" | URL Maven Repository для загрузки. Используйте 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 Repository. Используйте ключ доступа 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/maven_artifact_module.html