Системное администрирование и мониторинг Linux/Windows серверов и видео CDN
Статьи по настройке и администрированию Windows/Linux систем
Vagrant. Установка и первый запуск
В большинстве предыдущих статье писалось о установке и настройке различных сервисов под Linux дистрибутивами. Шла речь о выделенных серверах и физических площадках, но когда нужно проводить тестирование того или иного сервиса, кластера, технологии и т.п. – нужно использовать виртуализацию. Зачастую, пользователи Windows используют VirtualBox, VMware и чтобы развернуть новую Linux площадку нужно:
- Скачать нужный дистрибутив
- Создать виртуальную машину на его основе со всеми обновлениями(темплейт)
- Сделать один или пару клонов темплейта
- Запустить каждый из клонов и настроить сеть, hosts-файл, hostname, т.п.
- Установить и настроить нужный софт
- Провести испытания
- Удалить площадку по завершению тестов, и т.п.
Все эти действия поначалу и я делал руками. И это занимало очень много времени. К примеру, для настройки mysql кластера из 6-ти машин нужно было создать 6 клонов (пункт 3), зайти в каждый из них и настроить статический IP (все писать вручную, так как буфер не работает), поменять хостнейм, обновить hosts-файл и т.п.
В данной статье я хочу написать о такой полезной штуке, как Vagrant и о том, как она мне помогла автоматизировать процесс создания тестовой площадки любых масштабов.
Пролог
В роли хостовой машины у нас выступает Windows 8.1.
В роли эмулятора виртуальных машин – VirtualBox.
В роли гостевой ОС – Ubuntu 12.04.
Vagrant – это утилита, которая позволяет создать, поднять и настроить виртуальную площадку любых размеров в течении нескольких минут. Она работает с такими известными провайдерами (эмуляторами) как VirtualBox, VMware, AWC и имеет поддержку custom-ных провайдеров.
Для работы с VirtualBox виртуальными машинами vagrant использует VBoxManage. Это интерфейс командной строки, который позволяет полностью контролировать Vbox из консоли (детали и список всех опций и действий можно почитать здесь ).
1. Установка
Для начала установим vagrant под Windows 8.1. Все что нужно сделать, это перейти на сайт, скачать последний бинарник под Windows и установить.
Установка стандартная, только нужно жать Далее.
После установки, нужно проверить или vagrant попал в переменную пути (Path), чтобы нам не пришлось полностью прописывать путь. Для этого, правой кнопкой мишки на Мой компьютер —> Свойства и выбираем Дополнительные параметры системы. Там есть пункт Дополнительно, где нужно выбрать Переменные среды. И находим переменную Path, где должна быть строка с путем к Vagrant bin. Смотрите картинку ниже (у меня интерфейс на английском, так что смотрите по расположению вкладок и кнопок).
Переменная есть, теперь можно проверить работоспособность.
2. Первый запуск
Для vagrant удобно использовать powershell – запускаем. Теперь создаем папку в которой будем инициализировать окружение и побырику поднимем дефолтный образ Ubuntu 12.04 (система сама скачает нужный образ из готового репозитория).
Вот и все. У нас поднялась новая виртуальная машина к которой мы можем подключиться по SSH используя адрес 127.0.0.1 и порт 2222. Для подключения можно использовать Putty, SecureCRT или любой другой клиент. Я пользуюсь SecureCRT, в связи с чем подключение выглядит следующим образом.
После подключения мы попадем в консоль к тестовой Убунте. Идем далее.
В поточной директории у нас создался файл с настройками виртуальной среды – Vagrantfile.
Используя этот файл vagrant настраивает и создает виртуальные машины различных провайдеров (эмуляторов виртуальной среды). Изначально, файл имеет только три полезные строки
То есть, для создания виртуальных машин будет использоваться «hashicorp/precise32» box, который мы скачали. Детально этот файл будет рассмотрен в следующей статье.
Пока остановим и удалим новосозданную виртуальную машину.
Это только начало. На данном этапе, каждый раз, когда мы хотим создать новую виртуальную машину – мы будем создавать ее из скаченного из vagrant сайта образа. Нам же нужно создать свой собственный образ, настроить его под себя как темплейт и на основе его создавать тестовое окружение. О чем и пойдет речь в следующей статье.
Как установить и использовать Vagrant в Linux и Windows
Для чего нужна Vagrant
Vagrant — это программа-ассистент по сборке и управлению виртуальными машинами. С её помощью можно автоматизировать процесс развёртывания кастомных (с пользовательскими настройками) виртуальных машин.
Суть работы Vagrant в том, что она с помощью написанных специально для этой программы конфигурационных файлов, собирает виртуальные машины, в которых уже применены определённые настройки. Авторы некоторых систем распространяют их в виде такого конфигурационного файла Vagrant и получив этот файл мы можем собрать на своём компьютере эту ОС. Мы можем использовать конфигурации по умолчанию или вносить в них изменения. В результате будут получаться ОС от автора, но с определённым тюнингом.
Как установить Vagrant в Linux
Поскольку Vagrant это всего лишь надстройка над VirtualBox, то начать нужно с установки VirtualBox.
Теперь, когда VirtualBox уже есть в вашей системе, то поищите vagrant в стандартных репозиториях вашей системы — скорее всего, он там уже есть.
Для установки в Ubuntu, Linux Mint, Debian, Kali Linux и их производные выполните команду
Для установки в Arch Linux, BlackArch и их производные выполните команду:
Как установить Vagrant в Windows
Для Vagrant в Windows также имеется графический установщик, скачайте его с официального сайта и выполните установку.
В качестве папки установки Vagrant выбирает не C:\Program Files\, а другую папку, это позволяет программе проще работать с разрешениями и правами доступа:
После установки требуется перезагрузка:
После перезагрузки откройте командную строку Windows. Это можно сделать нажав Win+x, в открывшемся окне выберите Windows PowerShell (администратор). В открывшемся окне для перехода из PowerShell в командную строку введите
В этой консоли выполните команду:
Должна появиться стандартная справка по пользованию программой:
Если возникнет ошибка, либо просто для профилактики, выполните обновление плагинов:
Установка плагина vagrant-vbguest
vagrant-vbguest — это плагин Vagrant, который автоматически устанавливает в гостевые системы VirtualBox Guest Additions — гостевые дополнения VirtualBox.
Независимо от операционной системы, плагин должен устанавливаться одинаково следующей командой:
Если в Windows у вас проблемы с установкой этого плагина, то попробуйте следующую команду:
Также в Windows файервол может запросить разрешение для выхода в сеть программой:
Плагин vagrant-vbguest запускается и используется по умолчанию всеми виртуальными машинами. Он запускается автоматически сразу после старта коробки (так в Vagrant называют виртуальные машины). Получается что он работает каждый раз при загрузке коробки, то есть при использовании команд vagrant up или vagrant reload. Он не будет работать при команде vagrant resume (или vagrant up на приостановленной коробке) чтобы не тратить время при возобновлении работы виртуальной машины.
Чтобы отключить этот плагин, в настройках виртуальных машин установите vbguest.auto_update на false.
Как пользоваться Vagrant
Vagrant собирает виртуальные машины исходя из конфигурационного файла Vagrantfile. Вы можете создавать и использовать для быстрого развёртывания свои варианты, либо устанавливать различные операционные системы подготовленные другими. Большой сборник содержится в Vagrant Cloud, там вы можете выбрать заинтересовавшую вас коробку и собрать, а затем запустить с помощью команды вида:
Например, offensive-security подготовили kali-linux-light,
тогда установка и запуск выполняются командами:
Примеры других популярных систем:
Для разных систем выделите отдельные папки, то есть запускайте приведённые выше команды в разных папках.
Vagrant умеет не только скачивать и запускать коробки, он также умеет запускать внутри них пользовательские скрипты — поэтому некоторые системы могут устанавливаться сложнее, чем показано здесь. Для них может потребоваться скачивание полного архива. Затем нужно будет перейти в папку, содержащую файл Vagrantfile и уже там запустить vagrant up.
Введение в Vagrant
За последнее время обилие инструментов для разработчиков неуклонно растёт: Ansible, Otto, Vagrant, Nomad, Consul, Puppet, Chef. Что это всё? Дабы немного прояснить ситуацию, сегодня я бы хотел рассказать о таком замечательном инструменте как Vagrant, который сам использую практически каждый день.
Что такое Vagrant?
Vagrant это инструмент, позволяющий унифицировать среду разработки и среду в которой этот код будет разворачиваться, используя технологию виртуализации. Проще говоря, если вы как и я любитель делать проекты в среде Windows, но в будущем разворачивать их на *nix машинах, то Vagrant вам в помощь 🙂 Очень часто возникают проблемы на фоне того, что среда разработки значительно отличается от среды, где будет крутиться конечное приложение. Например, в Windows название папки с Заглавной буквы и со строчной это одно и то же, хотя в unix системах это две разные папки.
С высоты птичьего полёта, Vagrant ничто иное как CLI (интерфейс командной строки) для VirtualBox с блекджеком и Vagrantfile.
В качестве демонстрационного примера мы создадим изолированную операционную систему на базе Ubuntu 14.04.3 LTS с виртуальным окружением Python + работающим Django приложением внутри.
Терминология
- Виртуальная ОС — изолированная операционная система, работающая внутри программы-эмулятора
- Программа-эмулятор — программа, использующая аппаратные средства виртуализации компьютерного процессора (прим. VirtualBox, VMWare, Parallels Desktop и т.д.) для создания изолированных виртуальных операционных систем внутри 1 физической машины
- Vagrant — программа-обёртка вокруг программы-эмулятора «с плюшками»
- Vagrantfile — файл, описывающий характеристики и поведение будущей виртуальной операционной системы на языке программирования Ruby
Установка
Весь процесс установки и настройки будет происходить в Windows среде. Для того чтобы установить Vagrant, необходимо выполнить следующие шаги:
- Скачать последнюю версию Vagrant для Windows с официального сайта и установить.
- Скачать VirtualBox для Windows с официального сайта и установить.
При установке Vagrant и VirtualBox не должно возникнуть никаких проблем, поэтому сразу можно переходить к следующему пункту — настройке.
Настройка
После установки Vagrant и VirtualBox желательно перезагрузить компьютер. Если всё прошло без косяков, то можно приступить к запуску первой виртуальной машины.
Для этого необходимо ввести следующие команды:
Тем самым мы создали Vagrantfile, в котором заданы настройки по-умолчанию, а именно:
- В качестве дистрибутива используется Ubuntu 14.04
- Порт 22 гостевой (виртуальной) машины пробрасывается на 2222 порт хост машины
- Текущая директория ./vagrant_demo пробрасывается на директорию /vagrant виртуальной машины
- Гостевой системе выделяется 512 МБ ОЗУ и 40 ГБ жесткого диска
Содержимое Vagrantfile ничто иное как код на языке Ruby, задающий определённые характеристики и поведение.
ubuntu/trusty64 — это кодовое название vagrant box, т.е. готового образа системы. Все образы так называемых vagrant boxes можно найти здесь.
Для того чтобы запустить виртуальную машину необходимо выполнить:
Ниже представлен скриншот процесса загрузки бокса и его последующей установки
После успешной загрузки и настройке достаточно выполнить команду
Но, в стандартной Windows отсутствует утилита ssh, поэтому можно получить вот такое сообщение об ошибке:
`ssh` executable not found in any directories in the %PATH% variable. Is an
SSH client installed? Try installing Cygwin, MinGW or Git, all of which
contain an SSH client. Or use your favorite SSH client with the following
authentication information shown below:
Но не стоит расстраиваться, достаточно установить пакет утилит Cygwin и прописать в переменную PATH путь до бинарников.
После успешного выполнения команды появится окно с шеллом:
Поздравляю! Первый этап выполнен. Для отключения виртуалки необходимо выполнить команду из хост-машины:
Список основных команд:
- vagrant halt — останавливает виртуальную машину
- vagrant destroy — удаляет виртуальную машину
- vagrant suspend — «замораживает» виртуальную машину
- vagrant global-status — выводит список всех ранее созданных виртуальных машин в хост-системе
- vagrant ssh — подключается к виртуальной машине по SSH
Демо пример с Vagrant, поднимающим отдельную виртуальную машину с виртуальным окружением Python на борту, а также Django приложением, можно найти на моём гитхаб репозитории. Достаточно склонировать реп, перейти в папку и вызвать команду vagrant up. Vagrant установит Ubuntu 14.04.3 LTS и все необходимые пакеты, по завершению установки достаточно будет зайти на виртуальную машину и вызвать runserver.
Django приложение можно увидеть на 18000 порту хост-машины.