Как использовать vagrant в разработке и как использовать общие папки?

Я (новичок в бродяге) настроил бродячую среду для разработки. мне предоставили бродячий файл

    Vagrant.configure("2") do |config|
      config.vm.box = 'precise64'
      config.vm.box_url = 'http://files.vagrantup.com/precise64.box'
      config.vm.network :forwarded_port, guest: 80, host: 8080

      config.vm.provision :puppet do |puppet|
        puppet.module_path = "config/puppet/modules"
        puppet.manifests_path = "config/puppet/manifests"
        puppet.manifest_file = "base.pp"
      end

      config.vm.provider :virtualbox do |v|
        v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      end
    end

config/puppet/manifests содержит следующий файл base.pp

    Exec { 
      path => "/usr/bin:/bin:/usr/sbin:/sbin"
    }

    stage { 'first': 
      before => Stage['main']
    }

    class { 
      'system': stage => first; 
      'mysql':  stage => main;
      'apache': stage => main;
      'php':    stage=> main;
      'git':    stage=> main;
      'cake':   stage=> main;
    } 

и config/puppet/modules, содержащие каталоги apache,cake,git,mysql,php и system.

То, что я сделал до сих пор,

    1) Installed VirtualBox
    2) Installed Vagrant
    3) Vagrant up (as specified everywhere in net)

что у меня есть

    1) a virtualbox (having no GUI)
    2) SSH connection to virtaul box
    3) and a shared folder.

теперь у меня есть несколько вопросов, чтобы я мог понять это хорошо

    1) Am i going in right direction in order to setup vagrant?
    2) What is precise64.box(just console box), can't i add ubuntu as a box and everything set up(i.e. php, apache n other modules specified in puppet modules) in that ubuntu?
    3) Where does puppet install all these modules? in Host(Windows) or in Guest(precise64)?
    4) What config.vm.network :forwarded_port, guest: 80, host: 8080 do?
    5) what does shared folder do? and where does the shared folder reside in virtual box(precise64) and what i could/should do with this shared folder?
    6) where do i install Netbeans/Eclipse in order to develop my code?
    7) Any references/blog that describe vagrant and its advantages in and out?

Я пытаюсь понять, но не могу понять, как понять бродягу (как разработчик) и что-то разработать. Любая помощь или объяснение будут ценными, и я думаю, что это могут быть наиболее распространенные моменты, которые трудно понять любому новичку.


person dipak1296    schedule 06.08.2014    source источник
comment
Этот вопрос довольно широк, до такой степени, что он выходит за рамки, чтобы в основном запрашивать существующую документацию. Хотя может это только я.   -  person Felix Frank    schedule 07.08.2014


Ответы (1)


1) Да, похоже, ты все делаешь правильно. На самом деле нет правильного или неправильного, если это работает, ваша конфигурация выглядит довольно стандартной. (Не уверен насчет вашей конфигурации марионетки... Я никогда этим не пользовался)

2) Файлы .box в основном представляют собой установочные компакт-диски, которые упакованы специально для бродяг. В этом случае вы загружаете и устанавливаете http://files.vagrantup.com/precise64.box, который, по сути, представляет собой стандартный 64-битный сервер Ubuntu 12.04. Другие готовые коробки можно найти здесь. Смысл бродяги в том, чтобы иметь возможность начать с базовой ОС и создать ее с помощью файлов обеспечения (chef, puppet, bash и т. д.).

3) Все в vagrant очень самодостаточно внутри создаваемой виртуальной машины, я мало что знаю о марионетке, но я предполагаю, что она работает почти так же, как файлы подготовки bash, которые я использую, работают. Он загружает виртуальную машину, а затем запускает сценарии подготовки внутри виртуальной машины, чтобы у вас был воспроизводимый процесс создания виртуальной машины.

4) Перенаправление портов. гость: 80, хост: 8080 означает, что все в виртуальной машине (гостевой), обслуживающей порт 80, будет доступно на хосте (вашем компьютере) по адресу http://localhost:8080.

5) Общие папки УДИВИТЕЛЬНЫ. По сути, ваша виртуальная машина будет иметь доступ к папке с вашего хост-компьютера, что невероятно полезно для вопроса № 6. Выполните что-то вроде:

config.vm.synced_folder "src/", "/vagrant"

сделает каталог src в вашем проекте (на хосте) доступным для виртуальной машины в точке монтирования /vagrant. Таким образом, вы можете установить IDE на своем хосте, редактировать файлы в src, и они автоматически будут доступны на вашей виртуальной машине в /vagrant. Подробнее об этом здесь.

6) На вашем хост-компьютере. См. ответ на номер 5. 7) Возможно, Google — ваш лучший друг в этом вопросе. Самым большим преимуществом для меня является то, что мы можем зарегистрировать наш Vagrantfile в репозитории git рядом с остальным кодом нашего приложения, и любой новый член нашей команды может запустить приложение локально в течение нескольких минут, перейдя в каталог и запустив vagrant up. Что-то испортилось в виртуальной машине и нужно начать заново? vagrant destroy -> vagrant up. Отсутствие необходимости устанавливать кучу пакетов, специфичных для приложения на вашем хост-компьютере, бесценно.

person Joe    schedule 06.08.2014
comment
Спасибо @theJoeBiz .. хорошее и полезное объяснение .. еще одна вещь, что если я установлю gnome в коробке, а затем займусь разработкой в ​​коробке? есть ли разница или вред? - person dipak1296; 06.08.2014
comment
Никаких проблем... все должно работать так, как вы ожидаете. Единственная проблема, которая возникает, заключается в том, что если что-то случится с коробкой и вам придется ее уничтожить, вы потеряете все, что вы установили за пределами сценариев подготовки, и любой код, который вы сделали за пределами общей папки. - person Joe; 06.08.2014