Каталог Maven: В доступе отказано - PullRequest
0 голосов
/ 15 апреля 2019

Я установил Maven и Jenkins на моем сервере Linux. Maven прекрасно работает от замазки. Но от Дженкинса, когда я пытаюсь запустить конвейерное задание с помощью maven, я получаю следующую ошибку: /data1/SOA/app/oracle/product/middleware/Oracle_Home/oracle_common/modules/org.apache.maven_3.2.5/bin/ mvn: в доступе отказано

Код конвейера, как показано ниже:

node {
   def mvnHome
   stage('Preparation') { 
      git branch: 'master', url: "http://UN:PW@IP/root/Test-Repo.git", credentialsId: 'QPGitCred'      
      mvnHome = tool 'org.apache.maven_3.2.5'
   }
   stage('Build') {
      if (isUnix()) {
         sh "'${mvnHome}/bin/mvn' --version"
      } else {
         bat(/"${mvnHome}\bin\mvn" --version/)
      }
   }
}

Консольный вывод:

    Started by user jenkins_dev Running in Durability level: MAX_SURVIVABILITY [Pipeline] Start of Pipeline [Pipeline] node Running on Jenkins in /var/lib/jenkins/workspace/PipelineJob1 [Pipeline] { [Pipeline] stage [Pipeline] { (Preparation) [Pipeline] git using credential QPGitCred
     git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository
     git config remote.origin.url http://UN:PW@IP/root/Test-Repo.git # timeout=10 Fetching upstream changes from http://UN@IP/root/Test-Repo.git
     git --version # timeout=10 using GIT_ASKPASS to set credentials QPGitCred
     git fetch --tags --progress http://UN@IP/root/Test-Repo.git +refs/heads/*:refs/remotes/origin/*
     git rev-parse refs/remotes/origin/master^{commit} # timeout=10
     git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10 Checking out Revision 0051ce3ezza8457e44e890c1cad8z2c93de19bd0 (refs/remotes/origin/master)
     git config core.sparsecheckout # timeout=10
     git checkout -f 0051ce3rrda8457e44e890c1cad8f2z93de19bd0
     git branch -a -v --no-abbrev # timeout=10
     git branch -D master # timeout=10
     git checkout -b master 0051ce3ebda8457e44e890c1cad8f2c49de19bd0 Commit message: "Update pom.xml"
     git rev-list --no-walk 0051ce3ebda8121e44h890c1cuy8f2c93de19bd0 # timeout=10 [Pipeline] tool [Pipeline] } [Pipeline] // stage [Pipeline] stage [Pipeline] { (Build) [Pipeline] isUnix [Pipeline] sh
    + /data1/SOA/app/oracle/product/middleware/Oracle_Home/oracle_common/modules/org.apache.maven_3.2.5/bin/mvn
    --version /var/lib/jenkins/workspace/PipelineJob1@tmp/durable-990d0f84/script.sh: line 1: 
/data1/SOA/app/oracle/product/middleware/Oracle_Home/oracle_common/modules/org.apache.maven_3.2.5/bin/mvn: Permission denied [Pipeline] } 
[Pipeline] // stage [Pipeline] } [Pipeline] 
// node [Pipeline] End of 
Pipeline ERROR: script returned exit code 1 Finished: FAILURE

Из шпатлевки я проверил разрешение с помощью следующей команды:

ls -l /data1/SOA/app/oracle/product/middleware/Oracle_Home/oracle_common/modules/org.apache.maven_3.2.5/bin/mvn

-rwxrwxrwx 1 testusr dba 5543 Dec 14  2014 /data1/SOA/app/oracle/product/middleware/Oracle_Home/oracle_common/modules/org.apache.maven_3.2.5/bin/mvn

Здесь разрешение показывает, что он имеет право на выполнение этого файла. Но все же от Дженкинса я получаю ошибку «Отказано в доступе».

Спасибо за ваш ответ заранее.

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Спасибо за ваш ответ.

Мне удалось решить эту проблему, настроив Jenkins в качестве пользователя root. Я выполнил шаги, указанные в этой ссылке: Запустить команду оболочки в jenkins от имени пользователя root?

Следующий процесс для CentOS:

  1. Откройте этот скрипт (используя VIM или другой редактор):

    vim / etc / sysconfig / jenkins

  2. Найдите этот $ JENKINS_USER и измените на «root»:

    $ JENKINS_USER = "корень"

  3. Затем измените владельца Jenkins home, webroot и logs:

    chown -R root: root / var / lib / jenkins chown -R root: root / var / cache / jenkins chown -R root: root / var / log / jenkins

0 голосов
/ 15 апреля 2019

Добавьте команду bash для печати текущего пользователя / группы и права файла mvn следующим образом. Такая информация может помочь подтвердить, что пользователь / группа и право на файл соответствуют ожиданиям.

stage('Build') {
  if (isUnix()) {
     sh """
       # print current user, group
       id

       # print folder's user group/access
       ls -l "${mvnHome}"/..
       ls -l "${mvnHome}"

       "${mvnHome}"/bin/mvn --version
     """
  } else {
     bat(/"${mvnHome}\bin\mvn" --version/)
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...