Je cherche à automatiser certains processus de création de machines virtuelles. Nous utilisons Vagrant, avec Virtualbox comme fournisseur. Nous aimerions que nos créations de machines virtuelles soient effectuées sur EC2, mais pour construire l'image Virtualbox doit démarrer. Étant donné que Virtualbox ne peut pas fonctionner sur une machine EC2, je me demande s'il existe d'autres outils AWS qui peuvent aider avec cela.
Réponses
Trop de publicités?Pour créer une AMI EC2 et lancer des instances à partir de celle-ci, vous pouvez utiliser le support Linux x64 générique de Boxfuse : https://boxfuse.com/docs/payloads/linux-x64
Tout ce que vous avez à faire est de passer un fichier tar.gz et la commande à exécuter et le reste est pris en charge pour vous.
Avis de non-responsabilité : Je suis le fondateur et PDG de Boxfuse
Pas sûr pourquoi vous voudriez exécuter votre code à l'intérieur d'un conteneur sur AWS. Mais vous pouvez certainement utiliser Docker voir ici. En fait, certains services AWS utilisent docker en interne, par exemple Elastic Beanstalk.
J'ai également entendu parler du service boxfuse qui aide à l'automatisation du déploiement. Et d'après ce que j'ai compris, il crée des images que AWS peut exécuter directement. Je n'ai jamais utilisé ce service moi-même, donc je ne peux pas en dire beaucoup.
Vagrant dispose d'un fournisseur "AWS" qui vous permet d'exécuter Vagrant sur EC2 depuis votre machine locale:
$ vagrant plugin install vagrant-aws
$ vagrant up --provider=aws
Si vous avez déjà approvisionné une machine avec VirtualBox, vous devrez d'abord la supprimer avec vagrant destroy
Vous devez également utiliser une AMI Amazon au lieu d'une boîte régulière
vagrant box add aws-dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
dans votre fichier Vagrantfile:
config.vm.box = "aws-dummy"
require 'vagrant-aws'
config.vm.provider 'aws' do |aws, override|
aws.access_key_id = ENV['AWS_ACCESS_KEY_ID']
aws.secret_access_key = ENV['AWS_SECRET_ACCESS_KEY']
aws.keypair_name = 'default'
aws.region = 'us-east-1'
aws.ami = 'ami-e13739f6'
aws.security_groups = ['default']
override.ssh.username = 'ubuntu'
override.ssh.private_key_path = '~/.ssh/ssh-keypair-file'
end
https://www.vagrantup.com/docs/getting-started/providers.html
http://blog.scottlowe.org/2016/09/15/using-vagrant-with-aws/