Пользовательская настройка разработчика с Vagrant

В настоящее время у меня есть Vagrant vm с типичной веб-настройкой (apache, php и т. д.). Фактическое веб-репозиторий проверяется на моем локальном компьютере и доступно через синхронизированные папки и перенаправленные порты Apache (например, http://127.0.0.1:4567/web). Вопрос в том, как заставить это работать для команды, а не только для меня? Поскольку вам необходимо синхронизировать папки, как несколько разработчиков могут подключиться к одной виртуальной машине и синхронизировать папки?

Сначала я думал, что достаточно поделиться Vagrantfile, но Vagrantfile не зависит от всех команд apt-get и настройки apache/php/node и т. д. Я не хочу, чтобы разработчики беспокоились об их запуске.


person matt    schedule 28.05.2015    source источник
comment
Почему вы хотите иметь одну виртуальную машину для всех разработчиков в вашей команде?   -  person Alik    schedule 29.05.2015
comment
@Alik Это не обязательно должна быть одна и та же виртуальная машина. Я просто не понимаю, как лучше всего поддерживать шаблон виртуальной машины (и периодически обновлять), который другие могут использовать для своей собственной разработки на локальном хосте, и сохранять унифицированные пакеты apt-get.   -  person matt    schedule 29.05.2015


Ответы (1)


Для этого предназначена подготовка Vagrant.

Vagrant позволяет автоматически изменить конфигурацию коробки или установить дополнительные пакеты программного обеспечения в рамках первого vagrant up процесса. Кроме того, вы можете оснастить свою систему различными системами управления конфигурацией: Chef, Puppet, Ansible, CFEngine. Или вы можете просто использовать сценарии оболочки.

Sitepoint предлагает хорошее руководство по подготовке коробки Ubuntu 14.04 со сценариями bash для установки nginx, PHP-FPM и MySQL. Прочитайте. Позже вы, возможно, захотите перейти к системам управления конфигурацией.

Взгляните на проект Phansible, который генерирует настройки Ansible для проектов на основе PHP. Подготовка марионеток для PHP-проектов может быть сгенерирована с помощью PuPHPet. Они дадут вам представление о том, как использовать управление конфигурацией с Vagrant, и могут быть использованы в качестве шаблона для вашего Vagrantfile.

Я всегда стараюсь тщательно обрабатывать свои Vagrantfiles (например, подготовка, синхронизированная папка, сопоставление хоста ./src/public с /var/www/html/ на гостевой машине, перенаправление портов и т. д.), чтобы я мог поместить их в корень проекта под контролем версий. Позже, когда мой товарищ по команде клонирует репозиторий проекта на свою машину, он может сразу же выпустить vagrant up и получить полнофункциональную среду разработки.

Единственная проблема, которую я еще не решил, — это обновление существующих виртуальных машин при добавлении новых зависимостей в проекты. Теперь мы обновляем сценарии инициализации, и если разработчики сталкиваются с ошибками, они вручную повторно инициализируют свои виртуальные машины с помощью vagrant reload --provision.

P.S. Я задал вопрос относительно этого проблема

person Alik    schedule 31.05.2015
comment
это выглядит именно так, как я ищу. Для нас это могут быть сценарии оболочки. Основные вещи, которые мы настраиваем, это файл etc hosts, vhosts apache, сообщающие apache и php, какие библиотеки/модули добавить после установки. Типичные вещи, но если марионетка или шеф-повар могут это сделать, это сэкономит время вместо написания большого сценария оболочки. - person matt; 02.06.2015