lablabs.nexus_config

Konfiguracja menedżera repozytoriów Sonatype Nexus

Jakość Galaxy Wersja roli Pobrania roli molecule lint Licencja

Ta rola Ansible skonfiguruje Sonatype Nexus Repository Manager za pomocą API REST. Obecnie ta rola obsługuje:

  • Ustawienie początkowego hasła administratora
  • Tworzenie użytkowników
  • Aktualizacja użytkowników
  • Usuwanie użytkowników
  • Tworzenie pamięci blob (plików)
  • Aktualizacja pamięci blob (plików)
  • Usuwanie pamięci blob (plików)
  • Tworzenie pamięci blob (AWS S3)
  • Aktualizacja pamięci blob (AWS S3)
  • Usuwanie pamięci blob (AWS S3)
  • Tworzenie pamięci blob (Azure)
  • Aktualizacja pamięci blob (Azure)
  • Usuwanie pamięci blob (Azure)
  • Tworzenie repozytoriów (Maven, Docker, PyPi, Conda, R, npm)
  • Aktualizacja repozytoriów (Maven, Docker, PyPi, Conda, R, npm)
  • Usuwanie repozytoriów (Maven, Docker, PyPi, Conda, R, npm)
  • Tworzenie ról
  • Aktualizacja ról
  • Usuwanie ról
  • TBD ...

Wymagania

Ansible >= 2.10

Zmienne roli

To jest kopia defaults/main.yml

---

# Nazwa użytkownika administratora
admin_username: admin

# Początkowe hasło administratora Nexus
initial_admin_password: admin123

# Hasło administratora, które zostanie ustawione podczas początkowej konfiguracji.
admin_password: "{{ lookup('env', 'ADMIN_PASSWORD') }}"

# Host API Nexus
api_host: localhost

# Port API Nexus
api_port: 8081

# Protokół punktu końcowego API
api_protocol: http

# Ścieżka do pliku .pem z certyfikatem root ca, jeśli używane jest https z niestandardowym ssl
root_ca:

# Ukryj wrażliwe logi błędów Ansible (mogą zawierać hasła)
hide_sensitive_logs: true

# Dostęp anonimowy
anonymous_access: true

users: []
  # - id: joan                    # ID użytkownika
  #   first_name: Joan            # Imię użytkownika
  #   last_name: Doe              # Nazwisko użytkownika
  #   email: [email protected]     # Email
  #   password: nbusr123          # Hasło (nie umieszczaj w git :) )
  #   status: active              # Status użytkownika. Można ustawić aktywny/zablokowany lub usunięty, żeby usunąć użytkownika.
  #   source: default             # Źródło
  #   roles:                      # Lista przypisanych ról
  #     - 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 roli
  #    name: nx-role                       # Nazwa roli
  #    description: Some new role          # Opis roli
  #    status: created                     # Status roli. Można ustawić utworzony lub usunięty, aby usunąć rolę.
  #    privileges:                         # Uprawnienia do włączenia
  #      - nx-repository-view-*-*-add
  #      - nx-repository-view-*-*-browse
  #      - nx-repository-view-*-*-read
  #    roles: [ ]                          # Rola do włączenia

stores: []
  # - name: file_blob             # Nazwa pamięci blob
  #   type: file                  # Typ pamięci blob (plik, s3)
  #   soft_quota: 0               # Kwota pamięci blob
  #   path: /tmp/blobs
  #   status: active              # Status pamięci blob (aktywny, usunięty)
  # - name: s3_blog
  #   type: s3
  #   soft_quota: 0
  #   prefix: ""
  #   region: default
  #   expiration_days: -1
  #   status: active

repositories: []
  # - name: maven_repo_hosted
  #   online: true                                  # Stan repozytorium (true, false, usunięty)
  #   type: maven                                   # Typ repozytorium (Obecnie wspierany: maven)
  #   kind: hosted                                  # Rodzaj repozytorium (hostowane, proxy)
  #   blob_store: default                           # Pamięć blob
  #   strict_content_type_validation: false         # Ścisła walidacja typu treści
  #   write_policy: allow                           # Kontroluje, czy zezwala się na wgrywanie i aktualizację zasobów (zezwól, zezwól raz, odrzuć)
  #   cleanup_names: []                             # Nazwy polityk oczyszczania. Pomiń, jeśli nie jest potrzebne oczyszczanie.
  #   version_policy: MIXED                         # Polityka wersji (MIXED, RELEASE, SNAPSHOT)
  #   layout_policy: STRICT                         # Polityka układu (STRICT, PERMISSIVE)
  #   content: INLINE                               # Ustawienie treści (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 zdalnego repozytorium
  #   maximum_artifacts_age: -1                     # Maksymalny wiek komponentów
  #   maximum_metadata_age: 1440                    # Maksymalny wiek metadanych
  #   negative_cache: true                          # Cache dla nieznalezionych
  #   not_found_cache_ttl: 1440                     # TTL cache dla nieznalezionych
  #   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:                             # Autoryzacja repozytorium zdalnego
  #       type: username                            # Typ autoryzacji (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/"       # Lokalizacja zdalnego repozytorium (opcjonalne)
  #    maximum_artifacts_age: -1
  #    maximum_metadata_age: 1440
  #    negative_cache: true
  #    not_found_cache_ttl: 1440
  #    routing_rule: null
  #    v1_enabled: true                             # Czy zezwolić klientom na użycie API V1 do interakcji z tym repozytorium
  #    force_basic_auth: true                       # Czy wymusić autoryzację (wymagany token Bearer Docker, jeśli fałsz)
  #    index_type: "REGISTRY"                       # Typ indeksu Docker (HUB, REGISTRY, CUSTOM)
  #    index_url: "https://index.docker.io/"        # URL indeksu Docker do użycia (opcjonalne)

  #  - 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

Przykładowy playbook

W tym przykładzie playbook utworzy dwóch dodatkowych użytkowników Nexus i jedną dodatkową pamięć blob.

---
- name: Konfiguracja 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

Licencja

Licencja

Zobacz LICENSE po szczegóły.

Licencjonowane przez Apache Software Foundation (ASF) na podstawie jednej
lub więcej umów licencyjnych z wkładem. Zobacz plik NOTICE 
dystrybuowany z tym dziełem w celu uzyskania dodatkowych informacji
dotyczących praw autorskich. ASF udziela Ci tej licencji na mocy
Apache License, Version 2.0 (dalej jako „Licencja”); nie możesz 
używać tego pliku, z wyjątkiem zgodnie z dokumentem Licencji. 
Możesz uzyskać kopię Licencji pod adresem

  https://www.apache.org/licenses/LICENSE-2.0

O ile nie jest to wymagane przez obowiązujące prawo lub uzgodnione na piśmie,
oprogramowanie dystrybuowane na mocy Licencji jest dystrybuowane na zasadzie
„AS IS”, BEZ ŻADNYCH GWARANCJI ANI WARUNKÓW JAKIEGOKOLWIEK RODZAJU, 
είτε wyraźnych, είτε domyślnych. Zobacz Licencję w celu
uzyskania szczegółowych informacji dotyczących uprawnień i ograniczeń
wynikających z Licencji.

Informacje o autorze

Utworzone w 2021 roku przez Labyrinth Labs

O projekcie

Configure Sonatype Nexus Repository Manager

Zainstaluj
ansible-galaxy install lablabs.nexus_config
Licencja
apache-2.0
Pobrania
95
Właściciel