lablabs.nexus_config
Configuration du Sonatype Nexus Repository Manager
Ce rôle Ansible configure Sonatype Nexus Repository Manager en utilisant l'API Rest. Actuellement, ce rôle couvre :
- Configuration du mot de passe administrateur initial
- Création d'utilisateurs
- Mise à jour des utilisateurs
- Suppression des utilisateurs
- Création de stockage de blobs (fichiers)
- Mise à jour de stockage de blobs (fichiers)
- Suppression de stockage de blobs (fichiers)
- Création de stockage de blobs (AWS S3)
- Mise à jour de stockage de blobs (AWS S3)
- Suppression de stockage de blobs (AWS S3)
- Création de stockage de blobs (Azure)
- Mise à jour de stockage de blobs (Azure)
- Suppression de stockage de blobs (Azure)
- Création de dépôts (Maven, Docker, PyPi, Conda, R, npm)
- Mise à jour des dépôts (Maven, Docker, PyPi, Conda, R, npm)
- Suppression de dépôts (Maven, Docker, PyPi, Conda, R, npm)
- Création de rôles
- Mise à jour de rôles
- Suppression de rôles
- À définir ...
Exigences
Ansible >= 2.10
Variables du rôle
Ceci est une copie de defaults/main.yml
---
# Nom d'utilisateur administrateur
admin_username: admin
# Mot de passe administrateur initial
initial_admin_password: admin123
# Mot de passe administrateur qui sera défini lors de la configuration initiale.
admin_password: "{{ lookup('env', 'ADMIN_PASSWORD') }}"
# Hôte API Nexus
api_host: localhost
# Port API Nexus
api_port: 8081
# Protocole d'API Nexus
api_protocol: http
# Chemin vers le fichier .pem CA racine, si HTTPS avec SSL personnalisé est utilisé
root_ca:
# Cacher les journaux d'erreur Ansible sensibles (peut contenir des mots de passe)
hide_sensitive_logs: true
# Accès anonyme
anonymous_access: true
users: []
# - id: joan # Identifiant d'utilisateur
# first_name: Joan # Prénom de l'utilisateur
# last_name: Doe # Nom de famille de l'utilisateur
# email: [email protected] # Email
# password: nbusr123 # Mot de passe (ne pas le pousser sur git :)
# status: active # Statut de l'utilisateur. Vous pouvez définir actif/désactivé ou supprimé pour supprimer l'utilisateur.
# source: default # Source
# roles: # Liste des rôles assignés
# - 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 # Identifiant de rôle
# name: nx-role # Nom du rôle
# description: Some new role # Description du rôle
# status: created # Statut du rôle. Vous pouvez définir créé ou supprimé pour supprimer le rôle.
# privileges: # Privilèges à inclure
# - nx-repository-view-*-*-add
# - nx-repository-view-*-*-browse
# - nx-repository-view-*-*-read
# roles: [ ] # Rôles à inclure
stores: []
# - name: file_blob # Nom du magasin de blobs
# type: file # Type de magasin de blobs (fichier, s3)
# soft_quota: 0 # Quota du magasin de blobs
# path: /tmp/blobs
# status: active # Statut du magasin de blobs (actif, supprimé)
# - name: s3_blog
# type: s3
# soft_quota: 0
# prefix: ""
# region: default
# expiration_days: -1
# status: active
repositories: []
# - name: maven_repo_hosted
# online: true # État du dépôt (true, false, deleted)
# type: maven # Type de dépôt (Actuellement supporté : maven)
# kind: hosted # Type de dépôt (hébergé, proxy)
# blob_store: default # Stockage de blobs
# strict_content_type_validation: false # Validation stricte du type de contenu
# write_policy: allow # Contrôle si les déploiements et les mises à jour des actifs sont autorisés (permettre, permettre_une_fois, refuser)
# cleanup_names: [] # Noms des politiques de nettoyage. Omettre si aucun nettoyage n'est nécessaire.
# version_policy: MIXED # Politique de version (MIXED, RELEASE, SNAPSHOT)
# layout_policy: STRICT # Politique de mise en page (STRICT, PERMISSIVE)
# content: INLINE # Disposition de contenu (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 du dépôt distant
# maximum_artifacts_age: -1 # Âge maximum des composants
# maximum_metadata_age: 1440 # Âge maximum des métadonnées
# negative_cache: true # Cache de non trouvé
# not_found_cache_ttl: 1440 # TTL du cache de non trouvé
# 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: # Authentification du dépôt distant
# type: username # Type d'authentification (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/" # Emplacement du dépôt distant à proxy (Optionnel)
# maximum_artifacts_age: -1
# maximum_metadata_age: 1440
# negative_cache: true
# not_found_cache_ttl: 1440
# routing_rule: null
# v1_enabled: true # Autoriser les clients à utiliser l'API V1 pour interagir avec ce dépôt
# force_basic_auth: true # Forcer l'authentification (Jeton d'authentification Docker requis si false)
# index_type: "REGISTRY" # Type d'index Docker (HUB, REGISTRY, CUSTOM)
# index_url: "https://index.docker.io/" # URL de l'index Docker à utiliser (Optionnel)
# - 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
Exemple de Playbook
Dans cet exemple, le playbook créera deux utilisateurs Nexus supplémentaires et un stockage de blobs supplémentaire.
---
- name: Configurer 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
Licence
Voir LICENCE pour les détails complets.
Licencié à la Fondation Apache Software (ASF) selon un ou plusieurs accords de licence de contributeur. Voir le fichier NOTICE distribué avec ce travail pour des informations supplémentaires concernant la propriété du droit d'auteur. L'ASF vous concède ce fichier sous la Licence Apache, Version 2.0 (la "Licence") ; vous ne pouvez pas utiliser ce fichier sauf en conformité avec la Licence. Vous pouvez obtenir une copie de la Licence à l'adresse suivante
https://www.apache.org/licenses/LICENSE-2.0
À moins que cela ne soit exigé par la loi ou convenu par écrit, le logiciel distribué sous la Licence est distribué sur une base "EN L'ÉTAT", SANS GARANTIE OU CONDITION D'AUCUNE SORTE, expresse ou implicite. Voir la Licence pour les permissions et limitations spécifiques sous la Licence.
Informations sur l'auteur
Créé en 2021 par Labyrinth Labs
À propos du projet
Configure Sonatype Nexus Repository Manager
Installer
ansible-galaxy install lablabs.nexus_config
Licence
apache-2.0
Téléchargements
95
Propriétaire