Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
vagrant init hashicorp/precise64
vagrant up --provider hyperv
is_windows = Vagrant::Util::Platform.windows?
if is_windows
config.vm.synced_folder ".", "/vagrant", type: "smb"
else
config.vm.synced_folder ".", "/vagrant", type: "nfs", mount_options: ['rw', 'vers=3', 'tcp', 'fsc' ,'actimeo=2']
end
Vagrant.configure("2") do |config|
config.vm.box = "precise32"
config.vm.box_url = "http://files.vagrantup.com/precise32.box"
config.vm.provision :shell, :path => "carcass/vagrant/prepare-precise32.sh"
config.vm.provision :shell, :path => "carcass/vagrant/setup-app.sh"
config.vm.network "forwarded_port", guest: 80, host: 8080 # frontend
config.vm.network :private_network, ip: "192.168.33.10" #Let it be available on this IP
end
git clone project
cd project
vagrant up
В результате остановился на provision с помощью shell-скриптовПопробуйте ansible. Он более понятный и не требует знания руби или питона.
$ cd project
$ wget http://ilyar.github.io/localserver/Vagrantfile
$ vagrant up
$ open http://project.local
wget http://ilyar.github.io/localserver/Vagrantfileможно заменить наgit clone https://github.com/ilyar/localserver.gitwget http://ilyar.github.io/localserver/Vagrantfile
С тем же успехом можно просто запустить vagrant init ubuntu/trusty
VM_ARCH=64)$ git clone https://github.com/ilyar/imotlib.git
$ cd imotlib
$ vagrant up
$ open http://imotlib.local/
без наличия в команде соответствующего специалиста, применять их будет сложноansible это не язык программирования на изучение которого может понадобится несколько недель. 1 — 2 вечера достаточно для того чтобы понять как это работает и сделать свою простую сборку на подобии того что у вас в bash файле.
Возможно описать настройку Vagrant одним файлом используя Chef?Методика использования Chef основана на использовании cookbook'ов — готовых наборов рецептов. Поэтому настройка сервера так или иначе будет размазана по этим рецептам.
Какую методику можно переменить что бы быть уверенным в том что Chef-кофиг не протухнет будет актуальным?В описанном мной подходе как раз используется менеджер зависимостей «librarian», который фиксирует версии cookbook'ов в lock-файле. Версия самого Chef также фиксируется с помощью плагина (это описано в начале статьи).
Есть успешный и комфортный опыт использования Chef для развертывания, как рабочего окружения так и локального на Vagrant?В нашей команде мы разворачиваем и dev и prod, см. комментарий.
Vagrant для PHP-проекта