Ich möchte meine FreeTier Git Repos von CodeCommit klonen, wenn Sie Packer verwenden, um ein AMI zu erstellen. Dies ist unglaublich schwierig und schlecht dokumentiert.Wie kann Packer während des AMI-Builds auf CodeCommit zugreifen?
Antwort
Das ist, was endlich für mich funktioniert hat. Das ist Ubuntu 16.04 hvm: ebs als Basisbild, da es einen modernen und funktionierenden Git und Awscli installieren wird. 14.04 hatte viele Probleme, die sich am Ende nicht lohnten.
{
"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"
]
}]
}
In der IAM-Konsole, dass der Benutzer Packer werden Bedürfnisse der iam:PassRole
Politik verwenden, um die iam_instance_profile
Richtlinie verwenden können.
Auch in der IAM-Konsole müssen Sie eine Rolle für EC2 erstellen und ihr die Richtlinie AWSCodeCommitReadOnly
geben.
Beachten Sie, dass --profile default
in credential.helper fehlt, dies ist beabsichtigt. Unter Verwendung der Rolle gibt es keine Datei, die das Standardprofil enthält. Stattdessen wird aws-cli
die der Instanz zugewiesene Rolle verwenden, die es ermöglicht, aus CodeCommit
- 1. Wie Packer export_opts verwenden?
- 2. Wie kann ich während des Debuggen auf die Interactive-Top-Ebene (auch "Display-Konsole") zugreifen?
- 3. Wie kann ich auf den Namen des Hapi-Plugins zugreifen?
- 4. Wie kann ich auf den Dom des Kind-Fensters zugreifen?
- 5. Integration codecommit mit jenkins auf EC2
- 6. NGIT: Clone CodeCommit Repository
- 7. Wie wird eine Datei während der Packer-Bereitstellung auf den Host kopiert?
- 8. Javascript Packer versus Minifier
- 9. kann nicht auf Docs Modem-Webseite zugreifen
- 10. Wie kann man während der Laufzeit auf die Checked-Eigenschaft einer Delphi 2009-Menübandtaste zugreifen?
- 11. Wie kann ich auf OpenSearchServer-Datenbankfelder zugreifen?
- 12. Wie kann ich auf neo4j-Ergebniseigenschaften zugreifen?
- 13. Wie kann ich auf Iframe-Elternelemente zugreifen?
- 14. Wie kann ich auf Kommandozeilenparameter zugreifen?
- 15. NodeJS + MySQL, kann DB nicht von Anwendung während INSERT zugreifen, aber kann von Terminal zugreifen
- 16. Fehler: kann nicht auf BlockJUnit4ClassRunner zugreifen
- 17. kann nicht auf Rails nach Änderung des Namens des Benutzerverzeichnisses auf OS X zugreifen
- 18. Wie kann ich auf alternative Beschriftungen in ANTLR4 zugreifen, während ein Parsebaum generisch durchlaufen wird?
- 19. Jenkins Packer AWS Anmeldeinformationen Validierung
- 20. Wie auf die URL-Muster in urls.py des Projekts zugreifen?
- 21. Zugreifen auf Anforderungsparameter von innerhalb des Validators
- 22. Wie kann ich in Behat auf die Zeichenfolge des Wertattributs zugreifen?
- 23. Perl Install PAR: Packer Probleme
- 24. Wie auf bestimmte Objektfelder zugreifen?
- 25. Flickr gem: wie auf Benutzerdetails zugreifen?
- 26. Wie Binding Converter auf die Eigenschaft eines Steuerelements auf andere Eigenschaften des Steuerelements zugreifen kann
- 27. Wie kann ich während der Laufzeit auf einen Rails-Konfigurationswert zugreifen?
- 28. Texture Packer werden nicht ausgeführt
- 29. Wie auf Strukturelement zugreifen?
- 30. asp.net: wie auf jedes Element des Wörterbuchs ohne Schlüssel zugreifen?