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

Аватар пользователя jura12 jura12 6 марта в 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. файлы по ссылке.

Комментарии

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

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

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

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

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

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

Аватар пользователя jura12 jura12 6 марта в 16:55

в принципе можно написать скрипт проверки с помощью curl например. я сделаю.

Аватар пользователя jura12 jura12 17 марта в 6:18

сделал проверку подов завершения composer и drush и также проверку http заголовка >400. полная статья и исходники тут.

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

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

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

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

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

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