vagrant.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sat, 28 Nov 2020 14:37:48 +0200
changeset 2469 d6eb5318b6ff
parent 2452 f2450d4f1adc
permissions -rw-r--r--
Automatically Configuring WSL.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
589a1f5f6cbd Added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2259
diff changeset
    16
  Environmental Variables. ``VAGRANT_HOME``.
589a1f5f6cbd Added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2259
diff changeset
    17
https://www.vagrantup.com/docs/vagrantfile/
589a1f5f6cbd Added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2259
diff changeset
    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
2452
f2450d4f1adc Selecting Vagrantfile.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2372
diff changeset
    29
Selecting Vagrantfile
f2450d4f1adc Selecting Vagrantfile.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2372
diff changeset
    30
=====================
f2450d4f1adc Selecting Vagrantfile.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2372
diff changeset
    31
f2450d4f1adc Selecting Vagrantfile.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2372
diff changeset
    32
Use env var ``VAGRANT_VAGRANTFILE`` to control which ``Vagrantfile`` is to use::
f2450d4f1adc Selecting Vagrantfile.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2372
diff changeset
    33
f2450d4f1adc Selecting Vagrantfile.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2372
diff changeset
    34
  VAGRANT_VAGRANTFILE=Vagrantfile-alpine vagrant status
f2450d4f1adc Selecting Vagrantfile.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2372
diff changeset
    35
  VAGRANT_VAGRANTFILE=Vagrantfile-debian vagrant status
f2450d4f1adc Selecting Vagrantfile.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2372
diff changeset
    36
2307
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
    37
Updating Vagrant
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
    38
================
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
    39
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
    40
Plugins are required to reconfigures when Vagrant version was updated::
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
    41
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
    42
  vagrant plugin expunge --reinstall
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
    43
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
    44
and possibly::
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
    45
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
    46
  vagrant plugin update
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
    47
2272
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    48
Managing names
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    49
==============
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    50
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    51
Vagrant VM name::
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    52
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    53
  config.vm.define "NAME"
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    54
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    55
VirtualBox name::
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    56
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    57
  config.vm.provider :virtualbox do |vb|
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    58
    vb.name = "NAME"
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    59
  end
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    60
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    61
Host name::
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    62
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    63
  config.vm.hostname = "NAME"
46e6d01a6e3f Managing names.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2271
diff changeset
    64
2291
a49f3423eb55 Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2272
diff changeset
    65
Managing resources
a49f3423eb55 Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2272
diff changeset
    66
==================
a49f3423eb55 Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2272
diff changeset
    67
a49f3423eb55 Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2272
diff changeset
    68
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
    69
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
    70
https://stackoverflow.com/questions/49822594/vagrant-how-to-specify-the-disk-size
a49f3423eb55 Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2272
diff changeset
    71
https://github.com/sprotheroe/vagrant-disksize
a49f3423eb55 Managing resources.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2272
diff changeset
    72
2237
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    73
Managing boxes
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    74
==============
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    75
2301
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
    76
Store new box from catalog locally::
2237
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    77
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    78
  $ vagrant box add ubuntu/trusty64
2301
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
    79
  $ vagrant box add --provider virtualbox hashicorp/precise64
2237
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    80
2301
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
    81
Check for box updates::
2237
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    82
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    83
  $ cd $BOXDIR
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    84
  $ vagrant box outdated
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    85
2238
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    86
or::
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    87
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    88
  $ vagrant box outdated --global
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    89
2237
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    90
Disable checking for update each time you call ``vagrant`` command::
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    91
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    92
  Vagrant.configure("2") do |config|
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    93
    config.vm.box_check_update = false
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    94
  end
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    95
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    96
Download box update::
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    97
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    98
  $ vagrant box update
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    99
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   100
.. note::
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   101
   ``vagrant box update`` does not magicall updates your existing boxes. In just download
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   102
   updated versions. To install new versio you need to destroy and install new boxes::
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   103
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   104
     $ vagrant destroy
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   105
     $ vagrant up
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   106
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   107
To remove box at specific version::
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   108
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   109
  $ vagrant box remove laravel/homestead --box-version 1.1.0
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   110
2259
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
   111
To get list of boxes with corresponding versions::
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
   112
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
   113
  $ vagrant box list
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
   114
  $ vagrant global-status
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
   115
2237
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   116
https://www.vagrantup.com/docs/cli/box.html
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   117
  Command: ``vagrant box``.
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   118
https://www.vagrantup.com/docs/boxes/versioning.html
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   119
  Box Versioning.
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
   120
2301
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   121
Exporting boxes
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   122
===============
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   123
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   124
Any VirtualBox VM can be packages as Vagrant box. Find VM name or UUID with::
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   125
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   126
  $ VBoxManage list vms
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   127
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   128
Pass it to one of::
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   129
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   130
  $ vagrant package --base $VM_NAME
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   131
  $ vagrant package --base $VM_UUID
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   132
  $ vagrant package --base $VM_NAME --output my.box
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   133
  $ vagrant package --base $VM_UUID --output my.box
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   134
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   135
If you are in Vagrant managed directory (with ``.vagrant`` subdirectory) it is as simple as::
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   136
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   137
  $ vagrant package
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   138
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   139
.. note:: Only one VM is packages even if Vagrant file defines several VMs.
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   140
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   141
Import packages box::
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   142
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   143
  $ vagrant box add --name $NAME /path/to/new.box
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   144
  ...
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   145
  $ vagrant init $NAME
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   146
  ...
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   147
  $ vagrant up
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   148
2302
f47dd29b4e06 To export box from local catalog
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2301
diff changeset
   149
To export box from local catalog::
f47dd29b4e06 To export box from local catalog
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2301
diff changeset
   150
f47dd29b4e06 To export box from local catalog
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2301
diff changeset
   151
  $ vagrant box list
f47dd29b4e06 To export box from local catalog
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2301
diff changeset
   152
  $ vagrant box repackage NAME PROVIDER VERSION
f47dd29b4e06 To export box from local catalog
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2301
diff changeset
   153
2301
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   154
https://www.vagrantup.com/docs/boxes/base.html
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   155
  Create own vagrant image.
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   156
https://www.vagrantup.com/docs/cli/package.html
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   157
  ``package`` command.
2302
f47dd29b4e06 To export box from local catalog
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2301
diff changeset
   158
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
   159
  ``box repackage`` command.
2301
a99f277a9eae Exporting boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2291
diff changeset
   160
2238
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
   161
Managing plugins
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
   162
================
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
   163
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
   164
https://www.vagrantup.com/docs/cli/plugin.html
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
   165
  Command: ``vagrant plugin``.
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
   166
https://github.com/hashicorp/vagrant/wiki/Available-Vagrant-Plugins
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
   167
  List of vagrant plugins.
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
   168
2259
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
   169
Debugging Vagrant
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
   170
=================
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
   171
2307
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
   172
Add environment variable::
2259
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
   173
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
   174
  VAGRANT_LOG=warn vagrant ssh
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
   175
  VAGRANT_LOG=info vagrant ssh
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
   176
  VAGRANT_LOG=debug vagrant ssh
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
   177
2307
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
   178
or option::
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
   179
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
   180
  vagrant up --debug
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
   181
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
   182
To add timestamps use one of::
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
   183
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
   184
  VAGRANT_LOG_TIMESTAMP=1 vagrant up
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
   185
  vagrant up --timestamp
08aa10b9c7ff Add timestamp to Vagrant log.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2306
diff changeset
   186
2308
caadfc329ea2 Vagrant's --debug-timestamp.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2307
diff changeset
   187
To add both as option::
caadfc329ea2 Vagrant's --debug-timestamp.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2307
diff changeset
   188
caadfc329ea2 Vagrant's --debug-timestamp.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2307
diff changeset
   189
  vagrant up --debug-timestamp
caadfc329ea2 Vagrant's --debug-timestamp.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2307
diff changeset
   190
2309
b7cd886c07b5 Added link.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2308
diff changeset
   191
https://www.vagrantup.com/docs/other/debugging.html
b7cd886c07b5 Added link.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2308
diff changeset
   192
  Debugging Vagrant.
2271
589a1f5f6cbd Added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2259
diff changeset
   193
https://www.vagrantup.com/docs/other/environmental-variables.html
589a1f5f6cbd Added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2259
diff changeset
   194
  Environmental Variables. ``VAGRANT_LOG``.
589a1f5f6cbd Added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2259
diff changeset
   195
2201
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   196
Running individual provisioning scripts
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   197
=======================================
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   198
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   199
You may give name to provisioning script::
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   200
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   201
  Vagrant.configure("2") do |config|
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   202
    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
   203
      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
   204
      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
   205
    end
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   206
    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
   207
      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
   208
      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
   209
    end
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   210
    ...
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   211
  end
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   212
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   213
and apply them individually::
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   214
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   215
  vagrant provision --provision-with user_ssh
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   216
  vagrant provision --provision-with root_ssh
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   217
  vagrant provision --provision-with user_ssh,root_ssh
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   218
2372
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   219
Copying files
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   220
=============
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   221
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   222
To copy files recursively to running box::
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   223
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   224
  vagrant upload $SRC $DST
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   225
  vagrant upload $SRC $DST  $BOXID
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   226
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   227
To copy to ``/home/vagrant``::
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   228
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   229
  vagrant upload $SRC .
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   230
  vagrant upload $SRC .  $BOXID
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   231
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   232
To copy to ``/home/vagrant/$DIR``::
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   233
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   234
  vagrant upload $SRC $DIR
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   235
  vagrant upload $SRC $DIR  $BOXID
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   236
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   237
https://www.vagrantup.com/docs/cli/upload.html
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   238
  Uploads files and directories from the host to the guest machine.
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   239
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   240
There is 3rd patry option with::
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   241
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   242
  vagrant plugin install vagrant-scp
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   243
  vagrant scp $SRC :$DST
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   244
  vagrant scp $SRC $BOXID:$DST
a6ba7fce5ed9 Copying files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2309
diff changeset
   245
2236
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   246
Working with Alpine Linux
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   247
=========================
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   248
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   249
Install plugin::
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   250
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   251
  $ vagrant plugin install vagrant-alpine
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   252
  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
   253
  Installed the plugin 'vagrant-alpine (0.3.0)'!
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   254
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   255
Create Vagrantfile::
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   256
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   257
  $ vagrant init maier/alpine-3.6-x86_64
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   258
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   259
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
   260
  AlpineLinux v3.6.2 with VirtualBoxGuestAdditions
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   261
https://app.vagrantup.com/maier
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   262
  maier boxes.
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   263
https://github.com/maier/vagrant-alpine
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   264
  Home page of ``vagrant-alpine`` plugin.
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   265
https://app.vagrantup.com/generic/boxes/alpine36
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   266
  Generic box.
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   267
https://app.vagrantup.com/generic/boxes
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   268
  Generic boxes.