Spec-Zone.ru › Ansible

Модуль community.general.maven_artifact — загрузка артефакта из репозитория Maven

Примечание

Этот модуль входит в коллекцию community.general (версия 12.6.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install community.general. Для использования этого модуля необходимы дополнительные требования; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: community.general.maven_artifact.

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примеры

Краткое описание

  • Загружает артефакт из репозитория Maven по указанным модулю координатам Maven.
  • Может получать снимки или выпущенные версии артефакта и определять последнюю доступную версию, если версия не указана.

Требования

На хосте, на котором выполняется этот модуль, должны быть установлены следующие компоненты.

  • lxml
  • boto при использовании репозитория S3 (s3://...)

Параметры

Параметр

Комментарии

artifact_id

string / обязательный

Координата Maven artifactId.

attributes

псевдонимы: attr

string

Атрибуты, которые должен иметь созданный объект файловой системы.

Сведения о поддерживаемых флагах см. на странице руководства для chattr в целевой системе.

Строка должна содержать атрибуты в том же порядке, в каком они отображаются командой lsattr.

По умолчанию предполагается оператор =; в противном случае в строку необходимо включить операторы + или -.

checksum_alg

string

добавлено в community.general 3.2.0

Если задано md5, для контрольных сумм используется алгоритм MD5. Это значение используется по умолчанию.

Если задано sha1, для контрольных сумм используется алгоритм SHA1. Это можно использовать в системах, настроенных на применение алгоритмов, соответствующих FIPS, поскольку в таких системах MD5 заблокирован.

Варианты:

  • "md5" ← (по умолчанию)
  • "sha1"

classifier

string

Координата Maven classifier.

По умолчанию: ""

client_cert

path

добавлено в community.general 1.3.0

Файл цепочки сертификатов в формате PEM для аутентификации SSL-клиента.

Этот файл также может содержать ключ; если ключ включён в файл, параметр client_key не требуется.

client_key

path

добавлено в community.general 1.3.0

Файл в формате PEM с закрытым ключом для аутентификации SSL-клиента.

Если client_cert содержит и сертификат, и ключ, этот параметр не требуется.

dest

path / обязательный

Путь, по которому следует сохранить артефакт.

Если указаны режим файла или владелец, а целевой путь уже существует, эти параметры применяются к загруженному файлу.

directory_mode

string

Режим прав доступа файловой системы, рекурсивно применяемый к dest, если это каталог.

extension

string

Координата Maven type/extension.

По умолчанию: "jar"

force_basic_auth

boolean

добавлено в community.general 0.2.0

httplib2 библиотека, используемая модулем URI, отправляет данные аутентификации только в ответ на первоначальный запрос, если веб-служба возвращает статус 401. Некоторые службы с базовой аутентификацией некорректно отправляют статус 401, из-за чего вход выполнить не удаётся. Этот параметр принудительно добавляет заголовок базовой аутентификации уже к первоначальному запросу.

Варианты:

  • false ← (по умолчанию)
  • true

group

string

Имя группы, которой должен принадлежать объект файловой системы; оно передаётся команде chown.

Если значение не указано, используется текущая группа текущего пользователя; если же пользователь — root, может сохраняться прежний владелец.

group_id

string / обязательный

Координата Maven groupId.

headers

dictionary

Добавляет к запросу пользовательские HTTP-заголовки в формате hash/dict.

keep_name

boolean

Если задано true, исходное имя загруженного артефакта сохраняется, то есть номер версии остаётся частью имени.

Этот параметр действует только если dest — каталог, а version задано как latest или определено version_by_spec.

Варианты:

  • false ← (по умолчанию)
  • true

mode

any

Права доступа, которые должен иметь созданный объект файловой системы.

Если вы привыкли к /usr/bin/chmod, помните, что режимы на самом деле являются восьмеричными числами. Необходимо предоставить Ansible достаточно информации, чтобы он мог правильно их обработать. Для получения предсказуемого результата заключайте восьмеричные числа в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и самостоятельно преобразовал её в число. Добавление ведущего нуля (например, 0755) иногда работает, но может привести к сбоям в циклах и некоторых других случаях.

Если передать Ansible число, не соблюдая ни одно из этих правил, оно будет интерпретировано как десятичное, что приведёт к неожиданным результатам.

Начиная с Ansible 1.8, режим можно указывать в символьном формате (например, u+rwx или u=rw,g=r,o=r).

Если mode не указан и целевой объект файловой системы не существует, при задании режима для нового объекта файловой системы будет использоваться значение по умолчанию umask в системе.

Если mode не указан и целевой объект файловой системы существует, будет использоваться режим существующего объекта.

Указание mode — лучший способ обеспечить создание объектов файловой системы с правильными правами доступа. Подробности см. в CVE-2020-1736.

owner

string

Имя пользователя, которому должен принадлежать объект файловой системы; оно передаётся команде chown.

Если значение не указано, используется текущий пользователь; если же пользователь — root, может сохраняться прежний владелец.

Числовое имя пользователя будет считаться идентификатором пользователя, а не именем. Во избежание неоднозначности не используйте числовые имена пользователей.

password

псевдонимы: aws_secret_access_key

string

Пароль для аутентификации в репозитории Maven. Если репозиторий размещён в S3, используйте секретный ключ доступа AWS.

repository_url

string

URL репозитория Maven, из которого следует загрузить артефакт.

Используйте s3://..., если репозиторий размещён в Amazon S3.

Используйте file://..., если репозиторий локальный.

По умолчанию: "https://repo1.maven.org/maven2"

selevel

string

Уровень контекста объекта файловой системы SELinux.

Это атрибут MLS/MCS, иногда называемый range.

Если задано _default, будет использоваться часть политики level, если она доступна.

serole

string

Роль контекста объекта файловой системы SELinux.

Если задано _default, будет использоваться часть политики role, если она доступна.

setype

string

Тип контекста объекта файловой системы SELinux.

Если задано _default, будет использоваться часть политики type, если она доступна.

seuser

string

Пользователь контекста объекта файловой системы SELinux.

По умолчанию, если применимо, используется политика system.

Если задано _default, будет использоваться часть политики user, если она доступна.

state

string

Требуемое состояние артефакта.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

timeout

integer

Задаёт время ожидания попытки подключения в секундах.

По умолчанию: 10

unredirected_headers

list / элементы=string

добавлено в community.general 5.2.0

Список заголовков, которые не следует включать при перенаправлении. Эти заголовки передаются функции fetch_url.

В ansible-core версии 2.12 и выше значение этого параметра по умолчанию — [Authorization, Cookie].

Полезно, если URL перенаправления не должен содержать конфиденциальные заголовки запроса.

Требуется ansible-core версии 2.12 или выше.

unsafe_writes

boolean

Определяет, когда использовать атомарную операцию для предотвращения повреждения данных и несогласованного чтения целевого объекта файловой системы.

По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных и несогласованного чтения целевых объектов файловой системы, однако некоторые системы настроены или просто работают таким образом, что это невозможно. Например, объекты файловой системы, подключённые в Docker, нельзя атомарно обновить из контейнера; их можно записать только небезопасным способом.

Этот параметр позволяет Ansible перейти к небезопасным способам обновления объектов файловой системы, если атомарные операции завершаются ошибкой (но не заставляет Ansible выполнять небезопасную запись).

ВАЖНО! Небезопасная запись подвержена состояниям гонки и может привести к повреждению данных.

Варианты:

  • false ← (по умолчанию)
  • true

username

псевдонимы: aws_secret_key

string

Имя пользователя для аутентификации в репозитории Maven. Если репозиторий размещён в S3, используйте секретный ключ AWS.

validate_certs

boolean

Если задано false, SSL-сертификаты не проверяются. Значение false следует использовать только при отсутствии других вариантов.

Варианты:

  • false
  • true ← (по умолчанию)

verify_checksum

string

Если задано never, контрольная сумма MD5/SHA1 не загружается и не проверяется.

Если задано download, контрольная сумма MD5/SHA1 загружается и проверяется только после загрузки артефакта. Это значение используется по умолчанию.

Если задано change, контрольная сумма MD5/SHA1 загружается и проверяется, если целевой файл уже существует, чтобы определить, идентичны ли файлы. Так работало до версии 2.6. Поскольку контрольная сумма загружается до возможной загрузки артефакта, а некоторые программы репозиториев, работающие как прокси/кэш, возвращают ошибку 404, если артефакт ещё не кэширован, проверка может неожиданно завершиться ошибкой. Если этот вариант всё же необходим, рассмотрите возможность использовать вместо него always: если вы работаете с контрольной суммой, лучше использовать её для проверки целостности после загрузки.

always объединяет download и change.

Варианты:

  • "never"
  • "download" ← (по умолчанию)
  • "change"
  • "always"

version

string

Координата Maven version.

Не может использоваться одновременно с version_by_spec.

version_by_spec

string

добавлено в community.general 0.2.0

Диапазоны версий зависимостей Maven.

Сведения о поддерживаемых диапазонах версий см. на странице https://cwiki.apache.org/confluence/display/MAVENOLD/Dependency+Mediation+and+Conflict+Resolution.

Тип диапазона (,1.0],[1.2,) и (,1.1),(1.1,) не поддерживается.

Не может использоваться одновременно с version.

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: нет

Может выполняться в режиме check_mode и возвращать прогноз изменения состояния, не изменяя целевую систему.

diff_mode

Поддержка: нет

В режиме сравнения возвращает сведения об изменениях (или о возможных изменениях в check_mode).

Примеры

- 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: true

- 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–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/maven_artifact_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API