Использование yiic для обновления приложения через github

У нас есть приложение, написанное на Yii 1.1, мы поддерживаем и контролируем все аспекты приложения и серверов. Он живет на разных серверах. Мы поддерживаем кодовую базу локально через git и публикуем информацию в нашем репозитории GitHub. Когда мы выпускаем обновления или исправления ошибок, мы должны заходить в каждый блок и обновлять их по одному. Это только отнимает все больше времени, чем больше приложений и серверов мы разворачиваем.

Мы надеемся упростить git pull процесс, делая это через раздел администратора, удаленно. Мы думали о подключении к функции GitHub WebHooks, но не хотим, чтобы она была настолько автоматической. Мы хотим контролировать, какие приложения получают обновления. Далее мы подумали об использовании yiic команда, которая будет жить в кодовой базе и может запускать оболочку git pull скрипты. Безопасность является главным приоритетом во всем этом.

Предвидите ли вы проблемы безопасности, если мы создадим класс yiic, который будет обрабатывать определенные git Команды со слоем маркеров безопасности, которые аутентифицируются от контроллера к yiic команды? Может быть, кто-то сделал нечто подобное и может пролить свет на их подход и проблемы?

1 ответ

Я создал экран администратора, где я мог легко позволить каждому пользователю переключаться с филиала в его личной среде разработки (без доступа к серверу). Я сделал это с помощью exec в PHP и использование клиентских перехватов git (post-merge) https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks для обновления прав всех папок и файлов (Вы не можете быть уверены, что они сразу после тяги). Для слияния и тому подобного я использую bitbucket API.

Для нашей живой среды и предварительной жизни мы используем deploybot.com. Это загрузит файлы, если обновится определенная ветка. Предварительно живая среда обновится автоматически. Для живого окружения я должен нажать кнопку (это будет автоматизировано, так что это будет сделано с помощью API понедельника утром, прежде чем я приеду на работу). Если бы это было просто потянув, я бы использовал такой сервис. Хотя это не тянет, но загрузить / удалить новые, измененные или удалить файлы. В админ-панели вы можете добавить кнопку для вызова API, которая позволяет deploybot развернуть код. Это просто проще и бесплатно или очень дешево (в зависимости от ваших потребностей)

По поводу безопасности. Я предполагаю, что это будет зависеть от безопасности вашего экрана администратора и вашей учетной записи GitHub. Если у людей есть доступ к вашему коду GitHub, они могут изменить ваш живой код, но это действительно всегда "проблема". Если у них есть доступ к вашему экрану администратора, я полагаю, у вас больше проблем, чем у них, имеющих возможность извлекать код.

Другие вопросы по тегам