{{tag>vagrant chef shell puppet salt ansible docker virtual}}

====== Vagrant ======

  * https://www.vagrantbox.com/
  * https://www.vagrantup.com/docs/

===== Установка =====

<code bash>
$ apt install -f
$ apt --fix-broken install
$ apt install ruby-dev vagrant
$ apt install virtualbox virtualbox-ext-pack
</code>

<code bash>
$ modprobe -a vboxguest vboxsf vboxvideo
$ modprobe vboxnetadp
$ modprobe vboxnetflt
</code>

===== Коробочки =====

  * https://atlas.hashicorp.com/boxes/search
  * http://www.vagrantbox.es/
  * debian/contrib-jessie64 - Vanilla Debian 8 "Jessie" build with contrib vboxsf kernel module


===== Плагины =====

  * https://github.com/mitchellh/vagrant/wiki/Available-Vagrant-Plugins


===== Системы управления конфигурацией =====

[[system:docker|Docker]] - по сути это некий контейнер в который вы можете засунуть операционную систему, свой софт и базу данных и запустить его. У контенеров есть слои, ОС - нижний слой, софт выше слой, и ваше приложение и данные - верхний слой. Контенеры удобны для переноса приложения и сопровождающего окружения на сервер или в облако. Docker не создает виртуальную систему, а только эмулирует ее пробрасывая системные вызовы и работает стабильно только в Linux. С недавнего времени появилась версия для MacOS. Обычно сброка бокса описана в файле Dockerfile.

[[system:vagrant|Vagrant]], же, напротив - базируется на системах виртуализации (VirtualBox, libvirt, xen). С самого начала он создает полноценную виртуальную машину, выполняет скрипт provision, который устанавливает все окружение и настраивает его. Vagrant работает на всех операционных системах в силу своей природы.

  * Shell — старые добрые shell-скрипты. В XXI веке уже не интересно.
  * [[system:vagrant:Ansible]] — молодая, набирающая обороты, система управления конфигурацией.
  * [[system:vagrant:chef|Chef]] — про него, пожалуй, слышали все. Поддерживается standalone (Chef Solo) и серверная (Chef Client) версии.
  * [[system:docker]] — модная в последнее время система, поддерживающая концепцию Immutable Server.
  * [[system:vagrant:puppet|Puppet]] — одна из наиболее распространенных систем управления конфигурацией. Поддерживается standalone и серверная версия.
  * Salt — система управления конфигурацией Salt Stack.

===== Системы виртуализации =====

  * virtualbox
  * lxc
  * docker
    * https://app.vagrantup.com/boxes/search?provider=docker
    * https://github.com/nishidayuya/docker-vagrant-debian :!:
    * https://hub.docker.com/r/nishidayuya/docker-vagrant-debian/


===== Создание коробки из рабочей виртуальной машины =====

У нас есть виртуальная машина с наименованием "vm". В отключено состоянии выполняем команду от root.
Где /Users/mirocow/vagrant/vm.box является путем до создаваемой коробки.

<code bash>
$ rm /Users/mirocow/vagrant/vm.box
$ vagrant package --base vm --output /Users/mirocow/vagrant/vm.box
</code>

===== Запуск локальных коробок =====

<code bash>
$ vagrant box add foo-box /path/to/vagrant-box.box
$ vagrant init foo-box
$ vagrant up
</code>

===== On-line конфигураторы =====

  * https://puphpet.com/

===== Рецепты =====

=== Yii2 ===

=== Wordpress ===

  * https://github.com/vccw-team/vccw

=== Остальные ===

  * https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/Vagrantfile

===== Пакеты =====

  * https://github.com/sj26/mailcatcher


===== Сатьи / Сайты / Документация =====

  * [[system:vagrant:repair-box]]
  * http://sysadm.pp.ua/linux/sistemy-virtualizacii/vagrantfile.html
  * [[http://stdout.in/ru/post/kak-uskorit-vagrant-obshie-papki|Как ускорить Vagrant (общие папки)]]
  * http://stdout.in/ru/post/kak-uskorit-vagrant-obshie-papki
  * http://onedev.net/post/302

===== Ошибки =====

=== /sbin/mount.vboxsf: mounting failed with the error: No such device ===

<code bash>
$ vagrant plugin expunge
$ vagrant plugin install vagrant-vbguest 
$ vagrant box update
$ vagrant vbguest
</code>

====== Другие системы виртуализации ======

{{topic>[virtual]}}
