Skip to content
Snippets Groups Projects
Commit 0621f13a authored by Vincent Mazenod's avatar Vincent Mazenod
Browse files

enhance vagrant slides

parent 0efcd0d9
No related branches found
No related tags found
No related merge requests found
......@@ -11,9 +11,9 @@
* écrit en ruby
* [<i class="fa fa-github" aria-hidden="true"></i> hashicorp/vagrant](https://github.com/hashicorp/vagrant)
* [<i class="fa fa-gavel" aria-hidden="true"></i> The MIT Licens](https://github.com/hashicorp/vagrant/blob/master/LICENSE)
* [<i class="fa fa-gavel" aria-hidden="true"></i> The MIT License](https://github.com/hashicorp/vagrant/blob/master/LICENSE)
* outil ligne de commande
* outil en ligne de commande
* se voit dans l'hyperviseur utilisé
......@@ -29,27 +29,48 @@
## Installation
* gem
gem install vagrant
* system
pré-requis
```
$ sudo apt install virtualbox
```
via gem
```
$ sudo apt install rubygems-integration
$ sudo gem install vagrant
```
via apt
```
$ sudo apt install vagrant
```
afficher la version de vagrant
```
$ vagrant --version
```
## Initialisation du projet
```
mkdir project && cd project
vagrant init
$ mkdir project && cd project
$ vagrant init
```
génère un Vagrantfile
```
```ruby
Vagrant.configure("2") do |config|
config.vm.box = "base"
end
```
Beaucoup de commentaires ... laisser vous guidez
Beaucoup de commentaires ... laisser vous guider
## Box
......@@ -61,44 +82,68 @@ Beaucoup de commentaires ... laisser vous guidez
* nommage à la github "développeur/Box"
```
vagrant box add "ubuntu/xenial64"
vagrant box add "http://aka.ms/vagrant-win7-ie11"
vagrant box list
vagrant box remove "ubuntu/xenial64"
$ vagrant box add "ubuntu/xenial64"
$ vagrant box add "http://aka.ms/vagrant-win7-ie11"
$ vagrant box list
$ vagrant box remove "ubuntu/xenial64"
```
* [Creating a Base Box](https://www.vagrantup.com/docs/boxes/base.html)
* [<i class="fa fa-github" aria-hidden="true"></i> veewee](https://github.com/jedi4ever/veewee)
* [<i class="fa fa-github" aria-hidden="true"></i> How to Create a CentOS Vagrant Base Box](https://github.com/ckan/ckan/wiki/How-to-Create-a-CentOS-Vagrant-Base-Box)
## Premier pas
## cycle de vie
```
vagrant up #--provider=virtualbox
vagrant ssh
vagrant halt
vagrant suspend
vagrant reload
vagrant destroy #--force
$ vagrant init "ubuntu/bionic64"
$ vagrant up #--provider=virtualbox
$ vagrant ssh
$ vagrant halt
$ vagrant suspend
$ vagrant reload
$ vagrant destroy #--force
```
## shared folders
## points de montage
$ ll /vagrant
montage automatique de `.` dans `/vagrant`
montage automatique de .
```
$ vagrant ssh
$ ll /vagrant
total 60
drwxr-xr-x 1 vagrant vagrant 4096 Dec 14 19:46 ./
drwxr-xr-x 24 root root 4096 Dec 14 19:47 ../
drwxr-xr-x 1 vagrant vagrant 4096 Dec 14 19:46 .vagrant/
-rw-r--r-- 1 vagrant vagrant 155 Dec 14 19:49 Vagrantfile
-rw------- 1 vagrant vagrant 44198 Dec 14 19:47 ubuntu-bionic-18.04-cloudimg-console.log
```
autre possibilité à parir du vagrant file
autre possibilité à partir de `Vagrantfile`
config.vm.provision "file", source: "~/.gitconfig", destination: ".gitconfig"
```ruby
Vagrant.configure("2") do |config|
...
config.vm.provision "file", source: "~/.gitconfig", destination: "~/.gitconfig"
...
end
```
## provisioning
via un simple script
via l'entrée standard
```ruby
config.vm.provision "shell", inline: <<-SHELL
sudo apt install -y python openssh-server
SHELL
```
via un script
```ruby
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise32"
config.vm.provision "shell", path: "script.sh"
......@@ -110,19 +155,41 @@ end
via [ansible](ansible.html)
```
```ruby
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise32"
config.vm.provision "shell", path: "script.sh"
config.vm.provision "ansible" do |ansible|
ansible.playbook = "playbook.yml"
ansible.host_key_checking = false
ansible.playbook = "vault.yml"
ansible.extra_vars = { is_vagrant: true }
ansible.tags = ['initialize']
ansible.skip_tags = ["vagrant_context"]
ansible.inventory_path = "./my-inventory"
ansible.raw_arguments = ["--private-key=~/.ssh/id/id_rsa"]
ansible.verbose = "vvv"
end
end
```
### idéal pour tester les playbooks
## mapping de port
## vagrant pour tester apache
```ruby
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.network "forwarded_port", guest: 80, host: 8000
config.vm.provider "virtualbox" do |vb|
vb.gui = false
vb.memory = "4096"
end
config.vm.provision "shell", inline: <<-SHELL
sudo apt install -y apache2
SHELL
end
```
## conclusion
### laissez un petit Vagrantfile dans vos playbooks est toujours une bonne idée!
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment