Vagrant — практика для новичков

Автор: Aport Понедельник, Февраль 2nd, 2015 Нет комментариев

Рубрика: MySQL

Сразу хочу обозначить термин VM — виртуальная машина, это (guest-машина).

1. Первым делом нам понадобится уже установленная ось, можно зарегистрироваться на сайте vagrantcloud.com и затем в меню сайта выбрав Discover найти нужный BOX. Но, я не доверяю чужим BOX-ам и буду делать свой. Поэтому, давайте скачаем ISO например дистрибутива debian. Теперь нам нужнен VirtualBox (если у Вас его нет, то установите) в котором мы подключаем скачанный Debian.ISO и приступаем к установке.

2. У Вас запустился процесс установки Debian, где Вас попроят ввести различные данные, и это ключевой момент, т.к. разработчики Vagrant-a ввели соглашение:

  • Hostname: vagrant-[os-name], например: vagrant-debian-wheezy-86
  • Domain: vagrantup.com
  • Root Password: vagrant
  • Main account login: vagrant
  • Main account password: vagrant

Подготавливаем машину

а) нужно на VM установить SSH-сервер:

sudo apt-get install openssh-server

иначе Vagrant ругнется так:

[default] Failed to connect to VM!
Failed to connect to VM via SSH. Please verify the VM successfully booted
by looking at the VirtualBox GUI.

б) Оказывается, не смотря на то, что мы создали пользователя vagrant и всем пользователям назначили пароль vagrant, НУЖНО использовать SSH-ключи, несомненно это глупость, но что поделать. В комьюнити Vagranta по этому поводу существует соглашение, что Vagrant использует для подключения к VM приватный ключ https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant А мы должны в VM пользователю vagrant добавить публичный ключ https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub в его ~/.ssh/authorized_keys. Если этого не сделать, то Vagrant ругнется так:

SSH authentication failed! This is typically caused by the public/private
keypair for the SSH user not being properly set on the guest VM. Please
verify that the guest VM is setup with the proper public key, and that
the private key path for Vagrant is setup properly as well.

в) (возможно не обязательно) Теперь приступим к установке virtual box guest additions. Для этого нужно установить какие-то пакеты загловков:

sudo apt-get -y install linux-headers-$(uname -r) build-essential dkms

выключите VM и в окне VirtualBox выберите “Devices” и “Install Guest Additions”. Это приатачит “Guest Additions” к вашему VM-сидирому. Теперь осталось включить VM, примонтировать сидиром и установить  “Guest Additions”.

sudo apt-get -y install linux-headers-$(uname -r) build-essential
mkdir /media/cdrom
mount /dev/cdrom /media/cdrom
sudo sh /media/cdrom/VBoxLinuxAdditions.run

г) (возможно не обязательно) зачем-то делаем группу админ, пользователям которой как я понял разрешаем входить по SSH без пароля:

group add admin

adduser vagrant admin

Sudo не установлен по умолчанию в Debian, поэтому в моем случае придется его установить:

aptitude install sudo

и запускаю программу правки файла /etc/sudoesr

visudo

открывается стандартный текстовый редактор (в моем случае nano), и в самом конце файла нужно добавить:

Defaults env_keep="SSH_AUTH_SOCK"
%admin ALL=NOPASSWD: ALL
Defaults:vagrant !requiretty

3. При создании VM (виртуальной машины) я дал ей название debian-wheezy-86, соответственно у меня в директории где установлен VirtualBox, создалась директория debian-wheezy-86, давайте зайдем туда:

cd /home/programs/VirtualBox

4. Установите Vagrant

sudo apt-get install vagrant

5. Можно приступать к созданию Vagrant BOX-а:

vagrant package —base debian-wheezy-86

и через минутку получаем файл package.box

6. Теперь нужно сообщить vagrant-у про этот box:

vagrant box add debian-wheezy-86 package.box

синтаксис: vagrant box add НАЗВАНИЕ ФАЙЛ.box 

7. Можете удалить директорию с установленным Debian:

rm -rf /home/programs/VirtualBox/debian-wheezy-86

8. Создадим и настроим Vagrant-проект

mkdir vagrant_getting_started
cd vagrant_getting_started
vagrant init

8. Пропишем нужные настройки в файл Vagrantfile

# название виртуальной машины, которую собираемся использовать
config.vm.box = «debian-wheezy-86»

# чтобы можно было отслеживать загрузку виртуальной машины
config.vm.boot_mode = :gui

# по данному IP можно будет добраться до виртуальной машины
config.vm.network :hostonly, «11.11.11.11″

# проброс портов (по порту 8080 из host-машины мы попадаем на 80 порт guest-машины)
config.vm.forward_port 80, 8080

# Расшариваем папку. Порядок аргументов: идентификатор, директория на guest машине, директория на host машине
config.vm.share_folder «myShareFolder», «/var/www», «./»

9. Запускаем машину:

vagrant up

и выглядит это так:

$ vagrant up
[default] VM already created. Booting if it’s not already running…
[default] Clearing any previously set forwarded ports…
[default] Forwarding ports…
[default] — 22 => 2222 (adapter 1)
[default] — 80 => 8080 (adapter 1)
[default] Creating shared folders metadata…
[default] Clearing any previously set network interfaces…
[default] Preparing network interfaces based on configuration…
[default] Booting VM…
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Configuring and enabling network interfaces…
[default] Mounting shared folders…
[default] — v-root: /vagrant
[default] — myShareFolder: /var/www
$

Удачки.

 

Источник: yapro.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты