2014-11-03 2 views
2

У нас есть сервер Gitlab, работающий в нашем офисе на сервере ubuntu. Я делаю автоматическое развертывание, используя post-receive hook из каждого репо. Это то, что я сделал,Автоматическое развертывание с gitlab

  1. Я написал сценарий оболочки в файле после приема, чтобы направить код с сервера gitlab на наш фактический производственный сервер.
  2. Итак, у всех репозиториев на нашем сервере gitlab есть пост-приемный крючок для автоматического развертывания.
  3. Я установил git bare repo на сервер производства для получения кода gitlab-сервера.
  4. В голое репо сервера производственного сервера я написал еще один пост-приемный крючок для развертывания кода с помощью GIT_WORK_TREE и перезапуска сервера nginx в том же кэше post-receive.

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

Сервер производства: убунту 14.04LTS, Вебсервер Производство: Nginx, местный мерзавец сервер: gitlab.

UPDATE: Я хотел сделать это сейчас, потому что у меня была проблема с оболочкой gitlab, как объяснил @Ciro Santilli. И я также делаю git push production как ссылка ответа @Ciro Santilli, упомянутая после того, как у меня возникла проблема с оболочкой gitlab. Но все, что я хотел сделать, это то, что Gitlab_CI делает, push to master branch наш производственный сервер должен быть обновлен. Я попробую с Gitlab_CI, но я хотел знать, есть ли другой инструмент, чтобы сделать то же самое.

ответ

3

EDIT: с Custom Hooks feature, старые причины, по которым не используются крючки, больше не применяются, если у вас есть доступ к файловой системе. Тем не менее, я по-прежнему рекомендуем использовать CI, потому что, как это:

  • проще в обслуживании, особенно с .yamlconfiguration inside the repository
  • более изолированном из хранилищ, тем меньше вероятность сломать вещи

Причина неиспользования крючков перед функцией Пользовательских крючков:

  • они являются общими для всех операций РЕПО
  • они могут создавать конфликты слияния при обновлении gitlab оболочки
  • они являются безопасностью важна для gitlab и прикасаясь к ним открывает вам уязвимость

много, как описано в: Gitlab repository mirroring

Если не указано больше о вашем чем вы хотите это сделать с Git, в GitLab нет ничего конкретного, и ответы будут такими же, как и для общей проблемы Git: Deploy a project using Git push

Если у вас есть более конкретный запрос может быть служба, которая делает то, что вы хотите: https://github.com/gitlabhq/gitlabhq/tree/d7c50b4a95b5530ae0e2f5249cfd9a419dd940c6/app/models/project_services, но я оставил бы это для другого более конкретного вопроса.

+0

Gitlab_CI хороший, я попробую один раз. – niren

+0

будет [правдоподобным] (http://www.ansible.com/application-deployment) полезным для моего автоматического развертывания? – niren

+0

@niren Я никогда не касался правды, поэтому не знаю = ( –

Смежные вопросы