nexus_config

Конфигурация менеджера репозиториев Sonatype Nexus

Galaxy Quality Версия роли Скачивания роли Проверка молекулы Лицензия

Эта роль 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

О проекте

Configure Sonatype Nexus Repository Manager

Установить
ansible-galaxy install lablabs/ansible-role-nexus_config
Лицензия
apache-2.0
Загрузки
79
Владелец