AWSEBCLI не работает при работе с Jenkins. Нет модуля с именем ERROR

Я работаю над непрерывным развертыванием приложения на работе, используя Jenkins с Multibranch Pipeline, AWSCLI и AWSEBCLI. При запуске через ssh все работает нормально, а на jenkins нет.

Приложение: - Java 8 - Maven - Quarkus Framework https://quarkus.io/

Дженкинсфайл:

tools {
    jdk 'jdk_1.8.0'
    maven 'Maven'
}

stages {
    stage('Environment Configuration') {
        steps {
            sh 'sudo pip install awscli==1.16.9 awsebcli==3.14.4'
        }
    stage('Deploy') {
        when {
            anyOf {
                branch 'feature/CD'
            }
        }
        steps {
            sh 'zip -r application.zip target Dockerfile'
            sh 'aws configure set aws_access_key_id $ACCESS_KEY_DEV --profile eb-cli'
            sh 'aws configure set aws_secret_access_key $SECRET_KEY_DEV --profile eb-cli'
            sh 'eb deploy'
        }
    }
}

}

По SSH:

[root]# eb --version
EB CLI 3.14.4 (Python 2.7.5)
[root]# python --version
Python 2.7.5
[root]# aws --version
aws-cli/1.16.9 Python/2.7.5 Linux/3.10.0-862.11.6.el7.x86_64 botocore/1.11.9

[root]# eb deploy
Uploading application/app-9d9c-191122_104206.zip to S3. This may take a while.
Upload Complete.
2019-11-22 13:42:09    INFO    Environment update is starting.
2019-11-22 13:42:13    INFO    Deploying new version to instance(s).

О Дженкинсе:

+ python --version
Python 2.7.5
[Pipeline] sh
+ aws --version
aws-cli/1.16.9 Python/2.7.5 Linux/3.10.0-862.11.6.el7.x86_64 botocore/1.11.9
+ eb deploy
Traceback (most recent call last):
  File "/bin/eb", line 5, in <module>
    from ebcli.core.ebcore import main
  File "/usr/lib/python2.7/site-packages/ebcli/core/ebcore.py", line 21, in <module>
    from ebcli.controllers.clone import CloneController
  File "/usr/lib/python2.7/site-packages/ebcli/controllers/clone.py", line 17, in <module>
    from ..operations import cloneops, commonops, solution_stack_ops
  File "/usr/lib/python2.7/site-packages/ebcli/operations/solution_stack_ops.py", line 23, in <module>
    from ebcli.operations import commonops, platformops
  File "/usr/lib/python2.7/site-packages/ebcli/operations/platformops.py", line 22, in <module>
    from semantic_version import Version
ImportError: No module named semantic_version

person Philippe Geraldeli    schedule 22.11.2019    source источник
comment
Проблема в том, что один или несколько модулей Python, от которых зависит awsebcli, недоступны для пользователя Jenkins, но доступны для пользователя root, поскольку вы устанавливаете их как sudoer. См. stackoverflow.com/questions/46244850/.   -  person Dibakar Aditya    schedule 22.11.2019


Ответы (1)


Вероятно, на вашем компьютере установлено несколько pip. Предполагается, что pip install awsebcli установил пакет semantic_version Python, однако, как видно из опубликованной вами трассировки стека, его не удалось найти. Чтобы обойти эти проблемы, в идеале следует использовать virtualenv. Если вам просто нужна чистая установка, Beanstalk предоставляет набор скриптов для вас, чтобы установить EBCLI без каких-либо трений.

person progfan    schedule 05.12.2019