Интересные инструменты появляются каждый день года, помогая разработчикам работать быстрее, фокусируя их на реальных бизнес-ценностях проекта.
Одним из таких инструментов является Vagrant, который становится одним из самых сильных помощников для разработчика, стандартизируя способы создания и управления средами разработки.
В этой статье вы узнаете, как создать свой собственный базовый блок Vagrant на основе Ubuntu 14.04 LTS, снабдить его любимыми приложениями и поделиться им со всеми остальными, используя Vagrant Cloud.
Создание виртуальной машины
Примечание: для приведенных ниже примеров на вашем локальном компьютере должна быть установлена хотя бы версия Vagrant 1.5.
Чтобы создать виртуальную машину, вам нужен поставщик виртуализации. Хотя Vagrant не различает, какого поставщика использовать, в следующих примерах мы будем использовать VirtualBox .
Вам необходимо установить VirtualBox перед созданием виртуальной машины.
Затем перейдите на страницу загрузки Ubuntu и возьмите Ubuntu 14.04 LTS ISO.
О версии LTS
Новая версия Ubuntu выпускается каждые шесть месяцев, и поддержка каждой версии ограничена.
LTS означает долгосрочную поддержку, и она предоставляется определенному подмножеству версий Ubuntu. Срок службы LTS составляет пять лет. Если вы установите версию LTS сегодня, вы будете получать обновления до пяти лет.
Для веб-разработки всегда лучше использовать Ubuntu с тегом LTS, и хорошая новость заключается в том, что Ubuntu 14.04 LTS был выпущен 17 апреля 2014 года, поэтому поддержка длится до 2019 года.
Установка Ubuntu
После завершения загрузки файла ISO запустите VirtualBox и нажмите «Создать», чтобы создать новую виртуальную машину, затем выберите Linux в качестве типа, Ubuntu (64-разрядная) в качестве версии и присвойте своей виртуальной машине имя.
Нажмите «Продолжить», установите размер памяти 1024 МБ или выше, если вы считаете, что на виртуальной машине будут выполняться задачи с интенсивным использованием памяти.
На следующей панели выберите Создать виртуальный жесткий диск сейчас, затем выберите VMDK (диск виртуальной машины) .
В области « Хранилище на физическом жестком диске» выберите « Динамически выделенный» и установите минимум 8 ГБ. Нажмите продолжить, и ваша виртуальная машина почти завершена.
Вам необходимо вставить загруженный ISO-файл Ubuntu 14.04 LTS в качестве виртуального компакт-диска, чтобы при запуске виртуальной машины была установлена операционная система. Это похоже на то, как вы вставляете загрузочный CD в CD-ROM.
Выберите виртуальную машину из списка, нажмите « Настройки» и перейдите на вкладку « Хранилище ». На контроллере: IDE щелкните маленький значок компакт-диска (выделен красным на изображении ниже), затем нажмите « Выбрать диск» и выберите файл Ubuntu ISO.
Теперь мы готовы запустить виртуальную машину и установить Ubuntu в качестве гостевой ОС. В процессе установки есть еще пара шагов, таких как выбор языка, страны и т. Д. Я затрону более важные из них ниже.
- Когда будет предложено ввести имя хоста, введите vagrant
- Для имени пользователя и пароля также введите vagrant
- Зашифровать ваш домашний каталог? Выберите Нет
- На панели часовых поясов выберите UTC или предпочитаемый вами часовой пояс.
- Метод создания разделов: Управляемый — используйте весь диск и настройте LVM
- Когда будет предложено установить программное обеспечение, выберите сервер OpenSSH , остальные, такие как LAMP или MySQL, будут установлены позже.
- Выберите, чтобы установить загрузчик GRUB в основную загрузочную запись.
Это должно подвести итог установки, после чего вам будет предложено войти в систему. Используйте для этого vagrant пользователя и пароль.
Затем перейдите к пользователю 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, включая разрешения.
Необязательный шаг: чтобы ускорить 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 виртуальной машины. Чтобы сосредоточиться на окне виртуальной машины, выберите « Устройства» -> «Вставить образ гостевого дополнения» .
Вы можете проверить, вставлен ли образ в VirtualBox, выбрав в списке работающую виртуальную машину и нажав Настройки -> Хранилище . Вы должны увидеть VBoxGuestAdditions.iso в разделе « Контроллер: IDE» .
Затем нам нужно смонтировать компакт-диск и запустить скрипт установки самой оболочки, выполнив следующие команды:
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, сначала нужно зарегистрироваться. Когда вы войдете в систему, вы увидите панель инструментов ниже. Нажмите на ссылку « Создать ящик» в правом верхнем углу.
Нам нужно указать имя и краткое описание для нашей коробки. Вы можете ввести что угодно здесь, я добавил ubuntu-trusty64 для нашей коробки. Trusty — это кодовое название для разработки Ubuntu 14.04 LTS.
Далее вам нужно создать версию для коробки, давайте добавим 1.0.0 для начального номера версии и нажмите « Создать версию» .
После того, как вы закончили с созданием коробки и версии, нам нужно добавить провайдера. Нажмите Создать нового поставщика и введите virtualbox, затем нажмите кнопку URL и введите URL, где находится файл package.box .
Примечание. Только платные премиум-пользователи могут загружать базовый блок непосредственно в Vagrant Cloud. Для получения дополнительной информации взгляните на страницу с ценами .
После того, как вы добавили провайдера, нажмите кнопку « Отпустить сейчас» , чтобы сделать этот ящик доступным в Vagrant Cloud.
Блок Vagrant, используемый в качестве примера в этой статье, доступен по адресу https://vagrantcloud.com/primalskill/ubuntu-trusty64 . Это идеальный базовый блок, который вы можете использовать в своей среде разработки, но имейте в виду, что он никоим образом не безопасен, используйте его только локально.
Вывод
Вы узнали, как создать виртуальную машину VirtualBox, установить Ubuntu в качестве гостевой ОС и как упаковать эту виртуальную машину, чтобы использовать ее с Vagrant.
Наконец, мы показали вам, как распространять базовый блок Vagrant в Vagrant Cloud и публиковать его в Интернете.
В продолжение этой статьи вы узнаете, как использовать этот базовый блок Vagrant для установки предпочитаемого вами программного обеспечения и настройки среды разработки с использованием комбинации сценариев оболочки и других инструментов обеспечения.