author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Wed, 19 Dec 2018 09:42:44 +0200 | |
changeset 2306 | 5892d69ad3ed |
parent 2302 | f47dd29b4e06 |
child 2307 | 08aa10b9c7ff |
permissions | -rw-r--r-- |
2197
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
1 |
|
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
2 |
========= |
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
3 |
Vagrant |
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
4 |
========= |
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
5 |
|
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
6 |
Changing Vagrant home directory |
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
7 |
=============================== |
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
8 |
|
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
9 |
Set ``VAGRANT_HOME`` env var, like:: |
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
10 |
|
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
11 |
VAGRANT_HOME=d:\srv\vagrant |
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
12 |
|
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
13 |
Default is ``~/.vagrant.d`` for Linux and ``%USERPROFILE%\.vagrant.d`` for Windows. |
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
14 |
|
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
15 |
https://www.vagrantup.com/docs/other/environmental-variables.html |
2271 | 16 |
Environmental Variables. ``VAGRANT_HOME``. |
17 |
https://www.vagrantup.com/docs/vagrantfile/ |
|
18 |
Load Order and Merging. |
|
2197
5ee52f8d25b5
Changing Vagrant home directory.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
19 |
|
2306
5892d69ad3ed
Pointing to VirtualBox location.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2302
diff
changeset
|
20 |
Pointing to VirtualBox location |
5892d69ad3ed
Pointing to VirtualBox location.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2302
diff
changeset
|
21 |
=============================== |
5892d69ad3ed
Pointing to VirtualBox location.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2302
diff
changeset
|
22 |
|
5892d69ad3ed
Pointing to VirtualBox location.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2302
diff
changeset
|
23 |
Set ``VBOX_MSI_INSTALL_PATH`` variable:: |
5892d69ad3ed
Pointing to VirtualBox location.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2302
diff
changeset
|
24 |
|
5892d69ad3ed
Pointing to VirtualBox location.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2302
diff
changeset
|
25 |
VBOX_MSI_INSTALL_PATH=c:\opt\VirtualBox |
5892d69ad3ed
Pointing to VirtualBox location.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2302
diff
changeset
|
26 |
|
5892d69ad3ed
Pointing to VirtualBox location.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2302
diff
changeset
|
27 |
It is set/updated by VirtualBox installer and was ``VBOX_INSTALL_PATH`` before 4.3.12 (2014). |
5892d69ad3ed
Pointing to VirtualBox location.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2302
diff
changeset
|
28 |
|
2272 | 29 |
Managing names |
30 |
============== |
|
31 |
||
32 |
Vagrant VM name:: |
|
33 |
||
34 |
config.vm.define "NAME" |
|
35 |
||
36 |
VirtualBox name:: |
|
37 |
||
38 |
config.vm.provider :virtualbox do |vb| |
|
39 |
vb.name = "NAME" |
|
40 |
end |
|
41 |
||
42 |
Host name:: |
|
43 |
||
44 |
config.vm.hostname = "NAME" |
|
45 |
||
2291
a49f3423eb55
Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2272
diff
changeset
|
46 |
Managing resources |
a49f3423eb55
Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2272
diff
changeset
|
47 |
================== |
a49f3423eb55
Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2272
diff
changeset
|
48 |
|
a49f3423eb55
Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2272
diff
changeset
|
49 |
https://unix.stackexchange.com/questions/176687/set-storage-size-on-creation-of-vm-virtualbox |
a49f3423eb55
Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2272
diff
changeset
|
50 |
https://askubuntu.com/questions/317338/how-can-i-increase-disk-size-on-a-vagrant-vm |
a49f3423eb55
Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2272
diff
changeset
|
51 |
https://stackoverflow.com/questions/49822594/vagrant-how-to-specify-the-disk-size |
a49f3423eb55
Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2272
diff
changeset
|
52 |
https://github.com/sprotheroe/vagrant-disksize |
a49f3423eb55
Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2272
diff
changeset
|
53 |
|
2237 | 54 |
Managing boxes |
55 |
============== |
|
56 |
||
2301 | 57 |
Store new box from catalog locally:: |
2237 | 58 |
|
59 |
$ vagrant box add ubuntu/trusty64 |
|
2301 | 60 |
$ vagrant box add --provider virtualbox hashicorp/precise64 |
2237 | 61 |
|
2301 | 62 |
Check for box updates:: |
2237 | 63 |
|
64 |
$ cd $BOXDIR |
|
65 |
$ vagrant box outdated |
|
66 |
||
2238 | 67 |
or:: |
68 |
||
69 |
$ vagrant box outdated --global |
|
70 |
||
2237 | 71 |
Disable checking for update each time you call ``vagrant`` command:: |
72 |
||
73 |
Vagrant.configure("2") do |config| |
|
74 |
config.vm.box_check_update = false |
|
75 |
end |
|
76 |
||
77 |
Download box update:: |
|
78 |
||
79 |
$ vagrant box update |
|
80 |
||
81 |
.. note:: |
|
82 |
``vagrant box update`` does not magicall updates your existing boxes. In just download |
|
83 |
updated versions. To install new versio you need to destroy and install new boxes:: |
|
84 |
||
85 |
$ vagrant destroy |
|
86 |
$ vagrant up |
|
87 |
||
88 |
To remove box at specific version:: |
|
89 |
||
90 |
$ vagrant box remove laravel/homestead --box-version 1.1.0 |
|
91 |
||
2259 | 92 |
To get list of boxes with corresponding versions:: |
93 |
||
94 |
$ vagrant box list |
|
95 |
$ vagrant global-status |
|
96 |
||
2237 | 97 |
https://www.vagrantup.com/docs/cli/box.html |
98 |
Command: ``vagrant box``. |
|
99 |
https://www.vagrantup.com/docs/boxes/versioning.html |
|
100 |
Box Versioning. |
|
101 |
||
2301 | 102 |
Exporting boxes |
103 |
=============== |
|
104 |
||
105 |
Any VirtualBox VM can be packages as Vagrant box. Find VM name or UUID with:: |
|
106 |
||
107 |
$ VBoxManage list vms |
|
108 |
||
109 |
Pass it to one of:: |
|
110 |
||
111 |
$ vagrant package --base $VM_NAME |
|
112 |
$ vagrant package --base $VM_UUID |
|
113 |
$ vagrant package --base $VM_NAME --output my.box |
|
114 |
$ vagrant package --base $VM_UUID --output my.box |
|
115 |
||
116 |
If you are in Vagrant managed directory (with ``.vagrant`` subdirectory) it is as simple as:: |
|
117 |
||
118 |
$ vagrant package |
|
119 |
||
120 |
.. note:: Only one VM is packages even if Vagrant file defines several VMs. |
|
121 |
||
122 |
Import packages box:: |
|
123 |
||
124 |
$ vagrant box add --name $NAME /path/to/new.box |
|
125 |
... |
|
126 |
$ vagrant init $NAME |
|
127 |
... |
|
128 |
$ vagrant up |
|
129 |
||
2302
f47dd29b4e06
To export box from local catalog
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2301
diff
changeset
|
130 |
To export box from local catalog:: |
f47dd29b4e06
To export box from local catalog
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2301
diff
changeset
|
131 |
|
f47dd29b4e06
To export box from local catalog
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2301
diff
changeset
|
132 |
$ vagrant box list |
f47dd29b4e06
To export box from local catalog
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2301
diff
changeset
|
133 |
$ vagrant box repackage NAME PROVIDER VERSION |
f47dd29b4e06
To export box from local catalog
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2301
diff
changeset
|
134 |
|
2301 | 135 |
https://www.vagrantup.com/docs/boxes/base.html |
136 |
Create own vagrant image. |
|
137 |
https://www.vagrantup.com/docs/cli/package.html |
|
138 |
``package`` command. |
|
2302
f47dd29b4e06
To export box from local catalog
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2301
diff
changeset
|
139 |
https://www.vagrantup.com/docs/cli/box.html#box-repackage |
f47dd29b4e06
To export box from local catalog
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2301
diff
changeset
|
140 |
``box repackage`` command. |
2301 | 141 |
|
2238 | 142 |
Managing plugins |
143 |
================ |
|
144 |
||
145 |
https://www.vagrantup.com/docs/cli/plugin.html |
|
146 |
Command: ``vagrant plugin``. |
|
147 |
https://github.com/hashicorp/vagrant/wiki/Available-Vagrant-Plugins |
|
148 |
List of vagrant plugins. |
|
149 |
||
2259 | 150 |
Debugging Vagrant |
151 |
================= |
|
152 |
||
153 |
Add environment variavle:: |
|
154 |
||
155 |
VAGRANT_LOG=warn vagrant ssh |
|
156 |
VAGRANT_LOG=info vagrant ssh |
|
157 |
VAGRANT_LOG=debug vagrant ssh |
|
158 |
||
2271 | 159 |
https://www.vagrantup.com/docs/other/environmental-variables.html |
160 |
Environmental Variables. ``VAGRANT_LOG``. |
|
161 |
||
2201
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
162 |
Running individual provisioning scripts |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
163 |
======================================= |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
164 |
|
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
165 |
You may give name to provisioning script:: |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
166 |
|
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
167 |
Vagrant.configure("2") do |config| |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
168 |
config.vm.provision 'user_ssh', type: :shell, privileged: false do |s| |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
169 |
ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_rsa.pub").first.strip |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
170 |
s.inline = "echo #{ssh_pub_key} >> /home/$USER/.ssh/authorized_keys" |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
171 |
end |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
172 |
config.vm.provision 'root_ssh', type: :shell, privileged: true do |s| |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
173 |
ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_rsa.pub").first.strip |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
174 |
s.inline = "mkdir /root/.ssh/; echo #{ssh_pub_key} >> /root/.ssh/authorized_keys" |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
175 |
end |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
176 |
... |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
177 |
end |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
178 |
|
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
179 |
and apply them individually:: |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
180 |
|
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
181 |
vagrant provision --provision-with user_ssh |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
182 |
vagrant provision --provision-with root_ssh |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
183 |
vagrant provision --provision-with user_ssh,root_ssh |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
184 |
|
2236
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
185 |
Working with Alpine Linux |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
186 |
========================= |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
187 |
|
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
188 |
Install plugin:: |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
189 |
|
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
190 |
$ vagrant plugin install vagrant-alpine |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
191 |
Installing the 'vagrant-alpine' plugin. This can take a few minutes... |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
192 |
Installed the plugin 'vagrant-alpine (0.3.0)'! |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
193 |
|
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
194 |
Create Vagrantfile:: |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
195 |
|
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
196 |
$ vagrant init maier/alpine-3.6-x86_64 |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
197 |
|
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
198 |
https://app.vagrantup.com/maier/boxes/alpine-3.6-x86_64 |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
199 |
AlpineLinux v3.6.2 with VirtualBoxGuestAdditions |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
200 |
https://app.vagrantup.com/maier |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
201 |
maier boxes. |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
202 |
https://github.com/maier/vagrant-alpine |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
203 |
Home page of ``vagrant-alpine`` plugin. |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
204 |
https://app.vagrantup.com/generic/boxes/alpine36 |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
205 |
Generic box. |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
206 |
https://app.vagrantup.com/generic/boxes |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
207 |
Generic boxes. |