Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Лёгкое создание виртуальных машин с помощью PuPHPet

Мэтью Сеттер (Matthew Setter), 18 декабря 2013

часть 1 | часть 2 | часть 3

Вас напрягает создавать и настраивать среду разработки? Это замедляет вашу работу? Отвлекает от разработки? У вас проблемы из-за того, развернутое окружение не соответствует потребностям вашей разработки? Если да, я могу предложить вам решение — PuPHPet!

Введение

Не могу сказать за вас, но окружение — это одна из моих любимых мозолей в разработке софта. Его каждый раз приходится создавать заново для различных проектов с различными потребностями. Приходится обеспечивать соответствие окружения для всех разработчиков в команде (в том числе и для уделенных). Создавать окружения для разработки, тестирования и продакшена. Учитывая все это, настройка окружения становится трудоемкой задачей, особенно, если делается вручную.

Как все мы знаем, количество опций, разнообразие выбора, требования IT-менеджера, тимлида и клиента могут ввести в стресс. Они могут толкать нас (и толкают) во множестве направлений, зачастую, одновременно.

Нужно выбрать базу данных, такую как MySQL, PostgreSQL, Oracle или SQLServer. Нужно выбрать NoSQL, такой как Cassandra, Hadoop или Redis. Нужно выбрать вебсервер, такой как Apache или Nginx. Этот список может продолжаться и продолжаться.

И если у нас нет выделенной команды системных администраторов (если мы — это одинокий фрилансер или маленькая команда), время, потраченное на поддержание окружения разработки становится по настоящему драгоценным, — мы впадаем в DevOps.

Чтобы положить конец мучениям и повысить эффективность описанного процесса, я приступил к задаче изучения Vagrant и Puppet. После обсуждений с коллегами и чтения интернета, эти два инструмента показались стандартами для создания повторно используемых окружений. Если вы не знакомы с этими превосходными утилитами, вот две краткие выдержки из соответствующих руководств:

Vagrant:

Создайте и сконфигурируйте легковесное, воспроизводимое и портируемое окружение разработки. Vagrant изменит методы вашей работы.

Puppet:

Puppet — это информационная автоматизированная система, которая помогает системным администраторам управлять инфраструктурой на протяжении всего ее жизненного цикла, от создания и конфигурирования, до согласования и отчетности. Используя Puppet вы легко можете автоматизировать повторяющиеся задачи, быстро разворачивать критические приложения, заранее вносить изменения, масштабировать систему с 10 серверов до 1000, как в одной комнате, так и в облаке.

Однако, как и большинство людей в современном мире, я нетерпелив. У меня много дел и, кроме того, я не стремлюсь стать гуру. Я посчитал, что должен существовать простой способ решить проблему, который не требует стать красноглазиком.

Представляем PuPHPet

В результате дальнейшего гугления я наткнулся на предмет этой статьи, — PuPHPet, — превосходный графический инструмент, простой мастер для создания конфигурации Vagrant под управлением Puppet, которую можно использовать немедленно.

Проект PuPHPet был создан Жуаном Треминьо (Juan Treminio) несколько месяцев назад. Он облегчает создание окружений {W,M,L}AMP, отлично адаптированных под PHP-разработчиков.

Он фокусируется на 5 областях:

  • развертывание целевой системы (память, IP-адрес, переадресация портов);
  • базовый сервер;
  • PHP (модули, библиотеки, значения настроек)
  • база данных (PostgreSQL, MySQL)
  • вебсервер (Apache 2, Nginx).

Хотите ли вы получить PHP 5.5 с PostgreSQL и Nginx, или PHP 5.4 под Apache 2 и MySQL, вы сможете быстро создать и скачать нужную конфигурацию, буквально за несколько минут.

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

С помощью PuPHPet вы можете поднять и запустить нутро за полчаса. Все, что нужно для этого сделать, — это запустить

vagrant up

Да, это так. После распаковки архива PuPHPet вам нужно запустить только одну эту команду, немного подождать и все будет готово. Не верите? Давайте вместе пройдем этот процесс от начала до конца.

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

Необходимое программное обеспечение

Начнем с предупреждения. Одна из главных проблем, с которой я столкнулся вначале, заключалась в несоответствии версий Vagrant и VirtualBox. Проблема проявилась в том, что я получил только часть желаемого, и остаток надо было доделывать вручную. Было совершенно непонятно, что пошло не так, и как завершить этот процесс.

Короче, если что-то не работает, попробуйте различные версии обоих пакетов. Сейчас у меня запущены Vagrant 1.3.5 и VirtualBox 4.3.2. Они работают безупречно.

Во-первых, установите копии этих двух пакетов.

часть 1 | часть 2 | часть 3

Автор: Мэтью Сеттер, 18.12.2013
Перевод с английского: Дмитрий Скоробогатов, специально для xBB.uz, 12.05.2014
Оригинальный текст может быть найден по адресу http://www.sitepoint.com/build-virtual-machines-easily-puphpet/

Мэтью Сеттер

Мэтью Сеттер

Мэтью — независимый технический писатель, который любит делать технический контент веселым и увлекательным, даже развлекательным; профессиональный блоггер; разработчик веб-приложений. Свое свободное время он предпочитает тратить на двух своих любимых женщин (жену и дочь) а также на изучение Германии, — своей второй родины.


Предыдущие публикации:

Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2014-05-12 10:20:21

Метки материала: машины, автоматизированные системы, puphpet, виртуальные машины, софт, программное обеспечение, it, разработка софта, php

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.