Obecnie możliwość szybkiego uruchomienia maszyny wirtualnej na dowolnym urządzeniu jest bardzo ważna nie tylko dla developerów tworzących oprogramowanie i potrzebujących środowisko wirtualne do testów, ale i inżynierów systemowych czy administratorów sieciowych. By ułatwić proces przenoszenia i instalowania maszyn wirtualnych, powstał projekt Vagrant.
Rozpoczęcie pracy z Vagrant zabiera kilka minut. By uruchomić maszynę wirtualną z Ubuntu należy wykonać kilka kroków:
- pobrać Vagrant dla systemu operacyjnego, na którym będzie on instalowany i zainstalować oprogramowanie Vagrant
- w terminalu przejść do katalogu, w którym będą przechowywane pliki dla Vagrant
- uruchomić inicjalizację maszyny z Ubuntu:
bash-3.2$ vagrant init hashicorp/precise64
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
- po wykonaniu polecania w katalogu został utworzony nowy plik Vagrantfile:
bash-3.2$ ls -al
total 8
drwxr-xr-x 3 seba staff 102 8 maj 13:14 .
drwxr-xr-x 13 seba staff 510 8 maj 13:11 ..
-rw-r--r-- 1 seba staff 3031 8 maj 13:14 Vagrantfile
bash-3.2$ less Vagrantfile
- uruchomić nową maszynę wirtualną:
bash-3.2$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'hashicorp/precise64' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box 'hashicorp/precise64'
default: URL: https://atlas.hashicorp.com/hashicorp/precise64
==> default: Adding box 'hashicorp/precise64' (v1.1.0) for provider: virtualbox
default: Downloading: https://atlas.hashicorp.com/hashicorp/boxes/precise64/versions/1.1.0/providers/virtualbox.box
==> default: Successfully added box 'hashicorp/precise64' (v1.1.0) for 'virtualbox'!
==> default: Importing base box 'hashicorp/precise64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'hashicorp/precise64' is up to date...
==> default: Setting the name of the VM: vagrant_default_1462706169051_75382
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Remote connection disconnect. Retrying...
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 4.2.0
default: VirtualBox Version: 5.0
==> default: Mounting shared folders...
default: /vagrant => /Volumes/VM/vagrant
- zalogować się do maszyny przy użyciu SSH:
bash-3.2$ vagrant ssh
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)
* Documentation: https://help.ubuntu.com/
New release '14.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Welcome to your Vagrant-built virtual machine.
Last login: Fri Sep 14 06:23:18 2012 from 10.0.2.2
vagrant@precise64:~$
vagrant@precise64:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/precise64-root 79G 2.2G 73G 3% /
udev 174M 4.0K 174M 1% /dev
tmpfs 74M 280K 73M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 183M 0 183M 0% /run/shm
/dev/sda1 228M 25M 192M 12% /boot
vagrant 245G 21G 224G 9% /vagrant
vagrant@precise64:~$ uname -a
Linux precise64 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
- utworzyć w zasobie współdzielonym plik tymczasowy, by sprawdzić czy działa możliwość współdzielenia zasobów przez główny system operacyjny i maszynę wirtualną:
bash-3.2$ pwd
/Volumes/VM/vagrant
bash-3.2$ vagrant ssh
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)
* Documentation: https://help.ubuntu.com/
New release '14.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Welcome to your Vagrant-built virtual machine.
Last login: Fri Sep 14 06:23:18 2012 from 10.0.2.2
vagrant@precise64:~$ cd /vagrant/
vagrant@precise64:/vagrant$ ls -al
total 8
drwxr-xr-x 1 vagrant vagrant 136 May 8 11:14 .
drwxr-xr-x 24 root root 4096 May 8 11:16 ..
drwxr-xr-x 1 vagrant vagrant 102 May 8 11:14 .vagrant
-rw-r--r-- 1 vagrant vagrant 3031 May 8 11:14 Vagrantfile
vagrant@precise64:/vagrant$ touch plik_utworzony_na_maszynie_wirtualnej.txt
vagrant@precise64:/vagrant$ ls -la
total 8
drwxr-xr-x 1 vagrant vagrant 170 May 8 11:19 .
drwxr-xr-x 24 root root 4096 May 8 11:16 ..
-rw-r--r-- 1 vagrant vagrant 0 May 8 11:19 plik_utworzony_na_maszynie_wirtualnej.txt
drwxr-xr-x 1 vagrant vagrant 102 May 8 11:14 .vagrant
-rw-r--r-- 1 vagrant vagrant 3031 May 8 11:14 Vagrantfile
vagrant@precise64:/vagrant$ exit
logout
Connection to 127.0.0.1 closed.
bash-3.2$ ls -al
total 8
drwxr-xr-x 5 seba staff 170 8 maj 13:19 .
drwxr-xr-x 13 seba staff 510 8 maj 13:11 ..
drwxr-xr-x 3 seba staff 102 8 maj 13:14 .vagrant
-rw-r--r-- 1 seba staff 3031 8 maj 13:14 Vagrantfile
-rw-r--r-- 1 seba staff 0 8 maj 13:19 plik_utworzony_na_maszynie_wirtualnej.txt