Сколько раз вы испытывали боль при настройке среды разработки, установке зависимостей, настройке баз данных, обработке переменных среды и всех обычных задач, которые разработчики должны выполнять в первый день (или неделю, lol) при запуске новый проект?
Если вы ответили «более одного раза», продолжайте читать этот пост и, возможно, рискуйте с Boxen (только для OSX).
Как говорит сайт Boxen :
Автоматизируйте боль в вашей среде разработки. Boxen устанавливает ваши зависимости, чтобы вы могли сосредоточиться на достижении цели.
Откуда это?
Boxen начинался как Github Project , первоначально называвшийся «The Setup» . Github начал его разработку, потому что они поняли, сколько времени они потратили на настройку сред разработки и сколько проблем могут создавать несовместимые среды.
Они верят, что разработка — это производство, поэтому они ценят согласованность, предсказуемость и воспроизводимость по сравнению с одноразовыми, отрегулированными вручную средами разработки. Совместите это с целью помочь сотрудникам начать отгрузку в первый день и вуаля .
Как только этот Boxen стал известным и используемым внутренним проектом, они решили извлечь функции и обернуть все, чтобы облегчить работу в любой компании .
Установка чего-либо вручную — это ошибка
Идея состоит в том, чтобы настроить все, что может понадобиться вашему проекту, с любой необходимой вам настройкой, поэтому вам не нужно беспокоиться ни о чем другом, кроме как начать разработку. Он не только настроит вашу среду, но и автоматически обработает все важные обновления.
Boxen может клонировать ваши проекты, устанавливать цепочки инструментов, применять политики безопасности, настраивать ваш любимый музыкальный проигрыватель, устанавливать заставку, клонировать ваши точечные файлы и кричать о помощи, когда дела идут плохо.
Есть много, много библиотек, которые уже работают с Boxen, и есть также большое сообщество, поддерживающее это. Если вы не можете найти то, что ищете, вы можете легко настроить существующую библиотеку или создать свою собственную, выполнив следующие простые шаги .
Секретный соус
Большой секрет всех этих интересных функций заключается в том, что Boxen использует Puppet , инструмент управления конфигурацией, для выполнения всей тяжелой работы! И это довольно просто!
Чтобы использовать его, вы или кто-либо из вашей команды пишет манифест проекта . После этого все, что вам нужно сделать, это запустить одну команду, и вы получите готовый к работе проект со всеми его зависимостями.
Давайте получим это
Прежде чем мы перейдем к некоторым реальным примерам кода, вам нужно знать несколько деталей, чтобы избежать глупых ошибок:
- Boxen работает только на Mac
- Boxen требует наличия инструментов командной строки Xcode.
- Boxen не будет работать с существующей установкой rvm.
- Boxen может не очень хорошо играть с именем пользователя GitHub, которое содержит тире (-)
- Boxen может не очень хорошо играть с существующей установкой rbenv.
- Boxen может не очень хорошо играть с существующей установкой Chruby.
- Boxen может не очень хорошо играть с существующей домашней версией.
- Boxen может не очень хорошо играть с существующей установкой nvm.
- Boxen рекомендует установить полный Xcode.
В репозитории Boxen есть руководство для начинающих, которое поможет вам выполнить первоначальную настройку и поможет распространить информацию среди ваших коллег. Как только вы закончите, вы будете готовы настроить его так, как вам нужно. Не забудьте внимательно посмотреть на все эти готовые к использованию библиотеки !
Puppetfile
Puppetfile
находится в корне вашего хранилища Boxen . Поместите все ваши зависимости в этот файл, как в Gemfile.
# Core modules for a basic development environment. github "repository", "2.0.2" github "dnsmasq", "1.0.0" github "gcc", "1.0.0" github "git", "1.2.2" github "homebrew", "1.1.2" github "hub", "1.0.0" github "inifile", "0.9.0", :repo => "cprice404/puppetlabs-inifile" github "nginx", "1.4.0" github "nodejs", "2.2.0" github "ruby", "4.1.0" github "stdlib", "4.0.2", :repo => "puppetlabs/puppetlabs-stdlib" github "sudo", "1.0.0" # Optional/custom modules. There are tons available at # https://github.com/boxen. github "java", "1.1.0"
манифест
Папка manifests
содержит все определения узлов (по сути, под узлом понимается машина, на которой работает Puppet), включая необходимые вам модули.
Boxen запускает все по умолчанию в manifests/site.pp
Файл site.pp по умолчанию выглядит так:
node default { # core modules, needed for most things include dnsmasq # more... }
Самая крутая часть Boxen — это удивительные модули с открытым исходным кодом, которые конфигурируют наиболее распространенные инструменты, которые вам могут понадобиться. Теперь вам не нужно писать тонны кода внутри вашего манифеста.
После того, как вы настроили Puppetfile
и manifest
, все, что вам нужно сделать, это запустить Boxen
script/boxen
Boxen задаст несколько вопросов, таких как учетные данные вашей учетной записи на github и ваш пароль root для sudo. С ответами на эти вопросы, он будет взлетать и устанавливать все.
Заворачивать
Короче говоря, если у вас есть проблемы при настройке рабочей среды на Mac, вы должны попробовать Boxen . Это действительно просто настроить и установит все необходимые вам зависимости.
Быстрый Тур
-
На мерзком компьютере
- Форк и клон нашего репозитория
- Добавьте все необходимые модули github в
Puppetfile
- Добавьте все модули, которые вы хотите установить в папку
manifests
-
На новом Mac
- Установите XCode и инструменты командной строки
- Клонируйте ваш репозиторий our-boxen в папку
/opt
- Запустить boxen (
script/boxen
)
Окончательный пакет инструментов
После многих лет работы над различными проектами я рад видеть невероятно полезные инструменты, которые разработчики разработали для облегчения нашей жизни.
Используя некоторые из этих новых инструментов, я создал (как я считаю,) пакет по умолчанию для любого проекта, с которым я работаю, используя Boxen и Vagrant .
Используйте Boxen, чтобы настроить новый компьютер, установить VirtualBox , Vagrant , ваш любимый редактор и все, что вам нужно. Как только это будет сделано, используйте Vagrant, чтобы загрузить Box проектов и настроить полную среду. Нет суеты, нет беспорядка.
Дело в том, что Boxen — это отличный проект, который решает одну из самых общих проблем со средой. Он поддерживается и создается одной из самых прогрессивных и перспективных компаний. Я уверен, что это может и поможет вам, как только вы попробуете!