Простая установка Эгеи на ДО, Линод и всё такое

Это гостевая заметка. Иван Немытченко написал, как по-простому установить Эгею на собственный виртуальный сервер. Слово Ивану:

«

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

Каждый раз когда Эгея попадалась мне на глаза, я её скачивал, а потом вспоминал что её нужно же как-то куда-то установить, и откладывал в долгий ящик. Если ты программируешь не на ПХП, все эти „залить на хостинг за одну минуту“ становятся от тебя бесконечно далеки.

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

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

Программистский способ

Программистский способ — это:

  • арендовать виртуальный сервер с линуксом (Digital Ocean, Linode, Scaleway);
  • поставить туда нужные версии Апача, ПХП и MySQL;
  • все правильно сконфигурировать;
  • и залить туда Эгею.

С этим способом есть проблема: если один раз ты это руками всё проделаешь, это не гарантирует тебе того, что когда тебе понадобится это делать во второй раз, ты чего-нибудь не забудешь.

Можно конечно написать себе инструкцию на будущее. Можно баш-cкрипт. Но есть способ получше: записать инструкции в Ansible playbook.

Кстати, если у вас Эгея уже установлена на обычном хостинге, и вам это нигде не жмет, то вам скорее всего этот способ ни к чему.

Ансибл

Главная фишка Ансибла — отсутствие ручных действий при установке и повторяемость результата. Плейбук — это список инструкций, записанных с помощью специального синтаксиса.

Чтобы составить плейбук, приходится пройти один раз весь путь вручную. Зато после того как инструкции готовы, всё действительно устанавливается за минуту.

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

Ансибл написан на Питоне, поэтому запускается на любых операционных системах. Я запускал плейбук Эгеи со своего макбука. Все команды Ансибл будет запускать на удалённом сервере по SSH, так что здоровьем своего компьютера вы не рискуете.

Установка Эгеи с помощью Ансибла

Для начала установите Ансибл. На Маке так это делается в две команды:
sudo easy_install pip
sudo pip install ansible

Команда easy_install в Макосе идет в комплекте с предустановленным Питоном, так что пугаться её не стоит. Инструкции для других операционок подсматривайте на сайте Ансибла.

Дальше:

  1. Скачайте плейбук с репозитория.
  2. Поменяйте значения переменных в секции vars в setup.yml или хотя бы посмотреть на самые важные из них — они понадобятся при первом запуске Эгеи:
    db_name: e2
    db_user: e2
    db_password: secret
  3. Запустите плейбук, указав после ключа „-i“ адрес сервера с запятой на конце:
    ansible-playbook -i ’yourdomain.com,’ setup.yml

Должно произойти примерно такое:

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

Выводы

Это может выглядеть как оверкилл для внешнего наблюдателя, но в этом и есть суть программистского подхода: „лучше день потерять, потом за пять минут долететь“. И во все следующие разы, когда снова понадобится, снова долетать за пять минут.

Если вы, как и я забыли, как устанавливать софт на ПХП на обычный хостинг, то надеюсь что мой плейбук вам поможет, наконец, попробовать Эгею. Ну и если вам нужно будет что-то похожее автоматизировать, теперь вы знаете, куда копать.

P. S. Привет программистам в этом блоге ;-) Читайте мой свежеподнятый блог, в твиттере я @inem. Если интересно почитать ещё что-нибудь программистское, подписывайтесь на мой бесплатный курс для новичков.

»

Дальше
Мои книги