lablabs.nexus_config
Sonatype Nexus Repository Manager Konfiguration
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
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
Lizenz
apache-2.0
Downloads
95
Besitzer