Vagrant
De Linuxmemo.
https://www.vagrantup.com/docs/getting-started/
Sommaire |
Install
https://www.vagrantup.com/downloads.html
Nouveau projet (vide)
/!\ Attention /!\: Tout les VM sont gérées depuis leur répertoire respectif. Alors attention de bien vous placer a l’intérieur du répertoire de la VM.
mkdir vagrant_getting_started cd vagrant_getting_started vagrant init vim Vagrantfile
Les "Boxes"
- rechercher une box (depuis le site web uniquement)
https://atlas.hashicorp.com/boxes/search
https://app.vagrantup.com/boxes/search
- ajouter une box
vagrant box add hashicorp/precise64 (vagrant box add user/namebox)
- démarrer la box
vagrant up vagrant ssh
- détruire l'instance d'une box
vagrant destroy
- deinstaller une box
vagrant box remove
- lister les box installées
vagrant box list
synced folders (/vagrant)
By default, Vagrant shares your project directory (remember, that is the one with the Vagrantfile) to the /vagrant directory in your guest machine.
vagrant up vagrant ssh vagrant@precise64:~$ ls /vagrant Vagrantfile
Provisioning
- shell scripts
in the same directory as your Vagrantfile:
vim bootstrap.sh #!/usr/bin/env bash apt-get update apt-get install -y apache2 if ! [ -L /var/www ]; then rm -rf /var/www ln -fs /vagrant /var/www fi
vim vagrantfile Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise64" config.vm.provision :shell, path: "bootstrap.sh" end
vagrant up or vagrant reload --provision
- Chef
- Puppet
By default, Vagrant expects manifests to be in the manifests folder, and will run the default.pp manifest in that folder to kick off the Puppet run.
- déactiver le "provisionning"
vagrant up --no-provision
Networking
Let us setup a forwarded port so we can access Apache in our guest:
vim Vagrantfile Vagrant.configure("2") do |config| config.vm.box = "hashicorp/precise64" config.vm.provision :shell, path: "bootstrap.sh" config.vm.network :forwarded_port, guest: 80, host: 4567 end vagrant reload or vagrant up
Vagrant also has other forms of networking, allowing you to assign a static IP address to the guest machine, or to bridge the guest machine onto an existing network. If you are interested in other options, read the networking page.
Créer un compte gratuit sur https://www.vagrantup.com/docs/other/atlas.html
vagrant login vagrant share
Stop VM
With Vagrant, you suspend, halt, or destroy the guest machine.
vagrant suspend or vagrant halt or vagrant destroy (Again, when you are ready to work again, just issue a vagrant up. The benefit of this is that no cruft is left on your machine.)
Liste de VM et status
vagrant status or vagrant status vmname
Plugins (usually RubyGems)
vagrant plugin list vagrant plugin install <name>... vagrant plugin update vagrant plugin update [<name>] vagrant plugin license <name> <license-file> vagrant plugin uninstall <name> [<name2> <name3> ...]
snapshot
vagrant snapshot vagrant snapshot push vagrant snapshot pop vagrant snapshot save vagrant snapshot restore vagrant snapshot list vagrant snapshot delete
Astuces
- Proxy pour box
Définir les varialbes d'env: http_proxy=http://yourproxy:8080 https_proxy=http://yourproxy:8080 no_proxy=localhost,127.0.0.1
- proxy dans VM
Install proxyconf: vagrant plugin install vagrant-proxyconf Configure your Vagrantfile: config.proxy.http = "http://yourproxy:8080" config.proxy.https = "http://yourproxy:8080" config.proxy.no_proxy = "localhost,127.0.0.1"