lablabs.nexus_config

Sonatype Nexus Repository Manager Konfiguration

Galaxy Qualität Rollen-Version Rollen-Downloads Molekühl-Überprüfung Lizenz

Diese Ansible-Rolle konfiguriert den Sonatype Nexus Repository Manager über die Rest-API. Derzeit deckt diese Rolle ab:

  • Einrichten des anfänglichen Admin-Passworts
  • Benutzererstellung
  • Benutzeraktualisierung
  • Benutzerlöschung
  • Blob-Speicherung (Datei) erstellen
  • Blob-Speicherung (Datei) aktualisieren
  • Blob-Speicherung (Datei) löschen
  • Blob-Speicherung (AWS S3) erstellen
  • Blob-Speicherung (AWS S3) aktualisieren
  • Blob-Speicherung (AWS S3) löschen
  • Blob-Speicherung (Azure) erstellen
  • Blob-Speicherung (Azure) aktualisieren
  • Blob-Speicherung (Azure) löschen
  • Repositories (Maven, Docker, PyPi, Conda, R, npm) erstellen
  • Repositories (Maven, Docker, PyPi, Conda, R, npm) aktualisieren
  • Repositories (Maven, Docker, PyPi, Conda, R, npm) löschen
  • Rollen erstellen
  • Rollen aktualisieren
  • Rollen löschen
  • TBD ...

Anforderungen

Ansible >= 2.10

Rollen-Variablen

Dies ist eine Kopie von defaults/main.yml

---

# Administrator Benutzername
admin_username: admin

# Erstes Nexus Admin-Passwort
initial_admin_password: admin123

# Admin-Passwort, das während der Ersteinrichtung festgelegt wird.
admin_password: "{{ lookup('env', 'ADMIN_PASSWORD') }}"

# Nexus API Host
api_host: localhost

# Nexus API Port
api_port: 8081

# Nexus Endpunktprotokoll
api_protocol: http

# Pfad zur Root-CA .pem-Datei, falls https mit benutzerdefiniertem SSL verwendet wird
root_ca:

# Sensible Ansible-Fehlerprotokolle ausblenden (könnten Passwörter enthalten)
hide_sensitive_logs: true

# Anonymer Zugriff
anonymous_access: true

users: []
  # - id: joan                    # Benutzer-ID
  #   first_name: Joan            # Vorname des Benutzers
  #   last_name: Doe              # Nachname des Benutzers
  #   email: [email protected]     # E-Mail
  #   password: nbusr123          # Passwort (nicht ins Git hochladen :) )
  #   status: active              # Benutzerstatus. Kann aktiv/deaktiviert oder gelöscht sein.
  #   source: default             # Quelle
  #   roles:                      # Liste der zugewiesenen Rollen
  #     - 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                         # Rollen-ID
  #    name: nx-role                       # Rollenname
  #    description: Eine neue Rolle       # Rollenbeschreibung
  #    status: created                     # Rollenstatus. Kann erstellt oder gelöscht werden.
  #    privileges:                         # Einschlussprivilegien
  #      - nx-repository-view-*-*-add
  #      - nx-repository-view-*-*-browse
  #      - nx-repository-view-*-*-read
  #    roles: [ ]                          # Einschlussrollen

stores: []
  # - name: file_blob             # Blob-Speichernamen
  #   type: file                  # Blob-Speichertype (file, s3)
  #   soft_quota: 0               # Blob-Speicherquote
  #   path: /tmp/blobs
  #   status: active              # Blob-Speicherstatus (aktiv, gelöscht)
  # - name: s3_blob
  #   type: s3
  #   soft_quota: 0
  #   prefix: ""
  #   region: default
  #   expiration_days: -1
  #   status: active

repositories: []
  # - name: maven_repo_hosted
  #   online: true                                  # Repository-Zustand (true, false, gelöscht)
  #   type: maven                                   # Repository-Typ (Derzeit unterstützt: maven)
  #   kind: hosted                                  # Repository-Art (gehostet, Proxy)
  #   blob_store: default                           # Blob-Speicher
  #   strict_content_type_validation: false         # Strikte Inhaltsvalidierung
  #   write_policy: allow                           # Steuerung, ob Bereitstellungen und Aktualisierungen von Inhalten erlaubt sind (allow, allow_once, deny)
  #   cleanup_names: []                             # Bereinigungspolitik-Namen. Bitte weglassen, wenn keine Bereinigung erforderlich ist.
  #   version_policy: MIXED                         # Versionspolitik (MIXED, RELEASE, SNAPSHOT)
  #   layout_policy: STRICT                         # Layout-Politik (STRICT, PERMISSIVE)
  #   content: INLINE                               # Inhaltsdisposition (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 des entfernten Repositories
  #   maximum_artifacts_age: -1                     # Maximales Alter der Komponenten
  #   maximum_metadata_age: 1440                    # Maximales Alter der Metadaten
  #   negative_cache: true                          # Nicht gefunden Cache
  #   not_found_cache_ttl: 1440                     # TTL des nicht gefundenen Cache
  #   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:                             # Authentifizierung für das entfernte Repository
  #       type: username                            # Authentifizierungstyp (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/"       # Standort des entfernten Repositories (Optional)
  #   maximum_artifacts_age: -1
  #   maximum_metadata_age: 1440
  #   negative_cache: true
  #   not_found_cache_ttl: 1440
  #   routing_rule: null
  #   v1_enabled: true                             # Erlauben, dass Clients die V1-API verwenden
  #   force_basic_auth: true                       # Authentifizierung erzwungen
  #   index_type: "REGISTRY"                       # Typ des Docker-Index (HUB, REGISTRY, CUSTOM)
  #   index_url: "https://index.docker.io/"        # URL des Docker-Index (Optional)

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

Beispiel-Playbook

In diesem Beispiel erstellt das Playbook zwei zusätzliche Nexus-Benutzer und einen zusätzlichen Blob-Speicher.

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

Lizenz

Lizenz

Siehe LICENSE für vollständige Details.

Lizenziert an die Apache Software Foundation (ASF) unter einem
oder mehreren Vereinbarungen zur Mitwirkenden-Lizenz. Siehe die NOTICE-Datei
die mit diesem Werk verteilt wird, für weitere Informationen
zum Urheberrecht. Die ASF lizenziert dieses Dokument
an Sie unter der Apache-Lizenz, Version 2.0 (der
"Lizenz"); Sie dürfen dieses Dokument nicht verwenden, es sei denn, es geschieht im Einklang mit
der Lizenz. Sie können eine Kopie der Lizenz unter

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

Sofern nicht durch geltendes Recht oder schriftlich vereinbart, wird die Software,
die unter der Lizenz verteilt wird, auf einer "AS IS" BASIS, OHNE GARANTIEN ODER BEDINGUNGEN ANY ART,
weder ausdrücklich noch stillschweigend. Siehe die Lizenz für die
spezifischen Regelungen zu Rechten und Beschränkungen
unter der Lizenz.

Autoreninformation

Erstellt 2021 von Labyrinth Labs

Über das Projekt

Configure Sonatype Nexus Repository Manager

Installieren
ansible-galaxy install lablabs.nexus_config
GitHub Repository
Lizenz
apache-2.0
Downloads
95
Besitzer