Статьи

Боксен: прекрати беспокоиться о своих инструментах

герой

Сколько раз вы испытывали боль при настройке среды разработки, установке зависимостей, настройке баз данных, обработке переменных среды и всех обычных задач, которые разработчики должны выполнять в первый день (или неделю, 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 . Это действительно просто настроить и установит все необходимые вам зависимости.

Быстрый Тур

  1. На мерзком компьютере

    • Форк и клон нашего репозитория
    • Добавьте все необходимые модули github в Puppetfile
    • Добавьте все модули, которые вы хотите установить в папку manifests
  2. На новом Mac

Окончательный пакет инструментов

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

Используя некоторые из этих новых инструментов, я создал (как я считаю,) пакет по умолчанию для любого проекта, с которым я работаю, используя Boxen и Vagrant .

Используйте Boxen, чтобы настроить новый компьютер, установить VirtualBox , Vagrant , ваш любимый редактор и все, что вам нужно. Как только это будет сделано, используйте Vagrant, чтобы загрузить Box проектов и настроить полную среду. Нет суеты, нет беспорядка.

Дело в том, что Boxen — это отличный проект, который решает одну из самых общих проблем со средой. Он поддерживается и создается одной из самых прогрессивных и перспективных компаний. Я уверен, что это может и поможет вам, как только вы попробуете!