silverstripe

Ansible Роль: silverstripe

Описание

Silverstripe – это универсальный фреймворк с открытым исходным кодом для создания веб-сайтов. Эта роль разворачивает установку Silverstripe по вашему выбору на сервере LAMP.

Ключевые особенности этой роли включают:

  • Минимальные требования для развертывания -> возможно развертывание в любом месте
  • Сохранение выпусков -> быстрая откатка в случае ошибки
  • Развертывание без простоев -> развертывание без прерывания работы
  • Готовность к CI -> возможность указания тегов или актуализация веток
  • Поддержка резервного копирования -> запуск скриптов резервного копирования перед очисткой и созданием

Развертывание без простоев

По умолчанию эта роль развертывает любую версию без простоев. Это означает, что процессы сборки и очистки происходят до того, как фактический код будет связан с использованием html/index.php. Это приносит определенные преимущества, так как ни один пользователь не теряет доступ к сайту, что позволяет выполнять развертывание в критические моменты работы. Silverstripe в большинстве случаев может быть развернут таким образом, так как структура базы данных в основном обратно совместима. Единственные моменты на момент написания этого документа, когда это может вызвать проблемы:

  • Удаление DataObjects
    • Silverstripe не удаляет таблицу, а добавляет префикс deprecated_
  • Изменение значений Enum

Эти сценарии очень специфичны и на практике не должны происходить, так как это признак плохого планирования со стороны разработчика.

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

Установка

ansible-galaxy install syntro_gmbh.silverstripe

Требования

  • Composer
  • Git

Зависимости

Нет, но убедитесь, что Composer и Git установлены на хосте, на который вы разворачиваете.

Использование

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

Веб-корень и сгенерированные файлы

Эта роль использует следующую структуру каталогов для работы вашего приложения:

{{ WorkingDir }}/
├── {{ current }}
│   ├── .htaccess
│   ├── index.php
│   ├── assets --> ../shared/assets
│   └── _resources --> ../releases/<current sha>/_resources
├── releases/
│   ├── <current sha>/
│   │   ├── .git
│   │   └── ...
│   └── <other sha>/
│       ├── .git
│       └── ...
├── shared/
│   └── assets/
└── logs/

Ваш веб-корень должен указывать на каталог {{ WorkingDir }}/{{ current }}/. Вы можете настроить эти каталоги, используя silverstripe_working_dir и silverstripe_current_dir_name соответственно.

Создание и обновление базы данных и выполнение резервного копирования

Чтобы получить Silverstripe с новой установкой, необходимо создать или обновить базу данных. По умолчанию эта роль выполняет стандартную задачу сборки, сочетая её с параметром flush=1 перед обновлением любых файлов в веб-корне.

Вы можете добавить больше команд, но не забудьте снова добавить команду сборки, используя silverstripe_provisioning_cmds. Это также то место, где вы можете добавить любые команды резервного копирования, которые вам могут понадобиться. (Вы можете использовать нашу роль restic для установки средств резервного копирования и создания скриптов автоматически.) Добавляя эти скрипты перед этапом сборки, вы получаете самую последнюю версию вашей установки на случай, если вам придется откатиться.

Развертывание без простоев

Эта роль развертывает версию silverstripe без простоев. Это означает, что процессы сборки и очистки произойдут до того, как фактическая кодовая база будет связана с использованием index.php. Это приносит некоторые преимущества, так как ни один пользователь не будет заблокирован от использования сайта, что делает возможным развертывание в любое время. Silverstripe в большинстве случаев может быть развернут таким образом, так как структура базы данных в основном обратно совместима. Единственные моменты на момент написания этого документа, когда это может вызвать проблемы:

  • Удаление DataObjects
    • Silverstripe не удаляет таблицу, а добавляет префикс deprecated_
  • Изменение значений Enum

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

Переменные роли

Проверьте файл defaults, чтобы понять, что вы можете контролировать.

Минимальный пример плейбука

- hosts: all
  vars:
    silverstripe_project_repository: https://github.com/silverstripe/demo.silverstripe.org
    silverstripe_project_version: master
    silverstripe_ss_database_name: silverstripe
    silverstripe_ss_database_username: root
    silverstripe_ss_database_password: root
  roles:
    - silverstripe

Автор

  • Маттиас Лейтенеггер

Лицензия

MIT

Авторские права

(c) 2020, Syntro GmbH

О проекте

Role to deploy a Silverstripe installation.

Установить
ansible-galaxy install syntro-opensource/ansible.silverstripe
Лицензия
mit
Загрузки
1012
Владелец