Для этого предназначена подготовка 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