Nano Hash - криптовалюты, майнинг, программирование

Сборка Jenkins внутри контейнера - невозможно развернуть артефакт maven в артефакте и получить 401 несанкционированную ошибку

У нас есть локальный самостоятельный сервер jenkins, который успешно работает и развертывает артефакты в репозиториях в артефактах. У нас также есть собственный собственный артефактарий (версия OSS), где хранятся все наши артефакты.

Я установил докер на сервер jenkins, чтобы я мог запускать сборки внутри контейнера, и я могу запускать сборки, но не могу развертывать их изнутри контейнера в артефакте и получать ошибку 401 (неавторизованная).

Я успешно скопировал файл settings.xml сервера jenkin (с помощью которого все остальные задания могут быть развернуты в артефакте) внутри контейнера, и я вижу, что мое задание контейнера выбирает правильного пользователя из settings.xml.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project test-project: Failed to deploy artifacts: Could not transfer artifact com.poc:test-project:jar:1.2.2-20210423.123456-1 from/to snapshots (http://my.artifactory.com/artifactory/libs-snapshot-local): Transfer failed for http://my.artifactory.com/artifactory/libs-snapshot-local/com.poc/test-project/1.2.2-SNAPSHOT/test-project-1.2.2-20210423.123456-1.jar 401 Unauthorized -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project test-project: Failed to deploy artifacts: Could not transfer artifact com.poc:test-project:jar:1.2.2-20210423.123456-1 from/to snapshots (http://my.artifactory.com/artifactory/libs-snapshot-local): Transfer failed for http://my.artifactory.com/artifactory/libs-snapshot-local/com.poc/test-project/1.2.2-SNAPSHOT/test-project-1.2.2-20210423.123456-1.jar 401 Unauthorized
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)

Может ли кто-нибудь помочь мне решить эту проблему?


Ответы:


1

Это было бы

  1. Ваш пользователь заблокирован в Artifactory (это можно проверить, попытавшись войти в пользовательский интерфейс. Он не позволит вам, если вы заблокированы)
  2. Вы не используете ключ API (или зашифрованный пароль, если позволяет ваш AF) для аутентификации (AF не разрешает аутентификацию с помощью простых текстовых паролей)
  3. Пользователь, которого вы развертываете, не имеет разрешений на запись в репозиторий (или разрешений на перезапись, если этот Артефакт уже существует)

Вы уверены, что пользователь используется и Jenkins не пытается выполнить развертывание анонимно? Если у вас есть доступ к журналам Artifactory, это самый быстрый способ определить проблему.

23.04.2021
  • Спасибо за ответ, но № 1. Пользователь не заблокирован, так как я могу выполнить развертывание в артефакте, используя того же пользователя из неконтейнерных заданий jenkin. #2 - пароль зашифрован в settings.xml, откуда он берется. #3 - у этого пользователя есть права администратора. Я видел в журналах отладки maven задания сборки контейнера (запуск mvn -e -X deploy), что он выбирает правильного пользователя. Я пытался найти в системных журналах Artifextory, но я ничего там не вижу. 23.04.2021
  • TBH, если у них есть администратор и они используются, то они не могут получить 401 :) Вы можете посмотреть в журналах AF 2021-04-23T08:00:48.703Z [1e6ffb9br63e29w] [DENIED LOGIN] for client : NA / XX.XX.XX.X. В основном все, что имеет DENIED LOGIN, в котором есть ваш IP. Это бы сузило круг того, что пользователя точно используют. Также найдите [DENIED DEPLOY] (оба в журнале доступа) 23.04.2021
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..