Дженкинс Томкат SSH отказано в разрешении - PullRequest
0 голосов
/ 05 октября 2019

Попытка использовать плагин Jenkins ssh agent в конвейере для копирования военного файла в tomcat (оба работают на Ubuntu 18.04 на Ec2).

Используя стандартный пример кода и используя аутентификацию на основе ключей. Tomcat запущен и работает.

stage('Deploy to Tomcat'){
        sshagent(['Tomcat-cred']) {
         sh 'scp -o StrictHostKeyChecking=no target/*.war ubuntu@xxxx:/opt/tomcat/latest/webapps/'
      }
   }

Ошибка получения : scp: /opt/tomcat/latest/webapps//myweb-0.0.7-SNAPSHOT.war: Разрешениеотказано

Настроил ли пользователь tomcat права на «последний» (символическая ссылка)

Вот мои права доступа к файлу:

drwxrwxrwx 7 tomcat tomcat  4096 Sep 16 15:52 webapps.

Я попробовал сейчас с некоторыми изменениями:

scp: / opt / tomcat / latest / webapps /: Нет такого файла или каталога

scp: / opt / tomcat /apache-tomcat-9.0.26 / webapps /: Нет такого файла или каталога

Каталог, конечно, существует:

    ubuntu@ip-xxxxx:/opt/tomcat/apache-tomcat-9.0.26$ ls

  webapps

Ответы [ 2 ]

1 голос
/ 07 октября 2019

Эта проблема оказалась комедией ошибок . Извините.

Проблема связана с IP-адресами, которые постоянно меняются на AWS- после остановки и перезапуска ( нормальное поведение ). Я продолжал портить IP в конфигурации Jenkins и Jenkinsfile - и IP-адрес сервера Tomcat и сервера Jenkins, так или иначе, один или другой был бы неправильным (трудно поддерживать). Но я продолжал проверять с терминалом - на терминале вам, конечно, нужно иметь правильный IP, что затрудняет отладку.

Ну да, иногда простые вещи могут также испортиться

0 голосов
/ 07 октября 2019

Я придумываю некоторые решения ..

1.Отправьте файл в другой каталог, затем снова скопируйте в целевой каталог

stage('Deploy to Tomcat'){
      sshagent(['Tomcat-cred']) {
         sh """
           scp -o StrictHostKeyChecking=no target/*.war ubuntu@xxxx:/home/ubuntu
           ssh -o StrictHostKeyChecking=no ubuntu@xxxx 'cp -r /home/ubuntu/*.war /opt/tomcat/latest/webapps/'
         """
      }
   }

2.Не просто используйте плагин sshagent

stage('Deploy to Tomcat'){
      script {
         // you may need to set ssh keys on target server
         sh 'scp -o StrictHostKeyChecking=no target/*.war ubuntu@xxxx:/opt/tomcat/latest/webapps/'
      }
   }

Я надеюсь, что вы решите эту проблему ..

...