2016-05-07 2 views

ответ

1

Это то, что окончательно сработало для меня. Это Ubuntu 16.04 hvm: ebs как базовое изображение, так как оно установит современный и функционирующий git и awscli. 14.04 было много вопросов, которые, в конце концов, не стоили разбираться.

{                           
    "variables": {                       
    "aws_access_key": "",                     
    "aws_secret_key": ""                     
    },                          
    "builders": [{                       
    "type": "amazon-ebs",                     
    "name": "aws",                       
    "access_key": "{{user `aws_access_key`}}",                
    "secret_key": "{{user `aws_secret_key`}}",                
    "iam_instance_profile": "packer",                 
    "region": "us-east-1",                     
    "source_ami": "ami-840910ee",                   
    "instance_type": "t2.micro",                   
    "ssh_username": "ubuntu",                    
    "ami_name": "myproject {{timestamp}}"                 
    }],                          
    "provisioners": [{                      
    "type": "shell",                      
    "inline": [                       
     "sleep 30",                       
     "sudo apt-get update",                    
     "sudo apt-get upgrade -y",                   
     "sudo apt-get install -y git awscli python-virtualenv",            
     "sudo install -o ubuntu -g ubuntu -m 755 -d /opt/scratch",            
     "virtualenv /opt/scratch/venv",                   
     "git config --global credential.helper '!aws codecommit credential-helper [email protected]'",      
     "git config --global credential.UseHttpPath true",             
     "git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/myproject /opt/scratch/venv/src/myproject", 
     "/opt/scratch/venv/bin/pip install -r /opt/scratch/venv/src/myproject/requirements.txt"     
    ]                          
    }]                          
}                           

В IAM консоли, пользователь, который будет использовать пакер нуждается в iam:PassRole политики, чтобы иметь возможность использовать iam_instance_profile директивы.

Также в консоли IAM вам необходимо создать роль для EC2 и дать ей политику AWSCodeCommitReadOnly.

Отметьте, что --profile default отсутствует на credential.helper, это намеренно. При использовании роли нет файла ~/.aws/credential для хранения профиля по умолчанию. Вместо этого aws-cli будет использовать роль, назначенную экземпляру, которая позволяет клонировать его с CodeCommit

Смежные вопросы