Посте 3х месяцев тестирования и отладки у меня заработало автоматическое обновление модулей и друпала 8, 9. Я настроил свой сайт на автоматические обновления через командную строку. В будущем друпал планируют ввести автоматические обновления. Есть проект модуля но он не доработан.
Предварительно надо:
- Система тестировалась на ubuntu 20.04
- Установить drush, composer, duplicity, mutt
- Перевести сайт полностью на использование composer
- Желательно выставить в конфигурации сайта запуск крона 12 часов .
Вся проверка отрабатывает следующим образом:
SUB='Требуется обновление|Не безопасно'
if grep -q -E "$SUB" <<< "$STR"; then
echo $SUB
/var/www/$dirtocreate/updatemodules.sh
else
echo "Обновлений нет"
fi
Порядок установки такой:
- устанавливаем скрипты. скрипт проверки ~/.etc/checkandupdate.sh , бэкапа ~/.etc/backup5.sh и обновления /var/www/jura12ru/updatemodules.sh.
- прописываем скрипт проверки в cron системы. crontab -e
@daily /home/username/.etc/checkandupdate.sh
upd 1: проверку подов завершения composer и drush и также проверку http заголовка >400. файлы по ссылке.
Вложение | Размер |
---|---|
проверка обновления | 1.22 КБ |
бэкап сайта | 455 байт |
обновление друпал | 332 байта |
пример вывода при обновлении | 5.32 КБ |
Комментарии
Хорошее дело, но к автоматическому обновлению неплохо бы тесты иметь. А ещё интересно, допустим, если есть патчи на какие-то модули, и они не применятся при обновлении, скрипт как-нибудь уведомит об этом?
какие тесты имеется ввиду? я 3 месяца тестировал. думаю можно еще месяц тестировать, а потом опубликовать на английском форуме. наверно это открытый бета тест. несколько раз корректно обновилось ядро и модули.
предупреждение что есть обновление присылает сайт. весь вывод работы скрипты присылается на локальную почту, посмотреть можно консольной программой mutt. устанавливать специальную программу для почтовых ящиков не надо. я устанавливал только для отправки с сайта postfix и консольная отправка bsd-mailx. вывод работы скрипта в приложенном файле.
в любом случае при каждом запуске делается инкрементальный бэкап.
Тест имеется в виду тест сайта. Было такое неоднократно, что composer update проходит штатно, drush updb тоже проходит штатно, а на каких-то страницах по итогу 500 ошибка. В большинстве случаев было бы достаточно пройти все типовые страницы и удостовериться, что везде отдаётся 200 код. Ну то есть дёрнуть главную, страницу с новостью, страницу с товаром и т.д.
в принципе можно написать скрипт проверки с помощью curl например. я сделаю.
сделал проверку подов завершения composer и drush и также проверку http заголовка >400. полная статья и исходники тут.
Вот именно из-за патчей я против автообновления. Плюс - обновляться на проде плохая идея. Был же в прошлом году случай, когда патч-релиз при просмотре ноды давал WSOD
Автоапдейт на Друпале - это провальная идея/реализация.
Сколько тем/сообщений/слёз в формате "Обновил(а) Друпал, помогите"...
И это НИКОМУ и НИКОГДА не изменить.
P.S. Нанимайте специалистов. Это единственное, рабочее решение. Особенно, если не делали обновлений от года и больше.
Я в крон поставил автообновление для друпал 9, написал на bash, там композер и drush работают, уже полгода полёт нормальный, ничего не ломается, правда перед апом делается автоматический бэкап их там 10 штук и нумерация по кругу ходит, т.е. всегда есть возможность бэкнуться назад в случае поломки
То есть тестирование возлагается на пользователей сайта, а они уже в случае чего доложат разработчику. Замечательное решение.