Как лучше всего синхронизировать содержимое нескольких каталогов с выпусками из репозитория GitHub?

Я работаю в компании, которая поддерживает множество настраиваемых плагинов и тем WordPress для нашей сети из бесчисленного множества сайтов WordPress. Менеджеры репо настроили его так, чтобы веб-перехватчики добавлялись в репозитории и выталкивали выпуски с главного сервера, на котором размещены файлы, каждый раз, когда публикуется новый выпуск (по крайней мере, я почти уверен, что это то, что происходит).

Однако я запускаю несколько веб-серверов, которые также используют эти плагины, и каждый раз, когда публикуется новый выпуск, я вручную обновляю его через SSH или SFTP. Поскольку я управляю множеством сайтов WordPress (я выбрал несколько экземпляров на одном сайте, а не установку на нескольких сайтах) и есть много плагинов, которые нужно поддерживать в актуальном состоянии, это быстро устаревает.

Я начал писать плагин WordPress, который позволяет мне указывать установленные плагины и темы на их URL-адреса GitHub и делать так, чтобы я мог визуально видеть, когда обновления доступны в пользовательском интерфейсе WordPress, и делать обновления таким образом, и т. Д. Пока этот подход перспективен.

Однако это решение привязано к WordPress, и я надеюсь на более многоразовое решение, включающее командную строку и задание cron, и / или способ для меня запустить команду, которая проверяет, есть ли в новых выпусках были созданы и обновляют локальные каталоги, в которых хранятся эти темы и плагины.

Мне кажется, что это достаточно распространенный вариант использования, где должно быть стандартизованное решение, но каждый раз, когда я его использую в Google, он указывает мне направление настройки веб-перехватчиков через репозитории GitHub, чего я не делаю. я не хочу этого делать, потому что A. У меня нет прав на изменение настроек этих репозиториев (хотя я полагаю, я мог бы просто их разветвить) и B. Я бы не хотел вносить изменения в веб-перехватчики в любое время, когда мой веб-сервер переносится (например, я сейчас готовлюсь перенести все на AWS). Поэтому вместо того, чтобы репо указывать на мой сервер (-ы) через веб-перехватчики, я бы предпочел, чтобы серверы слушали новые выпуски GitHub через cron, если это имеет смысл.

Операционная система, с которой я сейчас имею дело, - это RHEL 7, хотя в ближайшем будущем я либо обновлюсь до RHEL 8, либо перейду на Ubuntu.

Дайте мне знать, есть ли лучшее сообщество, которое могло бы задать этот вопрос, если я неправильно использую какую-либо терминологию или думаю об этом неправильно.

0
задан 16 March 2021 в 18:20
1 ответ

Я не совсем уверен, что это так, но похоже, что вам нужен Ansible playbook. Посмотрите, соответствует ли он вашим потребностям:

Если у вас есть управляющий/главный сервер с SSH-подключением к целям, вам просто нужно создать playbook и запустить его на целевых машинах. Вы можете напрямую запустить git clone, используя любой удобный для вас модуль Ansible. Ansible такой мощный.

0
ответ дан 6 August 2021 в 00:09

Теги

Похожие вопросы