lablabs.nexus_config
Konfiguracja menedżera repozytoriów Sonatype Nexus
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
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
Zainstaluj
ansible-galaxy install lablabs.nexus_config
Licencja
apache-2.0
Pobrania
95
Właściciel