Контроль версий для моего веб-сервера - PullRequest
4 голосов
/ 01 июля 2010

Я создаю веб-приложение на основе Web2Py и делаю большую часть своей разработки прямо на удаленном сервере разработки EC2.Я хотел бы контролировать версию всей системы, включая все модули Python, веб-страницы и файлы конфигурации Apache.Файлы, очевидно, разбросаны по моей коробке с Linux, но я бы хотел иметь возможность оформить / зафиксировать с помощью одной команды.Я новичок в SVN из командной строки. Есть ли способ сделать это, используя какой-то виртуальный каталог с символьными ссылками?

Любые мысли приветствуются.Спасибо.

Ответы [ 5 ]

3 голосов
/ 01 июля 2010

Для одного разработчика Git ( book ) лучше подходит для удобства.Вы можете очень легко «зафиксировать» локально и передать изменения на удаленный сервер, который может быть вашим экземпляром EC2, ему просто нужно SSH-соединение для работы.Но я бы, вероятно, выбрал хост-решение, такое как GitHub или любое другое решение для хостинга с SSH и возможностью установки Git.Я использую GitHub для моих публичных проектов и DreamHost для моих "частных" проектов.

Вы поместите все свои файлы в одну структуру каталогов, а затем развернете их , используя некоторый автоматизированный процесс.Для Python я бы предложил что-то стандартное для Python, например distutils или даже easy_install .В более сложных средах вы должны рассмотреть что-то вроде Chef , что будет чрезвычайно важно, если вы начнете масштабировать до более чем одного экземпляра EC2.Даже если многопользовательскому серверу не нужно что-то вроде Chef для повторяющихся автоматических развертываний, это то, что эффективный разработчик делает.

Просто не поддавайтесь искушению написать «быстрый и грязный» сценарий оболочки для развертываний, они хрупкие иочень необслуживаемый.Если вам не нравится повар, изучите альтернативы и найдите время, чтобы изучить их.Потраченное время будет восполнено.

3 голосов
/ 01 июля 2010

Если вы уже начали разработку, простым способом было бы организовать дерево SVN, а затем соединить по sym модули и httpd.confВы также можете использовать virtualenv и проверять только в конфигурации virtualenv.

1 голос
/ 01 июля 2010

Я лично использую git для управления веб-сайтами и файлами конфигурации.

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

В зависимости от того, какую ОС вы используете, etckeeper хорош и хорошо интегрируется с системами на основе Debian / apt.

1 голос
/ 01 июля 2010

Как и пушистый леденец, я бы очень рекомендовал git.Особенно из-за его низкой грязной поверхности.SVN оставляет .svn папок в каждой подпапке вашего репо, это может стать дорогостоящим, если ваши автоматические скрипты копируют / вставляют их.

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

В качестве альтернативы

Вы можете немного сегментировать репо и использовать символические ссылки для подключенияна вашем веб-сайте, однако, вероятно, плохая практика направлять ваш производственный источник в репозиторий, я все равно использовал бы вышеописанный метод сценария репликации.

0 голосов
/ 01 июля 2010

Когда-нибудь задумывались о призраке виртуальной машины на S3?Это почти как облачная версия «управления версиями для плохого человека».

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

...