Spec-Zone.ru › Ansible

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

Примечание

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

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

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

Для использования в книге задач укажите: community.general.maven_artifact.

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

Описание

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

Требования

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

  • lxml
  • boto, если используется репозиторий S3 (s3://...)
END_OF_DOCUMENT_MARKER

Параметры

Параметр

Комментарии

artifact_id

строка / обязательный

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

attributes

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

строка

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

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

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

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

checksum_alg

строка

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

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

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

Варианты:

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

classifier

строка

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

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

client_cert

путь

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

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

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

client_key

путь

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

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

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

dest

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

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

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

directory_mode

строка

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

extension

строка

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

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

force_basic_auth

булево

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

httplib2, библиотека, используемая модулем uri, отправляет информацию об аутентификации только тогда, когда веб-сервис отвечает на начальный запрос кодом 401. Поскольку некоторые сервисы аутентификации по принципу «basic auth» не отправляют код 401 должным образом, попытки входа могут завершиться неудачей. Этот параметр принудительно отправляет заголовок аутентификации Basic при первоначальном запросе.

Варианты:

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

group

строка

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

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

group_id

строка / обязательный

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

headers

словарь

Добавление пользовательских HTTP-заголовков к запросу в формате хэш/словарь.

keep_name

булево

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

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

Варианты:

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

mode

любой

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

Для тех, кто привык к /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

строка

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

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

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

password

aliases: aws_secret_access_key

string

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

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 / elements=string

added in 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

aliases: aws_secret_key

string

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

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_by_spec.

version_by_spec

string

added in 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), когда активен режим diff.

Примеры

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

Spec-Zone.ru

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