lablabs.nexus_config

Configuration du Sonatype Nexus Repository Manager

Qualité Galaxy Version du rôle Téléchargements du rôle Molécules Licence

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

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