Донецкий техникум промышленной автоматики

Vagrant: що за звір і як з ним працювати?

  1. Що таке Vagrant?
  2. Термінологія
  3. Налаштування
  4. Список основних команд:

За останній час велика кількість інструментів для розробників неухильно зростає: Ansible, Otto, Vagrant, Nomad, Consul, Puppet, Chef

За останній час велика кількість інструментів для розробників неухильно зростає: 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 і VirtualBox не повинно виникнути ніяких проблем, тому відразу можна переходити до наступного пункту - налаштування.

Налаштування

Після установки Vagrant і VirtualBox бажано перезавантажити комп'ютер. Якщо все пройшло без косяків, то можна приступити до запуску першої віртуальної машини.

Для цього необхідно ввести наступні команди:

mkdir vagrant_demo && cd vagrant_demo vagrant init ubuntu / trusty64

Тим самим ми створили Vagrantfile, в якому задані настройки за замовчуванням, а саме:

  • Як дистрибутива використовується Ubuntu 14.04
  • Порт 22 гостьовий (віртуальної) машини прокидати на 2 222 порт хост машини
  • Поточна директорія ./vagrant_demo прокидати на директорію / vagrant віртуальної машини
  • Гостьовий системі виділяється 512 МБ ОЗУ і 40 ГБ жорсткого диска

Вміст Vagrantfile ніщо інше як код на мові Ruby, що задає певні характеристики і поведінку.

ubuntu / trusty64 - це кодова назва vagrant box, тобто готового образу системи. Всі образи так званих vagrant boxes можна знайти тут .

Для того щоб запустити віртуальну машину необхідно виконати:

vagrant up

Нижче представлений скріншот процесу завантаження боксу і його подальшої установки

Після успішного завантаження та налаштування досить виконати команду

vagrant ssh

Але, в стандартній 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 шлях до бінарників.

Але не варто засмучуватися, досить встановити пакет утиліт   Cygwin   і прописати в змінну PATH шлях до бінарників

Після успішного виконання команди з'явиться вікно з шеллом:

Після успішного виконання команди з'явиться вікно з шеллом:

Вітаю! Перший етап виконаний. Для відключення виртуалки необхідно виконати команду з хост-машини:

vagrant halt

Список основних команд:

  • 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 порту хост-машини.

Django додаток можна побачити на 18000 порту хост-машини

Корисні посилання:

Що таке Vagrant?
Що це все?
Що таке Vagrant?