簡體   English   中英

如何允許打包程序在AMI構建期間訪問CodeCommit?

[英]How to allow packer to access CodeCommit during AMI build?

使用包裝程序構建AMI時,我想從CodeCommit克隆我的FreeTier git存儲庫。 這是難以置信的挑戰,而且記錄不充分。

這終於對我有用。 這是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 $@'",                     
      "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:PassRole策略才能使用iam_instance_profile指令。

同樣在IAM控制台中,您將需要為EC2創建角色,並為其AWSCodeCommitReadOnly策略。

請注意, --profile default中缺少--profile default ,這是有意的。 使用該角色時,沒有~/.aws/credential文件~/.aws/credential默認配置文件。 相反, aws-cli將使用分配給實例的角色,從而允許其從CodeCommit克隆

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM