From 0621f13a628f1dc8177280dee20b4c214f616d11 Mon Sep 17 00:00:00 2001
From: Vincent Mazenod <vmazenod@gmail.com>
Date: Fri, 14 Dec 2018 21:24:08 +0100
Subject: [PATCH] enhance vagrant slides

---
 content/slides/cri/md/vagrant.md | 131 +++++++++++++++++++++++--------
 1 file changed, 99 insertions(+), 32 deletions(-)

diff --git a/content/slides/cri/md/vagrant.md b/content/slides/cri/md/vagrant.md
index bad6cb9..6b50e4c 100644
--- a/content/slides/cri/md/vagrant.md
+++ b/content/slides/cri/md/vagrant.md
@@ -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!
-- 
GitLab