Difference between revisions of "Vagrant"

From GRASS-Wiki
Jump to: navigation, search
m (Usage)
m (Notes)
 
(17 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This page shows how to use {{wikipedia|Vagrant_(software)}} together with GRASS GIS. The GRASS source code contains customized {{src|Vagrantfile}}. This highly simplifies the vagrant usage.
+
{{toc|right}}
 +
This page shows how to use {{wikipedia|Vagrant_(software)|Vagrant}} together with GRASS GIS. The GRASS source code contains customized {{src|Vagrantfile}}. This highly simplifies the vagrant usage.
  
Dependecies:
+
Dependencies:
  
 +
# Debian/Ubuntu
 
  apt-get install vagrant virtualbox
 
  apt-get install vagrant virtualbox
 +
 +
# Fedora
 +
dnf install vagrant libvirt VirtualBox
  
 
''Note:'' '$' shows commands to be entered from local machine, '#' from vagrant's virtual machine
 
''Note:'' '$' shows commands to be entered from local machine, '#' from vagrant's virtual machine
Line 16: Line 21:
 
  $ vagrant up
 
  $ vagrant up
  
The command creates new vagrant virtual machines, downloads all dependecies, and compiles GRASS on this machine. You can connect to this machine by:
+
The command creates new vagrant virtual machines, downloads all dependencies, and compiles GRASS on this machine. You can connect to this machine by:
  
 
  $ vagrant ssh
 
  $ vagrant ssh
Line 24: Line 29:
 
== Usage ==
 
== Usage ==
  
The common usage may be:
+
Note: it's good idea to store ssh configuration for virtual machine to the file which we can use for scp and other similar commands:
  
1) get data to your virtual machine, first we create empty directory for grassdata on virtual machine
+
  $ vagrant ssh-config > ssh-config
  
$ vagrant ssh -c "mkdir grassdata"
+
1) First, we need to get our GRASS data to the virtual machine, there are several options:
  
You have several options:
+
:1a) link your grassdata from local to virtual machine:
  
1a) link your grassdata from local to virtual machine:
+
:Uncomment lines below in the Vagrantfile and define 'grassdata_dir' pointing to your GRASS data directory on local machine:
  
$ vagrant ssh-config > ssh-config
+
    grassdata_dir = "/opt/grassdata"                                                                                                                                                         
$ sshfs -F ssh-config vagrant@grass-gis-vagrant:~/grassdata /opt/grassdata
+
    host.vm.synced_folder grassdata_dir, "/home/vagrant/grassdata
  
1b) copy your grassdata from local to virtual machine:
+
:Then reload your virtual machine to reflect the synced GRASS data directory:
  
$ vagrant ssh-config > ssh-config
+
  $ vagrant reload
$ scp -r -F ssh-config /opt/grassdata/gismentors grass-gis-vagrant:grassdata
 
  
1c) download sample grassdata from Internet
+
:1b) copy your grassdata from local to virtual machine:
 +
 
 +
  $ scp -r -F ssh-config /opt/grassdata grass-gis-vagrant:
 +
 
 +
:1c) download on virtual machine sample grassdata from Internet:
  
 
  $ vagrant ssh
 
  $ vagrant ssh
Line 51: Line 59:
 
2) start GRASS from virtual machine
 
2) start GRASS from virtual machine
  
 +
$ vagrant ssh
 
  # grass71
 
  # grass71
  
Line 58: Line 67:
  
 
== How to update GRASS installation ==
 
== How to update GRASS installation ==
 +
 +
First of all, update GRASS source code from SVN:
 +
 +
$ svn up
  
 
To update your GRASS installation in vagrant (make && make install):
 
To update your GRASS installation in vagrant (make && make install):
  
$ svn up
 
 
  $ vagrant provision
 
  $ vagrant provision
  
If you want to re-compile GRASS from scratch (make distclean && configure && make && make install):
+
If you want to re-compile GRASS from scratch (make distclean && configure && make && make install) you need to destroy your virtual machine and create new one:
 +
 
 +
$ vagrant destroy -f && vagrant up
 +
 
 +
== Notes ==
 +
 
 +
* You can specify different image before creating a new virtual machine in Vagrantfile (default is Ubuntu 14.04 LTS 64bit):
  
  $ svn up
+
  config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
$ vagrant destroy -f
 
$ vagrant up
 

Latest revision as of 10:36, 16 February 2016

This page shows how to use Vagrant together with GRASS GIS. The GRASS source code contains customized Vagrantfile. This highly simplifies the vagrant usage.

Dependencies:

# Debian/Ubuntu
apt-get install vagrant virtualbox

# Fedora
dnf install vagrant libvirt VirtualBox

Note: '$' shows commands to be entered from local machine, '#' from vagrant's virtual machine

First of all we download GRASS source code from SVN:

$ svn checkout https://svn.osgeo.org/grass/grass/trunk grass_trunk_vagrant
$ cd grass_trunk_vagrant

We start new vagrant instance by:

$ vagrant up

The command creates new vagrant virtual machines, downloads all dependencies, and compiles GRASS on this machine. You can connect to this machine by:

$ vagrant ssh

Enjoy!

Usage

Note: it's good idea to store ssh configuration for virtual machine to the file which we can use for scp and other similar commands:

 $ vagrant ssh-config > ssh-config

1) First, we need to get our GRASS data to the virtual machine, there are several options:

1a) link your grassdata from local to virtual machine:
Uncomment lines below in the Vagrantfile and define 'grassdata_dir' pointing to your GRASS data directory on local machine:
   grassdata_dir = "/opt/grassdata"                                                                                                                                                          
   host.vm.synced_folder grassdata_dir, "/home/vagrant/grassdata"  
Then reload your virtual machine to reflect the synced GRASS data directory:
 $ vagrant reload
1b) copy your grassdata from local to virtual machine:
 $ scp -r -F ssh-config /opt/grassdata grass-gis-vagrant:
1c) download on virtual machine sample grassdata from Internet:
$ vagrant ssh
# mkdir grassdata 
# wget https://grass.osgeo.org/sampledata/north_carolina/nc_spm_08_grass7.tar.gz
# tar xzf nc_spm_08_grass7.tar.gz

2) start GRASS from virtual machine

$ vagrant ssh
# grass71

3) To halt running virtual machine type:

$ vagrant halt

How to update GRASS installation

First of all, update GRASS source code from SVN:

$ svn up

To update your GRASS installation in vagrant (make && make install):

$ vagrant provision

If you want to re-compile GRASS from scratch (make distclean && configure && make && make install) you need to destroy your virtual machine and create new one:

$ vagrant destroy -f && vagrant up

Notes

  • You can specify different image before creating a new virtual machine in Vagrantfile (default is Ubuntu 14.04 LTS 64bit):
config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"