Бродяга. ВМ после подготовки

Я пытался принять Vagrant в нашу команду. Я создал Vagrantfile и каким-то образом подготовил его. Все работает как шарм, но...

Мне непонятно, как я могу автоматизировать некоторые рутинные задачи, такие как:

  • запуск django (я использую django, но это независимая от фреймворка проблема) dev server на 0.0.0.0
  • бегущий хрюкающий наблюдатель
  • предоставление отдельной консоли для команд, специфичных для django

Похоже, vagrant не предназначен для помощи в такой автоматизации, и я ищу способ, принятый сообществом, для этого. Я погуглил и ничего не нашел.

Я вижу несколько путей к этому:

  • Скрипт bootstrap.sh, но грязный и сложный в обслуживании
  • что-то вроде tmuxinator - требует tmux на хост-компьютере, и теперь невозможно поместить tmuxconfig в репозиторий проекта
  • так далее

Каков «канонический» способ решения этой проблемы?

P.S.: Пожалуйста, подумайте о дизайнерах, ручных тестировщиках и других ребятах, которым нравится использовать инструменты как есть.


person kharandziuk    schedule 10.12.2014    source источник


Ответы (2)


В общем, вам лучше всего использовать поставщика. Честно говоря, файл bootstrap.sh — хорошее место для начала, если только вы не хотите изучать все тонкости чего-то вроде chef/ansible/salt/puppet. Если вы это сделаете, вы можете начать с соли (SaltStack), потому что она написана на питоне, который, я предполагаю, вы используете, учитывая угол джанго.

По вашим конкретным вопросам:

  • Частью смысла vagrant является то, что он позволяет вам разрабатывать против реальных стеков и реальных веб-серверов, чтобы вы могли избежать момента «о, это не совсем работает на apache», который часто возникает в проектах. Итак, для вашего первого вопроса я бы посмотрел, как подготовить приложение для apache / nginx или что-то еще, что вы используете для производственных веб-серверов.
  • Из-за общих файловых систем пользователи могут просто запускать grunt локально на хост-компьютере. Это также позволяет grunt делать такие вещи, как подключение к уведомлениям OSX.
  • Я не знаком с tmuxinator, поэтому не знаю, с чего начать. Но если это служба, которую действительно запускает сервер, вам следует найти способ упаковать установку и развернуть ее на подготовленной виртуальной машине. Что касается конфигурации, можно ли получить конфигурацию разработчика в репо?
person Wyatt Barnett    schedule 10.12.2014
comment
Привет, рассмотрим этот пример. Я уже использую провизор. Вопрос, как упростить использование vagrant для дизайнеров или тестировщиков руководств? Например, каждый тестировщик должен запускать django-сервер и крякать, но большинство из них ничего не знает об этих технологиях. - person kharandziuk; 11.12.2014
comment
Gr8, вы начинаете работать над этим. Репозиторий показывает, что вы предпочитаете инструмент предоставления ansible, это нормально, тогда попробуйте заставить его работать. Дизайнерам или тестировщикам не нужно знать, как это сделать, для них вы просто даете им команды для запуска экземпляра, такие как git clone, vagrant up, vagrant ssh, вот и все. Вы будете контактным лицом для обслуживания репозитория. - person BMW; 14.12.2014
comment
@kharandziuk -- Да, можно, но к бродяге нужно подходить правильно. Я немного намекнул на это в своем ответе - вам не нужно отключать django-сервер, заставляя приложение работать на бродячей виртуальной машине с переадресованным портом. Что касается ворчания, вы можете подключить его к сценарию подготовки, чтобы это происходило, когда кто-то запускает коробку, которая, вероятно, охватывает тестировщиков. Дизайнеры должны быть в состоянии запустить его ИМХО. Это немного проясняет ситуацию? - person Wyatt Barnett; 14.12.2014

Как и @Wyatt, я рекомендую использовать Vagrant с инструментами предоставления, такими как puppet, saltstack, chef, anisble и т. д. Эти инструменты созданы для требований, которые вы запрашиваете, и большинство из них имеют открытый исходный код. Выбор не является неправильным, вы можете начать учиться с любого, они похожи.

При этом вы можете быстро и легко запустить несколько серверов виртуальных машин со всеми приложениями, установленными автоматически. С помощью настраиваемых кодов Puppet или кулинарных книг шеф-повара вы можете обновить их в любое время и легко предоставить виртуальной машине, а также повторно использовать их для своей среды PROD.

Потратьте некоторое время, чтобы сначала изучить один из этих инструментов автоматизации, вы сэкономите много времени.

Я использую Puppet и рекомендую вам лучшую книгу о куклах PRO PUPPET. В нем есть все, что вам нужно.

тенденции инструментов автоматизации

person BMW    schedule 13.12.2014
comment
Окончательный выбор будет зависеть от вас самих, если вы сможете принять решение. Все эти инструменты предоставления отработаны, разработаны и используются в течение многих лет тысячами и сотнями клиентов в различных отраслях промышленности. Начать с привычного вам будет несложно. В противном случае, если у вас нет опыта работы ни с одним из них, выберите один из них и начните сначала учиться. - person BMW; 14.12.2014
comment
вопрос не в инструменте обеспечения. - person kharandziuk; 14.12.2014
comment
@bmw Ansible написан с ошибкой, что испортило ваше сравнение. - person Zlemini; 17.01.2017