Translate

Показ дописів із міткою Drupal. Показати всі дописи
Показ дописів із міткою Drupal. Показати всі дописи

четвер, 14 травня 2015 р.

Provisioning with Ansible


З часом кожному системному адміністратору випадає необхідність встановлювати та підтримувати дедалі більшу кількість однотипних серверів. Робити кожен раз одне й те саме далеко не найприємніша справа та і надалі це буде займати все більшу кількість часу. Перше, що приходить на думку для вирішення таких проблем - це все заскриптувати, проте цей спосіб далеко не ідеальний. По-перше, те що написано буде з часом зрозуміле лише автору скриптів, а, по-друге, скрипти навряд чи можуть запропонувати ідемпотентність, тобто кожен наступний запуск самописних скриптів над вже працюючою системою може призвести до поломок.

Щоб уникнути подібних страждань людство і придумало системи управління конфігураціями. До найбільш популярних таких систем можна віднести Puppet, Salt, Chef, CFEngine. Хронологія їх появи така:

* CFEngine. Перший реліз - 1993, написаний на С.
* Puppet - 2005, написаний на Ruby. DSL
* Chef - 2009, написаний також на Ruby, DSL
* Juju - 2010, Python.
* Salt - 2011, Python.
* Ansible. Перший реліз - 2012, Python.

Ansible один із наймолодших із існуючих популярних систем конфігурації. Проект стартував лише в 2012 році, проте вже має багато прихильників. Засновник проекту - Майкл Де Хаанн, попередньо працював над Puppet і Cobbler/Func. Назва продукту взято з науково-фантастичної літератури: в романах американської письменниці Урсули Ле Гуїн ансіблом називається пристрій для оперативного космічного зв'язку. Про Ansible далі і піде мова.

Ansible - програма з відкритим вихідним кодом для налаштування і управління серверами. Для деплоя конфігурації на новий сервер необхідно лише SSH-з’єднання та Python-інтерпритатор, який зазвичай йде по-замовчуванню в основних дистрибутивах. Сценарій конфігурації (в Ansible він називається Playbook) описується за допомогою мови розмітки YAML.


неділя, 11 січня 2015 р.

Deploy with Webistrano (Capistrano)


Webistrano - це фронтенд написаний на ROR до ruby-програми Capistrano. Це зручна адмін-панель до управління процесом виливки коду: за допомогою Webistrano можна зручно управляти етапами деплою проектів, надавати певні права користувачам, повертатись на попередні релізи у разі появи проблем та ін.

На жаль, проект більше 5 років не підтримується розробником - тому чим далі, тим буде складніше його установити, адже ніхто не тестує його роботу з останніми бібліотеками Ruby. Наразі краще пошукати альтернативи Webistrano або ж просто користуватись лише консольним інтерфейсом Capistrano, що звісно не додає зручності.

Для Ubuntu 14.04 LTS установка і налаштування проходить наступним чином. Перш за все встановимо необхідні пакети зі стандартних репозиторіїв:

# apt-get install ruby ruby-dev gem rubygems-integration libmysqlclient-dev ruby1.9.1-dev make git mysql-server

Призначення кожного пакету, я думаю, зрозуміле. Наступний крок - установка Rails:

# gem install rdoc mysql2
# gem install rails --no-ri --no-rdoc

Встановлюємо Capistrano, бекенд до Web:

# gem install capistrano