Один шеф-кухар править їм усім


10

Я шукаю шеф-кухаря для автоматизації розгортання Magento - як в стандартних варіантах хостингу Magento, так і в середовищах, таких як EC2. Я гуляв навколо, і бачу численні рецепти, але жоден насправді не вражає мене канонічним. Чи є певний сценарій кухаря, який кращий / найкращий? Крім того, якщо ви раніше робили шеф-кухарів з PHP, що б ви хотіли знати, коли ви починали?


2
Я хотів би, щоб я знав, що існує Ansible ( ansible.com/home ).
Рейд Бломкіст

Деякі інші альтернативи, якщо вас цікавить, saltstack.com та docker.com . Обидва виглядають багатообіцяюче, але я не мав жодного шансу попрацювати.
beeplogic

1
Я експериментував з capistrano-ash: github.com/augustash/capistrano-ash
pzirkind

Я думаю, що Рейд має на чомусь, Алан: Відповідь. Він не вимагає встановлення агента (працює з ключами ssh +) на клієнтах, це декларативна система, тож вона ідентична, і, як правило, я виявив, що за допомогою нього я залишаю "робити одну справу, роби це просто, і зроби це добре "унікс-подібне почуття порівняно з більш надійними системами, такими як шеф-кухар, лялька та сіль. Минуло, як ви опублікували це спочатку, будь-які оновлення ваших думок після роботи з шеф-кухарем деякий час?
Брайан 'BJ' Hoffpauir Jr.

Відповіді:


6

Майже неможливо мати набір підпрограм усіх розмірів. Я успішно написав сценарій Bash, який виконує chef-clientзапуски у списках хостів, наданих knife search. Процедури виглядають приблизно так ...

Сервер шеф-кухарів з відкритим кодом 10.18.2 на Ubuntu 12.04 LTS

  1. Ініціалізуйте змінні
  2. Отримайте останній хеш версії від GitHub для $branch
  3. Вимкніть моніторинг доступності, щоб запобігти оповіщенням про стан HTTP 503
  4. Переключіть всі хости веб- і утиліти в режим обслуговування
  5. Розгорнути утиліту
    1. Зупиніть крон Magento та всіх працівників Resque
    2. Адреса залежності файлової системи
    3. Шеф-кухар перевіряє визначений перегляд як новий реліз
    4. Адреса залежності Magento (пакети, модулі, файлова система, дозволи)
    5. Оновіть усі завдання та сценарії Cron для автоматизації
    6. Розгорнути всі модулі (композитор)
    7. Очистити кеш за допомогою n98-magerun.phar
    8. Запустити будь-які міграції за допомогою n98-magerun.phar
    9. Повторно ввімкніть Magento cron
    10. Почніть ресквеєрів
  6. Розгорніть перший веб-хост
    1. Адреса залежності файлової системи
    2. Шеф-кухар перевіряє визначений $revisionяк новий реліз
    3. Адреса залежностей від Magento
    4. Розгорніть всі модулі Magento
  7. Позначте нове розгортання в New Relic
  8. Увімкнути служби моніторингу доступності
  9. Вимкнути послуги балансування завантаження для всіх інших веб-хостів
  10. Продовжуйте розгортання веб-хостів, послідовно виводячи їх в Інтернет
  11. Виконайте шеф-кухарські процедури для господарів пошуку

Джерело: https://gist.github.com/parhamr/6177160#file-2-deployment


4

Ось як я підійшов до цієї сфери під час носіння бажаю бути роллю sysadmin / devops. Більшість наступних буде лише загальними принципами, яких я намагаюсь дотримуватися, а не певними шеф-кухарями.

Я в кінцевому підсумку поїхав з Лялькою, бо знайшов там більше ресурсів у той час і мені стало легше забрати для мене.

Я переглянув різні попередньо вбудовані модулі, доступні для таких речей, як apache, php5 і т. Д. Багато з них, здавалося, роблять набагато більше, ніж мені потрібно, і будучи настільки незнайомими з платформою, що я не вірив, що відбувається. Я вирішив, що для мене буде простіше просто визначити, що мені потрібно зробити для кожного типу вузлів.

Я розпочав процес, забезпечивши місцеве середовище розвитку команди (vargrant + віртуальна скринька). Для кожного сервісу / компонента я створив модуль: php5, apache2, redis, mysql тощо.

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

Під час перегляду та написання рецептів / шаблонів слід розглянути, як можна їх повторно використовувати / узагальнити. Не важко кодуйте такі речі, як шляхи або користувачі / групи, які можуть змінюватися між дистрибутивами / проектами / середовищами. Оскільки ви дивитесь на узагальнений підхід, я гадаю, що велике перешкода буде мати справу з відмінностями між розподілами * nix.

Найголовніше - тримати просто. Автоматизувати / стандартизувати найбільш важливі / трудомісткі частини навколишнього середовища. Ітерація, еволюція.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.