Автоматическое обновление drupal 8, 9

Главные вкладки

Аватар пользователя chei1ahJoh8K chei1ahJoh8K 6 марта 2021 в 5:50
1

Посте 3х месяцев тестирования и отладки у меня заработало автоматическое обновление модулей и друпала 8, 9. Я настроил свой сайт на автоматические обновления через командную строку. В будущем друпал планируют ввести автоматические обновления. Есть проект модуля но он не доработан.

Предварительно надо:

  1. Система тестировалась на ubuntu 20.04
  2. Установить drush, composer, duplicity, mutt
  3. Перевести сайт полностью на использование composer
  4. Желательно выставить в конфигурации сайта запуск крона 12 часов .

Вся проверка отрабатывает следующим образом:

STR=$(vendor/bin/drush core:requirements)
SUB='Требуется обновление|Не безопасно'
if grep -q -E "$SUB" <<< "$STR"; then
  echo $SUB
 /var/www/$dirtocreate/updatemodules.sh
else
  echo "Обновлений  нет"
fi

Порядок установки такой:

  1. устанавливаем скрипты. скрипт проверки ~/.etc/checkandupdate.sh , бэкапа ~/.etc/backup5.sh и обновления /var/www/jura12ru/updatemodules.sh.
  2. прописываем скрипт проверки в cron системы. crontab -e

    @daily /home/username/.etc/checkandupdate.sh

Источник, более подробно.

upd 1: проверку подов завершения composer и drush и также проверку http заголовка >400. файлы по ссылке.

ВложениеРазмер
Иконка простого текстового файла проверка обновления1.22 КБ
Иконка простого текстового файла бэкап сайта455 байт
Иконка простого текстового файла обновление друпал332 байта
Иконка простого текстового файла пример вывода при обновлении5.32 КБ

Комментарии

Аватар пользователя gun_dose gun_dose 6 марта 2021 в 11:48
1

Хорошее дело, но к автоматическому обновлению неплохо бы тесты иметь. А ещё интересно, допустим, если есть патчи на какие-то модули, и они не применятся при обновлении, скрипт как-нибудь уведомит об этом?

Аватар пользователя chei1ahJoh8K chei1ahJoh8K 6 марта 2021 в 14:09

какие тесты имеется ввиду? я 3 месяца тестировал. думаю можно еще месяц тестировать, а потом опубликовать на английском форуме. наверно это открытый бета тест. несколько раз корректно обновилось ядро и модули.
предупреждение что есть обновление присылает сайт. весь вывод работы скрипты присылается на локальную почту, посмотреть можно консольной программой mutt. устанавливать специальную программу для почтовых ящиков не надо. я устанавливал только для отправки с сайта postfix и консольная отправка bsd-mailx. вывод работы скрипта в приложенном файле.
в любом случае при каждом запуске делается инкрементальный бэкап.

Аватар пользователя gun_dose gun_dose 6 марта 2021 в 16:47
1

Тест имеется в виду тест сайта. Было такое неоднократно, что composer update проходит штатно, drush updb тоже проходит штатно, а на каких-то страницах по итогу 500 ошибка. В большинстве случаев было бы достаточно пройти все типовые страницы и удостовериться, что везде отдаётся 200 код. Ну то есть дёрнуть главную, страницу с новостью, страницу с товаром и т.д.

Аватар пользователя ivnish ivnish 6 марта 2021 в 15:53
2

Вот именно из-за патчей я против автообновления. Плюс - обновляться на проде плохая идея. Был же в прошлом году случай, когда патч-релиз при просмотре ноды давал WSOD

Аватар пользователя adano adano 6 марта 2021 в 17:52
1

Автоапдейт на Друпале - это провальная идея/реализация.
Сколько тем/сообщений/слёз в формате "Обновил(а) Друпал, помогите"...

И это НИКОМУ и НИКОГДА не изменить.

P.S. Нанимайте специалистов. Это единственное, рабочее решение. Особенно, если не делали обновлений от года и больше.

Аватар пользователя dimitriy4k dimitriy4k 8 января 2022 в 1:36

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

Аватар пользователя marassa marassa 8 января 2022 в 7:40
2

То есть тестирование возлагается на пользователей сайта, а они уже в случае чего доложат разработчику. Замечательное решение.