Статьи

Как создать и поделиться базовой коробкой Vagrant

Интересные инструменты появляются каждый день года, помогая разработчикам работать быстрее, фокусируя их на реальных бизнес-ценностях проекта.

Одним из таких инструментов является Vagrant, который становится одним из самых сильных помощников для разработчика, стандартизируя способы создания и управления средами разработки.

В этой статье вы узнаете, как создать свой собственный базовый блок Vagrant на основе Ubuntu 14.04 LTS, снабдить его любимыми приложениями и поделиться им со всеми остальными, используя Vagrant Cloud.

Создание виртуальной машины

Примечание: для приведенных ниже примеров на вашем локальном компьютере должна быть установлена ​​хотя бы версия Vagrant 1.5.

Чтобы создать виртуальную машину, вам нужен поставщик виртуализации. Хотя Vagrant не различает, какого поставщика использовать, в следующих примерах мы будем использовать VirtualBox .

Вам необходимо установить VirtualBox перед созданием виртуальной машины.

Затем перейдите на страницу загрузки Ubuntu и возьмите Ubuntu 14.04 LTS ISO.

Download Ubuntu 14.04 LTS

О версии LTS

Новая версия Ubuntu выпускается каждые шесть месяцев, и поддержка каждой версии ограничена.

LTS означает долгосрочную поддержку, и она предоставляется определенному подмножеству версий Ubuntu. Срок службы LTS составляет пять лет. Если вы установите версию LTS сегодня, вы будете получать обновления до пяти лет.

Для веб-разработки всегда лучше использовать Ubuntu с тегом LTS, и хорошая новость заключается в том, что Ubuntu 14.04 LTS был выпущен 17 апреля 2014 года, поэтому поддержка длится до 2019 года.


Установка Ubuntu

После завершения загрузки файла ISO запустите VirtualBox и нажмите «Создать», чтобы создать новую виртуальную машину, затем выберите Linux в качестве типа, Ubuntu (64-разрядная) в качестве версии и присвойте своей виртуальной машине имя.

Download Ubuntu 14.04 LTS

Нажмите «Продолжить», установите размер памяти 1024 МБ или выше, если вы считаете, что на виртуальной машине будут выполняться задачи с интенсивным использованием памяти.

На следующей панели выберите Создать виртуальный жесткий диск сейчас, затем выберите VMDK (диск виртуальной машины) .

В области « Хранилище на физическом жестком диске» выберите « Динамически выделенный» и установите минимум 8 ГБ. Нажмите продолжить, и ваша виртуальная машина почти завершена.

Вам необходимо вставить загруженный ISO-файл Ubuntu 14.04 LTS в качестве виртуального компакт-диска, чтобы при запуске виртуальной машины была установлена ​​операционная система. Это похоже на то, как вы вставляете загрузочный CD в CD-ROM.

Выберите виртуальную машину из списка, нажмите « Настройки» и перейдите на вкладку « Хранилище ». На контроллере: IDE щелкните маленький значок компакт-диска (выделен красным на изображении ниже), затем нажмите « Выбрать диск» и выберите файл Ubuntu ISO.

Download Ubuntu 14.04 LTS

Теперь мы готовы запустить виртуальную машину и установить Ubuntu в качестве гостевой ОС. В процессе установки есть еще пара шагов, таких как выбор языка, страны и т. Д. Я затрону более важные из них ниже.

  • Когда будет предложено ввести имя хоста, введите vagrant
  • Для имени пользователя и пароля также введите vagrant
  • Зашифровать ваш домашний каталог? Выберите Нет
  • На панели часовых поясов выберите UTC или предпочитаемый вами часовой пояс.
  • Метод создания разделов: Управляемый — используйте весь диск и настройте LVM
  • Когда будет предложено установить программное обеспечение, выберите сервер OpenSSH , остальные, такие как LAMP или MySQL, будут установлены позже.
  • Выберите, чтобы установить загрузчик GRUB в основную загрузочную запись.

Это должно подвести итог установки, после чего вам будет предложено войти в систему. Используйте для этого vagrant пользователя и пароль.

Download Ubuntu 14.04 LTS

Затем перейдите к пользователю root, набрав:

sudo su -

Обратите внимание, что это не очень безопасная установка, и защита Ubuntu выходит за рамки этой статьи. Для машины для разработки безопасность в любом случае не имеет первостепенного значения.

Используя пользователя root , обновитесь до последних пакетов, введя следующие команды

 apt-get update
apt-get upgrade

Настройка виртуальной машины для Vagrant

Vagrant требуется пара специфических опций, чтобы хорошо играть с виртуальной машиной.

Выполнение команды без пароля

Все операции, выполняемые Vagrant, будут использовать пользователя vagrant, и все команды sudo должны выполняться без запроса пароля при каждом запуске.

Для этого нам нужно запустить команду visudo, чтобы настроить sudo без пароля для пользователя. Просто введите:

 visudo

Добавьте следующую строку в конец файла и сохраните его:

 vagrant ALL=(ALL) NOPASSWD:ALL

Root пароль

Общим правилом при создании ящиков Vagrant является установка пароля root для хорошо известного пароля. Vagrant использует vagrant в качестве пароля. Чтобы настроить это, введите следующую команду в качестве пользователя root и введите пароль при появлении запроса:

 passwd

Конфигурация SSH

Чтобы Vagrant мог использовать SSH на виртуальной машине, он использует аутентификацию с открытым ключом. Нам нужно настроить это для нашего бродячего пользователя.

Все еще вошли в систему как пользователь root и перейдите в домашний каталог пользователя vagrant :

 cd /home/vagrant

Создайте следующую папку:

 mkdir .ssh

Vagrant использует небезопасную пару ключей для подключения к виртуальной машине, которую вы можете скачать здесь: github.com/mitchellh/vagrant/blob/master/keys/vagrant.pub

Просто запустите следующую команду, чтобы получить ее напрямую:

 wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O .ssh/authorized_keys

OpenSSH очень строго относится к разрешению для этой папки и файла, поэтому давайте изменим его на правильное:

 chmod 700 .ssh
chmod 600 .ssh/authorized_keys
chown -R vagrant:vagrant .ssh

Если все было сделано правильно, то так должна выглядеть структура папок / home / vagrant и /home/vagrant/.ssh, включая разрешения.

Download Ubuntu 14.04 LTS

Необязательный шаг: чтобы ускорить SSH-соединения с виртуальной машиной, нам нужно также изменить конфигурацию SSH-сервера:

 cd /etc/ssh
pico sshd_config

Добавьте эту строку в конец файла и сохраните ее:

 UseDNS no

Затем перезапустите сервер SSH:

 service ssh restart

Наконец, мы можем выйти из системы как пользователь root, набрав:

 exit

Установка гостевых дополнений VirtualBox

Чтобы Vagrant правильно делился папками между гостевой и хостовой операционными системами, необходимо установить гостевые дополнения VirtualBox .

Предварительным условием для установки гостевых дополнений в системах Linux является пара пакетов, таких как заголовки Linux и инструменты разработчика. Давайте сначала установим их, набрав следующее:

 sudo apt-get install linux-headers-generic build-essential dkms -y

Далее нам нужно убедиться, что образ гостевых дополнений вставлен в виртуальный CD-ROM виртуальной машины. Чтобы сосредоточиться на окне виртуальной машины, выберите « Устройства» -> «Вставить образ гостевого дополнения» .

Download Ubuntu 14.04 LTS

Вы можете проверить, вставлен ли образ в VirtualBox, выбрав в списке работающую виртуальную машину и нажав Настройки -> Хранилище . Вы должны увидеть VBoxGuestAdditions.iso в разделе « Контроллер: IDE» .

Download Ubuntu 14.04 LTS

Затем нам нужно смонтировать компакт-диск и запустить скрипт установки самой оболочки, выполнив следующие команды:

 sudo mount /dev/cdrom /media/cdrom
cd /media/cdrom
sudo ./VBoxLinuxAdditions.run

После этой операции рекомендуется перезапустить виртуальную машину, чтобы новые настройки вступили в силу:

 sudo reboot

Создание базового пакета

Теперь, когда мы создали базовую виртуальную машину, нам нужно создать реальную базовую коробку Vagrant. Просто введите следующую команду в терминал фактической хост-машины (не в командной строке вашей виртуальной машины):

 vagrant package --base <virtualmachine name>

<имя виртуальной машины> — это имя виртуальной машины, которое вы указали в настройках VirtualBox. Если вы не знаете, как его зовут, вы можете набрать следующую команду, чтобы узнать:

 VBoxManage list vms

В нашем случае он называется Ubuntu 14.04 x64 LTS Vagrant Base Box , он также содержит пробелы, поэтому убедитесь, что вы пишете его между кавычками, например так:

 vagrant package --base "Ubuntu 14.04 x64 LTS Vagrant Base Box"

Этот процесс приведет к созданию файла package.box, который является архивом виртуальной машины и файлов метаданных Vagrant.

Совместное использование базовой коробки

Vagrant недавно создал сервис под названием Vagrant Cloud , где каждый может создавать и делиться ящиками Vagrant для других пользователей.

Чтобы поделиться нашим базовым блоком на Vagrant Cloud, сначала нужно зарегистрироваться. Когда вы войдете в систему, вы увидите панель инструментов ниже. Нажмите на ссылку « Создать ящик» в правом верхнем углу.

Vagrant Cloud Dashboard

Нам нужно указать имя и краткое описание для нашей коробки. Вы можете ввести что угодно здесь, я добавил ubuntu-trusty64 для нашей коробки. Trusty — это кодовое название для разработки Ubuntu 14.04 LTS.

Vagrant Cloud New Box

Далее вам нужно создать версию для коробки, давайте добавим 1.0.0 для начального номера версии и нажмите « Создать версию» .

Vagrant Cloud Create Version

После того, как вы закончили с созданием коробки и версии, нам нужно добавить провайдера. Нажмите Создать нового поставщика и введите virtualbox, затем нажмите кнопку URL и введите URL, где находится файл package.box .

Примечание. Только платные премиум-пользователи могут загружать базовый блок непосредственно в Vagrant Cloud. Для получения дополнительной информации взгляните на страницу с ценами .

После того, как вы добавили провайдера, нажмите кнопку « Отпустить сейчас» , чтобы сделать этот ящик доступным в Vagrant Cloud.

Блок Vagrant, используемый в качестве примера в этой статье, доступен по адресу https://vagrantcloud.com/primalskill/ubuntu-trusty64 . Это идеальный базовый блок, который вы можете использовать в своей среде разработки, но имейте в виду, что он никоим образом не безопасен, используйте его только локально.

Вывод

Вы узнали, как создать виртуальную машину VirtualBox, установить Ubuntu в качестве гостевой ОС и как упаковать эту виртуальную машину, чтобы использовать ее с Vagrant.

Наконец, мы показали вам, как распространять базовый блок Vagrant в Vagrant Cloud и публиковать его в Интернете.

В продолжение этой статьи вы узнаете, как использовать этот базовый блок Vagrant для установки предпочитаемого вами программного обеспечения и настройки среды разработки с использованием комбинации сценариев оболочки и других инструментов обеспечения.