vagrant.md 2.45 KB
Newer Older
Vincent Mazenod's avatar
Vincent Mazenod committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# vagrant

![vagrant](images/vagrant.png "vagrant")<!-- .element width="30%" -->

**By HashiCorp**


## vagrant

* création / configuration d'environnements virtuels

* é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)

* outil ligne de commande
  * se voit dans l'hyperviseur utilisé


## vagrant

* Il peut être considéré comme un wrapper d'hyperviseur
  * VirtualBox
  * libvirt
  * VMware
  * Amazon EC2
* supporte nativement docker depuis la 1.6


## Installation

* gem
  gem install vagrant
* system


## Initialisation du projet

```
mkdir project && cd project
vagrant init
```

génère un Vagrantfile

```
Vagrant.configure("2") do |config|
  config.vm.box = "base"
end
```

Beaucoup de commentaires ... laisser vous guidez


## Box

* Machines virtuelles préconfigurées (templates)
* [vagrant cloud](https://app.vagrantup.com/boxes/search)
* [vagrantbox.es](https://www.vagrantbox.es/)
* mis en cache
* 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"
```
* [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

```
vagrant up #--provider=virtualbox
vagrant ssh
vagrant halt
vagrant suspend
vagrant reload
vagrant destroy #--force
```


## shared folders

$ ll /vagrant

montage automatique de .

autre possibilité à parir du vagrant file

config.vm.provision "file", source: "~/.gitconfig", destination: ".gitconfig"


## provisioning

via un simple script

```
Vagrant.configure("2") do |config|
 config.vm.box = "hashicorp/precise32"
 config.vm.provision "shell", path: "script.sh"
end
```


## provisioning

via [ansible](ansible.html)

```
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"
 end
end
```

### idéal pour tester les playbooks

## mapping de port

## vagrant pour tester apache