Jak nadać aws poświadczeniom rurociągu Jenkins?

10

Mam następującą konfigurację w moim potoku Jenkins

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

Problem polega na tym, że funkcja s3Upload nie przyjmuje kluczy dostępu AWS, które mam zapisane w Jenkins

powiązałem z następującym kodem

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

}

profil s3

mój profil s3 w jenkins jest taki. wciąż otrzymuję plik profilu nie mógł znaleźć błędu. Jak mogę przesłać plik z jenkins do s3 za pomocą funkcji s3Upload?

facet z open source
źródło

Odpowiedzi:

8

Aby móc przesłać do S3, musisz zapisać swoje poświadczenia w zmiennych środowiskowych na swoim Jenkinsie:

AWS_DEFAULT_REGION=<region of bucket>

AWS_ACCESS_KEY_ID=<aws id>

AWS_SECRET_ACCESS_KEY=<your s3 access key>

Aby to zrobić, przejdź do Jenkins - Zarządzaj Jenkins - Konfiguruj system - Właściwości globalne - Zmienne środowiskowe

red.avtovo
źródło
4

Myślę, że mogłeś pomylić wtyczkę S3 Publisher z wtyczką AWS.

Ten zrzut ekranu pochodzi z wtyczki S3 Publisher, https://wiki.jenkins.io/display/JENKINS/S3+Plugin . Jest ostrzeżenie, aby nie aktualizować do najnowszej wersji. Wygląda na to, że zgodność z potokiem jest zepsuta, pojawia się ostrzeżenie „Wersja 0.10.11 (31 grudnia 2016 r.) - nie aktualizuj - zgodność wsteczna dla skryptów potoku jest zepsuta”.

Wygląda jednak na to, że kod potoku dotyczy wtyczki Jenkins AWS. https://github.com/jenkinsci/pipeline-aws-plugin . Aby użyć poświadczeń z tą wtyczką, musisz wykonać jedną z następujących czynności:

  1. przechowywać klucz dostępu, tajny klucz w sklepie poświadczeń Jenkinsa.
  2. odczytane z pliku konfiguracyjnego AWS Jenkinsa.

Opcje te są udokumentowane we wtyczce 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
}

„profil” to sekcja profilu pliku konfiguracyjnego AWS. http://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html

Następnie możesz użyć funkcji przesyłania S3. https://github.com/jenkinsci/pipeline-aws-plugin#s3upload

Mike Marseglia
źródło
Korzystam z tego withAWSkroku i mam poświadczenia AWS z nazwą accesskeyi identyfikatorem jenkins. Kiedy nazywam to jako withAWS(credentials:'jenkins')lub gdy withAWS(credentials:'accesskey')wciąż uderzam w ten wyjątek. Poświadczenia wyglądają dobrze na mojej konsoli Jenkins mgmt (istnieje dziennik z informacją, że ostatnio z powodzeniem użyto w ostatnim czasie). Czego mogłem brakować?
scorpiodawg 13.03.19
1
@scorpiodawg twoje pytanie brzmi nieco inaczej niż oryginał. Czy możesz zacząć nowe pytanie z jak największą ilością informacji?
Mike Marseglia
Zapytałem o to tutaj: serverfault.com/questions/958350 / ... @ mike-marseglia
scorpiodawg