Управление веб-проектом SFTP на нескольких удаленных веб-хостах одновременно

251
mimet

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

Таким образом, работа со стеками LAMP и для клиента является проблемой одновременной работы на трех разных стволах одного и того же проекта. Итак, на данный момент есть три хоста (на одном сервере):

develop.myproject.ext testing.myproject.ext production.myproject.ext 

Насколько это возможно, у проекта есть такой курс: 1. новые developверсии разрабатываются в версии проекта 2. только что завершенные, они «копируются» в testingверсию, где тестирование выполняется заказчиком 3. как только все работает и клиент одобряет, об изменениях сообщается в productionверсии

Я использую Elementary OS и Sublime Text 3 с плагином SFTP (каждый раз, когда файл редактируется, сохранение автоматически загружается на хост назначения).

На данный момент я использую метод, который не очень удобен, то есть файл, в котором я отслеживаю обновленные файлы для каждого хоста, который очень дисперсионный (мне нужно знать для каждого хоста, куда я загрузил какой файл) и Вероятно, возникнут конфликты в том случае, если они одновременно являются разработкой и тестированием (например, у меня есть версия 1.2 developфайла, 1.1 testingи 1.0 production).

Есть ли методология, программа, короче говоря, что-то, что может облегчить это управление?

Я уже оценил возможность использования Git (в частности, Gitlab), но это предполагает, что он должен каждый раз проходить из терминала (или использовать плагин в Sublime Text) для загрузки файла и по-прежнему иметь три отдельные ветви, которые, кажется, однако, неуправляемый (мне не нужно иметь всю историю и функции, которые мне предлагает git).

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

Спасибо всем, кто решит мне помочь.

3
Методология, которую вы ищете, называется «непрерывная интеграция». Это может быть автоматизировано, используя что-то вроде бамбука или аналогичных продуктов. Burgi 6 лет назад 0
Спасибо за предложение, я не знал, что есть такие инструменты. Я оцениваю лучший вариант для использования. mimet 6 лет назад 0

1 ответ на вопрос

1
jrtapsell

Решение git должно хорошо работать с ветками для каждой сборки

  • развивать
  • тестирование
  • производство

Соответствующая ветвь может быть быстро переадресована в новую точку каждый раз, что упрощает синхронизацию трех версий.

пример

(1 | DTP)

Вы добавляете 2 коммита для разработки

(1 | TP) -> (2) -> (3 | D)

Как только вы счастливы, вы быстро тестируете

(1 | P) -> (2) -> (3 | DT)

Как только вы довольны этим, вы быстро перешли с производства на тестирование.

(1) -> (2) -> (3 | DTP)

Коммиты здесь могут быть слияниями в ветвях объектов или любым рабочим процессом, который вы предпочитаете

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

Если это все веб - серверы, то вы можете использовать сервер как кэдди с плагином, как это, который будет автоматически синхронизировать себя с репо, так что скрипт будет ненужный

Я не очень практичен в Superuser, поэтому я добавил новый ответ, в котором я прошу некоторые разъяснения (это было слишком долго для комментария). mimet 6 лет назад 0