author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Sun, 16 Dec 2018 22:37:48 +0200 | |
changeset 2301 | a99f277a9eae |
parent 2291 | a49f3423eb55 |
child 2302 | f47dd29b4e06 |
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 |
|
2272 | 20 |
Managing names |
21 |
============== |
|
22 |
||
23 |
Vagrant VM name:: |
|
24 |
||
25 |
config.vm.define "NAME" |
|
26 |
||
27 |
VirtualBox name:: |
|
28 |
||
29 |
config.vm.provider :virtualbox do |vb| |
|
30 |
vb.name = "NAME" |
|
31 |
end |
|
32 |
||
33 |
Host name:: |
|
34 |
||
35 |
config.vm.hostname = "NAME" |
|
36 |
||
2291
a49f3423eb55
Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2272
diff
changeset
|
37 |
Managing resources |
a49f3423eb55
Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2272
diff
changeset
|
38 |
================== |
a49f3423eb55
Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2272
diff
changeset
|
39 |
|
a49f3423eb55
Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2272
diff
changeset
|
40 |
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
|
41 |
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
|
42 |
https://stackoverflow.com/questions/49822594/vagrant-how-to-specify-the-disk-size |
a49f3423eb55
Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2272
diff
changeset
|
43 |
https://github.com/sprotheroe/vagrant-disksize |
a49f3423eb55
Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2272
diff
changeset
|
44 |
|
2237 | 45 |
Managing boxes |
46 |
============== |
|
47 |
||
2301 | 48 |
Store new box from catalog locally:: |
2237 | 49 |
|
50 |
$ vagrant box add ubuntu/trusty64 |
|
2301 | 51 |
$ vagrant box add --provider virtualbox hashicorp/precise64 |
2237 | 52 |
|
2301 | 53 |
Check for box updates:: |
2237 | 54 |
|
55 |
$ cd $BOXDIR |
|
56 |
$ vagrant box outdated |
|
57 |
||
2238 | 58 |
or:: |
59 |
||
60 |
$ vagrant box outdated --global |
|
61 |
||
2237 | 62 |
Disable checking for update each time you call ``vagrant`` command:: |
63 |
||
64 |
Vagrant.configure("2") do |config| |
|
65 |
config.vm.box_check_update = false |
|
66 |
end |
|
67 |
||
68 |
Download box update:: |
|
69 |
||
70 |
$ vagrant box update |
|
71 |
||
72 |
.. note:: |
|
73 |
``vagrant box update`` does not magicall updates your existing boxes. In just download |
|
74 |
updated versions. To install new versio you need to destroy and install new boxes:: |
|
75 |
||
76 |
$ vagrant destroy |
|
77 |
$ vagrant up |
|
78 |
||
79 |
To remove box at specific version:: |
|
80 |
||
81 |
$ vagrant box remove laravel/homestead --box-version 1.1.0 |
|
82 |
||
2259 | 83 |
To get list of boxes with corresponding versions:: |
84 |
||
85 |
$ vagrant box list |
|
86 |
$ vagrant global-status |
|
87 |
||
2237 | 88 |
https://www.vagrantup.com/docs/cli/box.html |
89 |
Command: ``vagrant box``. |
|
90 |
https://www.vagrantup.com/docs/boxes/versioning.html |
|
91 |
Box Versioning. |
|
92 |
||
2301 | 93 |
Exporting boxes |
94 |
=============== |
|
95 |
||
96 |
Any VirtualBox VM can be packages as Vagrant box. Find VM name or UUID with:: |
|
97 |
||
98 |
$ VBoxManage list vms |
|
99 |
||
100 |
Pass it to one of:: |
|
101 |
||
102 |
$ vagrant package --base $VM_NAME |
|
103 |
$ vagrant package --base $VM_UUID |
|
104 |
$ vagrant package --base $VM_NAME --output my.box |
|
105 |
$ vagrant package --base $VM_UUID --output my.box |
|
106 |
||
107 |
If you are in Vagrant managed directory (with ``.vagrant`` subdirectory) it is as simple as:: |
|
108 |
||
109 |
$ vagrant package |
|
110 |
||
111 |
.. note:: Only one VM is packages even if Vagrant file defines several VMs. |
|
112 |
||
113 |
Import packages box:: |
|
114 |
||
115 |
$ vagrant box add --name $NAME /path/to/new.box |
|
116 |
... |
|
117 |
$ vagrant init $NAME |
|
118 |
... |
|
119 |
$ vagrant up |
|
120 |
||
121 |
https://www.vagrantup.com/docs/boxes/base.html |
|
122 |
Create own vagrant image. |
|
123 |
https://www.vagrantup.com/docs/cli/package.html |
|
124 |
``package`` command. |
|
125 |
||
2238 | 126 |
Managing plugins |
127 |
================ |
|
128 |
||
129 |
https://www.vagrantup.com/docs/cli/plugin.html |
|
130 |
Command: ``vagrant plugin``. |
|
131 |
https://github.com/hashicorp/vagrant/wiki/Available-Vagrant-Plugins |
|
132 |
List of vagrant plugins. |
|
133 |
||
2259 | 134 |
Debugging Vagrant |
135 |
================= |
|
136 |
||
137 |
Add environment variavle:: |
|
138 |
||
139 |
VAGRANT_LOG=warn vagrant ssh |
|
140 |
VAGRANT_LOG=info vagrant ssh |
|
141 |
VAGRANT_LOG=debug vagrant ssh |
|
142 |
||
2271 | 143 |
https://www.vagrantup.com/docs/other/environmental-variables.html |
144 |
Environmental Variables. ``VAGRANT_LOG``. |
|
145 |
||
2201
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
146 |
Running individual provisioning scripts |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
147 |
======================================= |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
148 |
|
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
149 |
You may give name to provisioning script:: |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
150 |
|
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
151 |
Vagrant.configure("2") do |config| |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
152 |
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
|
153 |
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
|
154 |
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
|
155 |
end |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
156 |
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
|
157 |
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
|
158 |
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
|
159 |
end |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
160 |
... |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
161 |
end |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
162 |
|
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
163 |
and apply them individually:: |
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 |
vagrant provision --provision-with user_ssh |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
166 |
vagrant provision --provision-with root_ssh |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
167 |
vagrant provision --provision-with user_ssh,root_ssh |
af2d2e117b4e
Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2197
diff
changeset
|
168 |
|
2236
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
169 |
Working with Alpine Linux |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
170 |
========================= |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
171 |
|
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
172 |
Install plugin:: |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
173 |
|
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
174 |
$ vagrant plugin install vagrant-alpine |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
175 |
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
|
176 |
Installed the plugin 'vagrant-alpine (0.3.0)'! |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
177 |
|
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
178 |
Create Vagrantfile:: |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
179 |
|
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
180 |
$ vagrant init maier/alpine-3.6-x86_64 |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
181 |
|
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
182 |
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
|
183 |
AlpineLinux v3.6.2 with VirtualBoxGuestAdditions |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
184 |
https://app.vagrantup.com/maier |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
185 |
maier boxes. |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
186 |
https://github.com/maier/vagrant-alpine |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
187 |
Home page of ``vagrant-alpine`` plugin. |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
188 |
https://app.vagrantup.com/generic/boxes/alpine36 |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
189 |
Generic box. |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
190 |
https://app.vagrantup.com/generic/boxes |
15e9cc9e054f
Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
2201
diff
changeset
|
191 |
Generic boxes. |