|
|||||||
Начало работы с Vagrant
Время создания: 13.01.2019 16:53
Автор: alensav
Текстовые метки: vagrant, утилита, виртуалка
Раздел: MyTetra - Ubuntu_Command
Запись: xintrea/mytetra_db_alensav/master/base/1547387627a2z9po7xts/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Начало работы с Vagrant и зачем он вообще нужен 19 января 2015 В первом приближении Vagrant — это такой CLI для VirtualBox. То есть, утилита, которая говорит «создать виртуалку», «запустить виртуалку» и так далее. На самом деле, Vagrant представляет собой нечто куда большее. В частности, помимо VirtualBox есть немало других так называемых провайдеров — VMWare, Amazon EC2 , LXC и libvirt. Для каких задач может пригодиться Vagrant?
Как видите, штука полезная. Давайте же научимся ею пользоваться! VirtualBox качаем отсюда , а Vagrant — отсюда . Устанавливаем: sudo dpkg -i virtualbox-4.3_4.3.20-96996~Ubuntu~raring_amd64.deb Чтобы не возиться со всякими там ISO-образами в Vagrant есть такое понятие, как боксы. Бокс — это сохраненный образ системы. Чтобы создать новую виртуалку, вам нужен бокс. Когда вы архивируете состояние вашей ВМ, на выходе также получаете бокс. Скачаем бокс с Ubuntu 14.04: vagrant box add ubuntu/trusty64 Теперь создадим новую виртуалку: mkdir -p ~/vagrant/ubuntu-test В каталоге появится файл с именем Vagrantfile. Здесь задаются параметры ВМ. Можно изменить ограничения по памяти и CPU , включить или отключить шаринг каталогов с хост-системой, поправить настройки сети, в том числе — настроить проброс портов из гостевой системы в хост-систему, и так далее. Кстати, по умолчанию все виртуалки находятся в одной виртуальной LAN и видят друг друга. Здесь и далее в качестве провайдера мы будем использовать VirtualBox. Он очень гибок в плане настроек. В частности, в Vagrantfile можно передать любые аргументы утилите VBoxMange , что не удивительно, так как под капотом всю виртуализацию Vagrant делает с ее помощью. Чтобы у ВМ были красивые имена в интерфейсе VirtualBox, а также выводе vagrant global-status, я всегда прописываю в Vagrantfile что-то вроде: # имя в `vagrant global-status` Запустим виртуалку и зайдем в нее по ssh: vagrant up Тут следует отметить, что говоря vagrant up вы должны находится в одном каталоге с Vagrantfile. При этом после запуска ВМ вы сможете обращаться к ней по id уже из любого каталога. А физически все виртуалки лежат вовсе не рядом с Vagrantfile, а в каталоге ~/VirtualBox VMs/. Есть подозрения, что интерфейс у Vagrant мог бы быть более однотипным, и от этого более простым и понятным, но уж как сделали. Попав внутрь ВМ вы обнаружите, что работаете под пользователем vagrant, который может делать sudo без пароля. При этом есть возможность обмениваться файлами с хост-системой: echo "hello from vagrant" > /vagrant/hello Файл hello появится в каталоге ~/vagrant/ubuntu-test хост-системы. В гостевой системе доступ к каталогу /vagrant/ имеет только пользователь vagrant. Если вдруг такой способ взаимодействия с гостевой системой кажется вам неудобным, ничто не мешает завести обычного пользователя, сказать ssh-copy-id и обмениваться файлами с помощью scp. Если в хост-системе сказать: vagrant global-status … то можно увидеть все ВМ и их состояние. Если ВМ удалялась не через Vagrant, она может остаться в global-status. Лечится это так: vagrant global-status --prune Виртуалки можно ставить на паузу: vagrant suspend 1f2a1a5 Заметьте, что можно использовать не полный id вируталки (1f2a1a5), а только его начало (например, 1f). Кроме того, если вы присвоили ВМ имена, как было описано выше, то можно использовать их. Полная останова и запуск: vagrant halt 1f Удаление ВМ: vagrant destroy 1f Можно создать из виртуалки бокс, сказав в каталоге с Vagrantfile: vagrant package Появится файл package.box (у меня он получился около 350 Мб). Упаковывать его не нужно, это уже сжатый файл. Импорт бокса: vagrant box add myubuntu package.box Часто требуется присвоить виртуалке фиксированный IP в LAN. Для этого находим в Vagrantfile строку, похожую на следующую, раскомментируем и правим: config.vm.network "private_network", ip: "10.110.0.10" Проверяем: vagrant reload 1f В качестве примера альтернативного провайдера рассмотрим vagrant-lxc. Как вы догадались, он позволяет делать все, что было описано выше, используя LXC вместо VirtualBox. Если в двух словах: # ставим плагин Подробности можно найти на GitHub’е плагина . Как видите, все довольно просто. Дополнительную информацию вы можете найти по следующим ссылкам:
А пользуетесь ли вы Vagrant и если да, то для каких задач? Дополнение: Также вас могут заинтересовать заметки Контейнерная виртуализация при помощи OpenVZ , Зачем нужен Docker и практика работы с ним и Туториал по контейнеризации при помощи LXC . Метки: Linux , Виртуализация . ==================================== https://www.shellhacks.com/ru/vagrant-tutorial-for-beginners/ Что такое Vagrant? Vagrant — это простой и удобный в использовании инструмент, позволяющий легко управлять виртуальными машинами из командной строки. Vagrant из коробки поддерживает VirtualBox, Hyper-V, Docker, а также имеет возможность управлять другими типами машин, как например VMWare или Amazon EC2, с помощью других так называемых провайдеров . В данной статье я покажу, как создать новое Vagrant-окружение, скачать, сконфигурировать и запустить виртуальную машину, как подключиться к ней по SSH и как затем остановить или полностью уничтожить ее. Это руководство предполагает, что вы уже установили один из поддерживаемых виртуальных провайдеров, как например VirtualBox или Docker. Дельный Совет: Установите Docker в Ubuntu-16.04 или Ubuntu-18.04 и используйте его вместе с Vagrant! Установка Vagrant Скачайте и установить последнюю версию Vagrant из официального источника . Чтобы убедиться в том, что Vagrant был успешно установлен — проверьте его версию: $ vagrant -v
Vagrant 2.0.0
Vagrant Boxes Стандартные темплейты виртуальных машин в Vagrant называются боксами. Список общедоступных боксов для Vagrant может быть найден на странице поиска боксов . VirtualBox ≠ VMWare: Все Vagrant-боксы провайдеро-зависимые. Не все боксы доступны для всех провайдеров. Возможно, чтобы сузить область поиска, вам следует отсортировать результаты по тому провайдеру, который необходим именно вам. Как только вы нашли образ который хотите использовать — создайте директорию в которой будет храниться ваш новый проект: $ mkdir -p vagrant-projects/tutorial
$ cd vagrant-projects/tutorial
Чтобы создать новое Vagrant-окружение внутри папки проекта — выполните vagrant init <boxpath>, где <boxpath> — название Vagrant-бокса. Например, чтобы установить базовый образ Ubuntu-16.04, выполните: $ vagrant init ubuntu/xenial64
Команда vagrant init в текущей директории создает файл Vagrantfile, в котором описывается тип необходимой для проекта машины, каким образом ее сконфигурировать и какие ресурсы выделить. Vagrant Up Запустите Vagrant-окружение: $ vagrant up
Команда vagrant up создает, настраивает и запускает виртуальную машину исходя из параметров заданных в Vagrantfile. При первом запуске она автоматически скачивает необходимый Vagrant-бокс из репозитория и выделяет соответствующие ресурсы для новой виртуальной машины. Дельный Совет: Каждый DevOps должен знать основы работы с Git. И вы можете освоить их прямо сейчас! Читать далее → Vagrant SSH Чтобы подключиться по SSH к запущенной Vagrant-машине и попасть в консоль, выполните: $ vagrant ssh
Очистка Vagrant Если необходимо приостановить процесс разработки — вы можете полностью остановить Vagrant-машину либо просто приостановить ее. Остановить Vagrant-машину: $ vagrant halt
Приостановить машину (запомнить состояние): $ vagrant suspend
Чтобы полностью очистить окружение — вы можете уничтожить машину. Остановить и удалить все следы Vagrant-машины: $ vagrant destroy
Когда вам снова понадобиться чистое Vagrant-окружение на основе стандартного темплейта — просто выполнитье vagrant up. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|