Как дать верительные грамоты для конвейера Дженкинса?

10

У меня есть следующая конфигурация в моем конвейере Дженкинс

s3Upload( file:'ok.txt', bucket:'my-buckeck', path:'file.txt')

Проблема в том, что функция s3Upload не берет ключи доступа AWS, которые я сохранил в jenkins

я связан со следующим кодом

    withAWS(profile:'Test Publisher') {
    s3Upload( file:'ok.txt', bucket:'my-buckeck', path:'file.txt')

}

профиль s3

мой профиль s3 в Дженкинс такой. Я все еще получаю файл профиля не может найти ошибку. Как я могу загрузить файл из jenkins на s3, используя функцию s3Upload?

парень с открытым исходным кодом
источник

Ответы:

8

Чтобы иметь возможность загрузки на S3, вам нужно сохранить свои учетные данные в переменных среды на вашем Jenkins:

AWS_DEFAULT_REGION=<region of bucket>

AWS_ACCESS_KEY_ID=<aws id>

AWS_SECRET_ACCESS_KEY=<your s3 access key>

Для этого просто перейдите в раздел Jenkins - Управление Jenkins - Настройка системы - Глобальные свойства - Переменные среды

red.avtovo
источник
4

Я думаю, вы, возможно, перепутали плагин S3 Publisher с плагином AWS.

Этот снимок экрана взят из плагина S3 Publisher https://wiki.jenkins.io/display/JENKINS/S3+Plugin . Есть предупреждение не обновлять до последней версии. Похоже, что совместимость для конвейера нарушена, появляется это предупреждение «Версия 0.10.11 (31 декабря 2016 г.) - не обновлять - нарушена обратная совместимость для конвейерных скриптов».

Тем не менее, похоже, что ваш конвейерный код предназначен для плагина Jenkins AWS. https://github.com/jenkinsci/pipeline-aws-plugin . Чтобы использовать учетные данные с этим плагином, вы должны выполнить одно из следующих действий:

  1. хранить ключ доступа, секретный ключ в хранилище учетных данных Jenkins.
  2. читать из файла конфигурации AWS Дженкинса.

Эти параметры описаны в плагине README https://github.com/jenkinsci/pipeline-aws-plugin.

Use Jenkins UsernamePassword credentials information (Username: AccessKeyId, Password: SecretAccessKey):    
withAWS(credentials:'nameOfSystemCredentials') {
    // do something
}

Use profile information from ~/.aws/config:
withAWS(profile:'myProfile') {
    // do something
}

"profile" - это раздел профиля вашего конфигурационного файла AWS. http://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html

Затем вы можете использовать функцию загрузки S3. https://github.com/jenkinsci/pipeline-aws-plugin#s3upload

Майк Марселья
источник
Я использую withAWSшаг и у меня есть учетные данные AWS с именем accesskeyи идентификатором jenkins. Когда я называю это как withAWS(credentials:'jenkins')или как withAWS(credentials:'accesskey')я продолжаю ударять это исключение. Учетные данные выглядят хорошо на моей консоли Jenkins mgmt (есть журнал, в котором говорится, что последний раз успешно использовался в последнее время). Чего мне не хватать?
scorpiodawg
1
@scorpiodawg ваш вопрос звучит немного иначе, чем оригинал. Не могли бы вы начать новый вопрос с как можно больше информации?
Майк Марселья
Я спросил это здесь: serverfault.com/questions/958350/… @ mike-marseglia
scorpiodawg