Разворачивал ли Nexus Repository Manager?

«Разворачивал ли Nexus Repository Manager?» — вопрос из категории CI/CD, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, многократно разворачивал Nexus 3 в качестве центрального артефакт-репозитория. Основные сценарии: хранение Docker-образов, Java-артефактов (Maven/Gradle), npm-пакетов и Python-пакетов.

Способы развертывания:

  • Kubernetes (Helm/Manifests): Для динамичных сред. Использовал официальный образ sonatype/nexus3, PersistentVolume для данных и Ingress для доступа.
    # Пример Deployment для k8s
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: nexus
    spec:
    replicas: 1
    selector:
    matchLabels:
      app: nexus
    template:
    metadata:
      labels:
        app: nexus
    spec:
      containers:
      - name: nexus
        image: sonatype/nexus3:3.61.0
        ports:
        - containerPort: 8081
        volumeMounts:
        - name: nexus-data
          mountPath: /nexus-data
      volumes:
      - name: nexus-data
        persistentVolumeClaim:
          claimName: nexus-pvc
  • Docker/Docker Compose: Для быстрого развертывания в dev-средах.
  • VM + Ansible: Для on-premise инфраструктуры с тонкой настройкой ОС и мониторингом.

Ключевые задачи после установки:

  1. Настройка репозиториев: Создание proxy-репозиториев (к Maven Central, Docker Hub), hosted-репозиториев для приватных артефактов и group-репозиториев для агрегации.
  2. Безопасность и RBAC: Настройка LDAP/Active Directory интеграции, создание ролей и пользователей для разных команд (dev, CI, deploy).
  3. Интеграция с CI/CD:
    • Настройка Jenkins/GitLab Runner для публикации собранных артефактов и Docker-образов.
    • Конфигурация Maven settings.xml и .npmrc в проектах для загрузки зависимостей из Nexus.
  4. Обслуживание: Настройка cleanup-политик для удаления старых артефактов (по возрасту или количеству версий), мониторинг дискового пространства, регулярные бэкапы конфигурации Blob Store.