Vagrant
De Linuxmemo.
https://www.vagrantup.com/docs/getting-started/
Sommaire |
[modifier] Install
https://www.vagrantup.com/downloads.html
[modifier] 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
[modifier] 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
[modifier] 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
[modifier] 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
[modifier] 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.
[modifier]
Créer un compte gratuit sur https://www.vagrantup.com/docs/other/atlas.html
vagrant login vagrant share
[modifier] 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.)
[modifier] Liste de VM et status
vagrant status or vagrant status vmname
[modifier] 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> ...]
[modifier] snapshot
vagrant snapshot vagrant snapshot push vagrant snapshot pop vagrant snapshot save vagrant snapshot restore vagrant snapshot list vagrant snapshot delete
[modifier] 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"