vagrant.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sun, 07 Oct 2018 22:05:03 +0300
changeset 2271 589a1f5f6cbd
parent 2259 584447bfdc99
child 2272 46e6d01a6e3f
permissions -rw-r--r--
Added links.
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
2237
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    20
Managing boxes
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    21
==============
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    22
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    23
Adding new box from catalog::
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    24
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    25
  $ vagrant box add ubuntu/trusty64
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    26
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    27
Checking for box updates::
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    28
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    29
  $ cd $BOXDIR
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    30
  $ vagrant box outdated
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    31
2238
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    32
or::
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    33
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    34
  $ vagrant box outdated --global
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    35
2237
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    36
Disable checking for update each time you call ``vagrant`` command::
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    37
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    38
  Vagrant.configure("2") do |config|
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    39
    config.vm.box_check_update = false
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    40
  end
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    41
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    42
Download box update::
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    43
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    44
  $ vagrant box update
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    45
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    46
.. note::
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    47
   ``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
    48
   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
    49
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    50
     $ vagrant destroy
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    51
     $ vagrant up
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    52
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    53
To remove box at specific version::
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    54
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    55
  $ vagrant box remove laravel/homestead --box-version 1.1.0
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    56
2259
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
    57
To get list of boxes with corresponding versions::
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
    58
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
    59
  $ vagrant box list
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
    60
  $ vagrant global-status
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
    61
2237
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    62
https://www.vagrantup.com/docs/cli/box.html
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    63
  Command: ``vagrant box``.
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    64
https://www.vagrantup.com/docs/boxes/versioning.html
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    65
  Box Versioning.
1223e5073007 Managing boxes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2236
diff changeset
    66
2238
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    67
Managing plugins
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    68
================
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    69
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    70
https://www.vagrantup.com/docs/cli/plugin.html
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    71
  Command: ``vagrant plugin``.
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    72
https://github.com/hashicorp/vagrant/wiki/Available-Vagrant-Plugins
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    73
  List of vagrant plugins.
a0d98c23cd6b Managing plugins.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2237
diff changeset
    74
2259
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
    75
Debugging Vagrant
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
    76
=================
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
    77
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
    78
Add environment variavle::
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
    79
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
    80
  VAGRANT_LOG=warn vagrant ssh
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
    81
  VAGRANT_LOG=info vagrant ssh
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
    82
  VAGRANT_LOG=debug vagrant ssh
584447bfdc99 Debugging Vagrant.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2238
diff changeset
    83
2271
589a1f5f6cbd Added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2259
diff changeset
    84
https://www.vagrantup.com/docs/other/environmental-variables.html
589a1f5f6cbd Added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2259
diff changeset
    85
  Environmental Variables. ``VAGRANT_LOG``.
589a1f5f6cbd Added links.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2259
diff changeset
    86
2201
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
    87
Running individual provisioning scripts
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
    88
=======================================
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
    89
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
    90
You may give name to provisioning script::
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
    91
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
    92
  Vagrant.configure("2") do |config|
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
    93
    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
    94
      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
    95
      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
    96
    end
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
    97
    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
    98
      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
    99
      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
   100
    end
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   101
    ...
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   102
  end
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   103
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   104
and apply them individually::
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   105
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   106
  vagrant provision --provision-with user_ssh
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   107
  vagrant provision --provision-with root_ssh
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   108
  vagrant provision --provision-with user_ssh,root_ssh
af2d2e117b4e Running individual provisioning scripts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2197
diff changeset
   109
2236
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   110
Working with Alpine Linux
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   111
=========================
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   112
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   113
Install plugin::
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   114
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   115
  $ vagrant plugin install vagrant-alpine
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   116
  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
   117
  Installed the plugin 'vagrant-alpine (0.3.0)'!
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   118
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   119
Create Vagrantfile::
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   120
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   121
  $ vagrant init maier/alpine-3.6-x86_64
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   122
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   123
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
   124
  AlpineLinux v3.6.2 with VirtualBoxGuestAdditions
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   125
https://app.vagrantup.com/maier
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   126
  maier boxes.
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   127
https://github.com/maier/vagrant-alpine
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   128
  Home page of ``vagrant-alpine`` plugin.
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   129
https://app.vagrantup.com/generic/boxes/alpine36
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   130
  Generic box.
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   131
https://app.vagrantup.com/generic/boxes
15e9cc9e054f Working with Alpine Linux.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2201
diff changeset
   132
  Generic boxes.