nexus_config
Конфигурация менеджера репозиториев Sonatype Nexus
Эта роль Ansible настроит Sonatype Nexus Repository Manager с использованием Rest API. В настоящее время эта роль включает:
- Настройка начального пароля администратора
- Создание пользователей
- Обновление пользователей
- Удаление пользователей
- Создание блоб-хранилища (файлов)
- Обновление блоб-хранилища (файлов)
- Удаление блоб-хранилища (файлов)
- Создание блоб-хранилища (AWS S3)
- Обновление блоб-хранилища (AWS S3)
- Удаление блоб-хранилища (AWS S3)
- Создание блоб-хранилища (Azure)
- Обновление блоб-хранилища (Azure)
- Удаление блоб-хранилища (Azure)
- Создание репозиториев (Maven, Docker, PyPi, Conda, R, npm)
- Обновление репозиториев (Maven, Docker, PyPi, Conda, R, npm)
- Удаление репозиториев (Maven, Docker, PyPi, Conda, R, npm)
- Создание ролей
- Обновление ролей
- Удаление ролей
- И другое...
Требования
Ansible >= 2.10
Переменные роли
Это копия defaults/main.yml
---
# Имя администратора
admin_username: admin
# Начальный пароль администратора Nexus
initial_admin_password: admin123
# Пароль администратора, который будет установлен во время начальной настройки.
admin_password: "{{ lookup('env', 'ADMIN_PASSWORD') }}"
# Хост API Nexus
api_host: localhost
# Порт API Nexus
api_port: 8081
# Протокол конечной точки API
api_protocol: http
# Путь к корневому CA .pem файлу, если используется https с пользовательским ssl
root_ca:
# Скрыть конфиденциальные логи Ansible (могут содержать пароли)
hide_sensitive_logs: true
# Анонимный доступ
anonymous_access: true
users: []
# - id: joan # ID пользователя
# first_name: Joan # Имя пользователя
# last_name: Doe # Фамилия пользователя
# email: [email protected] # Электронная почта
# password: nbusr123 # Пароль (не выкладывайте в git :) )
# status: active # Статус пользователя. Можно установить active/disabled или deleted для удаления пользователя.
# source: default # Источник
# roles: # Список назначенных ролей
# - nx-admin
# - id: joe
# first_name: Joe
# last_name: Doe
# email: [email protected]
# password: "{{ lookup('env', 'JOE_PASSWORD') }}"
# status: disabled
# source: default
# roles:
# - nx-anonymous
roles: []
# - id: nx-role # ID роли
# name: nx-role # Название роли
# description: Некоторая новая роль # Описание роли
# status: created # Статус роли. Можно установить created или deleted для удаления роли.
# privileges: # Привилегии, которые следует включить
# - nx-repository-view-*-*-add
# - nx-repository-view-*-*-browse
# - nx-repository-view-*-*-read
# roles: [ ] # Роли, которые следует включить
stores: []
# - name: file_blob # Имя блоб-хранилища
# type: file # Тип блоб-хранилища (file, s3)
# soft_quota: 0 # Квота блоб-хранилища
# path: /tmp/blobs
# status: active # Статус блоб-хранилища (active, deleted)
# - name: s3_blog
# type: s3
# soft_quota: 0
# prefix: ""
# region: default
# expiration_days: -1
# status: active
repositories: []
# - name: maven_repo_hosted
# online: true # Состояние репозитория (true, false, deleted)
# type: maven # Тип репозитория (в настоящее время поддерживается: maven)
# kind: hosted # Вид репозитория (hosted, proxy)
# blob_store: default # Хранилище блобов
# strict_content_type_validation: false # Строгая проверка типа контента
# write_policy: allow # Управляет разрешением на деплой и обновление ресурсов (allow, allow_once, deny)
# cleanup_names: [] # Имена политик очистки. Пропустите, если очистка не требуется.
# version_policy: MIXED # Политика версии (MIXED, RELEASE, SNAPSHOT)
# layout_policy: STRICT # Политика компоновки (STRICT, PERMISSIVE)
# content: INLINE # Размещение содержимого (INLINE)
# - name: maven_repo_proxy
# online: true
# type: maven
# kind: proxy
# blob_store: default
# strict_content_type_validation: false
# remote_url: https://maven.example.org/repo # URL удаленного репозитория
# maximum_artifacts_age: -1 # Максимальный срок службы компонентов
# maximum_metadata_age: 1440 # Максимальный срок службы метаданных
# negative_cache: true # Кэш отсутствующих
# not_found_cache_ttl: 1440 # TTL кэша отсутствующих
# http_client:
# blocked: false
# auto_block: true
# connection:
# retries: 0
# user_agent_suffix: ""
# timeout: 60
# enable_circular_redirects: false
# enable_cookies: false
# user_trust_store: false
# authentication: # Аутентификация удаленного репозитория
# type: username # Тип аутентификации (username, ntlm)
# username: joe
# password: nbusr123
# ntlm_host:
# ntlm_domain:
# preemptive: false
# routing_rule: null
# version_policy: MIXED
# layout_policy: STRICT
# content: INLINE
# - name: maven_repo_group
# online: true
# type: maven
# kind: group
# blob_store: default
# strict_content_type_validation: false
# group:
# - maven-releases
# - maven-snapshots
# - name: docker-hub-proxy
# online: true
# type: docker
# kind: proxy
# blob_store: default
# strict_content_type_validation: false
# remote_url: "https://index.docker.io/" # Местоположение удаленного репозитория, про который идет речь (по желанию)
# maximum_artifacts_age: -1
# maximum_metadata_age: 1440
# negative_cache: true
# not_found_cache_ttl: 1440
# routing_rule: null
# v1_enabled: true # Позволяет клиентам использовать API V1 для взаимодействия с этим репозиторием
# force_basic_auth: true # Принуждает аутентификацию (требуется токен Docker Bearer Realm, если false)
# index_type: "REGISTRY" # Тип индекса Docker (HUB, REGISTRY, CUSTOM)
# index_url: "https://index.docker.io/" # URL индекса Docker для использования (по желанию)
# - name: conda-forge-proxy
# online: true
# type: conda
# kind: proxy
# blob_store: default
# strict_content_type_validation: false
# remote_url: "https://conda.anaconda.org/conda-forge/"
# maximum_artifacts_age: -1
# maximum_metadata_age: 1440
# negative_cache: true
# not_found_cache_ttl: 1440
# routing_rule: null
# - name: cran-proxy
# online: true
# type: r
# kind: proxy
# blob_store: default
# strict_content_type_validation: false
# remote_url: "https://cloud.r-project.org"
# maximum_artifacts_age: -1
# maximum_metadata_age: 1440
# negative_cache: true
# not_found_cache_ttl: 1440
# routing_rule: null
# - name: npm-proxy
# online: true
# type: npm
# kind: proxy
# blob_store: default
# strict_content_type_validation: false
# remote_url: "https://registry.npmjs.org/"
# maximum_artifacts_age: -1
# maximum_metadata_age: 1440
# negative_cache: true
# not_found_cache_ttl: 1440
# routing_rule: null
Пример сценария
В этом примере сценарий создаст двух дополнительных пользователей Nexus и одно дополнительное блоб-хранилище.
---
- name: Настроить Nexus
hosts: all
user: ansible
become: yes
vars:
config:
users:
- id: joan
first_name: Joan
last_name: Doe
email: [email protected]
password: "{{ lookup('env', 'JOAN_PASSWORD') }}"
status: active
source: default
roles:
- nx-admin
- id: joe
first_name: Joe
last_name: Doe
email: [email protected]
password: nbusr123
status: disabled
source: default
roles:
- nx-anonymous
stores:
- name: file_blob
type: file
soft_quota: 0
path: /mydata/blobs
status: active
roles:
- role: lablabs.nexus_config
Лицензия
Смотрите LICENSE для получения полной информации.
Лицензировано Фондом Apache Software (ASF) на условиях одного
или нескольких лицензионных соглашений о вкладе. См. файл NOTICE,
распределенный с этой работой, для получения дополнительной информации
о правах собственности. ASF лицензирует этот файл
вам на условиях лицензии Apache, версия 2.0 (далее
"Лицензия"); вы не можете использовать этот файл,
кроме как в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу
https://www.apache.org/licenses/LICENSE-2.0
Если не предусмотрено иным образом законом или согласовано в устной или письменной форме,
программное обеспечение, распространяемое по Лицензии,
предоставляется "КАК ЕСТЬ", БЕЗ ГАРАНТИЙ И УСЛОВИЙ ЛЮБОГО
РОДА, явных или подразумеваемых. См. Лицензию для
специфических прав, касающихся разрешений и ограничений
по Лицензии.
Информация об авторе
Создано в 2021 году Labyrinth Labs
Установить
ansible-galaxy install lablabs/ansible-role-nexus_config
Лицензия
apache-2.0
Загрузки
79
Владелец