Vagrant provisioning with Ansible

Vagrant является средство развертывания виртуального окружения(для девелопмента часто) и очень удобной оберткой для Virtualbox (и не только, можно использовать libvirt например)

Поднять виртуальную машину для теста или разработки можна очень просто и быстро, достаточно иметь просто установленный Vagrant + Virtualbox. На Mac OS ставится все очень просто через brew

Далее можно создать Vagrantfile

Где hostname это название машины, ip – адрес, memory, cpu  – указываем ресурсы и boxname – указываем бокс вагрант из репозитория(можно указать свой), для примера берем бокс с убунтой 16.04

Далее просто делаем

И виртуальная среда готова! Можно проверить следующей командой

Также, чтоб посмотреть список образов которые уже скачаны

 

Если образ не скачан и вы его указали в Vagrantfile, то он будет скачан автоматически.

Чтоб удалить виртуалку можно использовать

Для рестарта виртуалки

И чтоб зайти на виртуалку

Теперь самое интересное. Для provisioning виртуальной машины в вагрант можно использовать Ansible. В Vagrantfile можно указать плейбук, который после поднятия виртуально среды будет выполнения любые действия такие как bootstrap, добавление пользователей, деплой какого-либо приложения и пр.

в Vagrantfile добавляем секцию

Playbook.yml у нас находится в этой же директории и содержит для примера такой код:

В данном плейбуке видим несколько задач, которые апдейтят пакеты на систему, ставят python3 + pip3  и модули python для работы с API. Также в pre_tasks ставим python2.7 чтобы Ansible мог работать с системой. Все.

Теперь когда делаем vagrant up, то поднимаетс виртуалка и к ней применяется вот этот плейбук и автоматически накатываются все эти таски.

Вывод vagrant up

 

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *