2016-04-25 3 views

Antwort

3

Nachdem eine Zeit lang daran gearbeitet, gefunden eine Lösung.

Der TeamCity-Agent wird in einer EC2-Instanz gehostet, die mit einer IAM-Rolle in AWS gestartet wurde.

Richten Sie eine Deployer-IAM-Rolle mit Zugriff auf den S3-Bucket ein und lassen Sie die TeamCity IAM-Rolle dies übernehmen.

Verwenden Sie anschließend AWS CLI-Befehle, um Inhalte in den Bucket hochzuladen.

Beispiel (Powershell)

STEP 1. Antrag temporäre Anmeldeinformationen für das Konto

#----------------------------- 
# Get parameters 
#----------------------------- 
$RoleArn = "%param_deployer_arn%" 
$ExternalId = "%param_assume_role_external_id%" 
$Region = "%param_region%" 
$SessionName = "%param_session_name%" 

#----------------------------- 
# AWS Authentication - Assume Role 
#----------------------------- 
$Response = (Use-STSRole -Region $Region -RoleArn $RoleArn -ExternalId $ExternalId -RoleSessionName $SessionName).Credentials 
$SecretAccessKey = $Response.SecretAccessKey 
$SessionToken = $Response.SessionToken 
$AccessKeyId = $Response.AccessKeyId 

#----------------------------- 
# Set environment variables 
#----------------------------- 
"##teamcity[setParameter name='env.AWS_SECRET_ACCESS_KEY' value='$SecretAccessKey']" 
"##teamcity[setParameter name='env.AWS_SECURITY_TOKEN' value='$SessionToken']" 
"##teamcity[setParameter name='env.AWS_ACCESS_KEY_ID' value='$AccessKeyId']" 

SCHRITT 2. (Access AWS Session-Token und Zugriffsschlüssel in Umgebungsvariablen gespeichert ist)

WICHTIG: muss in verschiedenen Schritten in TeamCity durchgeführt werden)

#----------------------------- 
# List S3 bucket content 
#----------------------------- 
aws s3 ls s3://%S3Bucket% 
+1

können Sie bitte zeigen, wie Sie den CLI Schritt auf TeamCity gemacht haben? –

+0

Ich habe gerade meinen ursprünglichen Beitrag bearbeitet und ein Beispiel hinzugefügt. – MaRoBet

Verwandte Themen