Публикация сайтов Windows Azure с помощью Git

Git — это популярная система управления распределенными версиями с открытым исходным кодом. Новые сайты на Windows Azure могут использовать репозиторий Git, чтобы быстро и легко передавать изменения кода на сайт. В этой статье мы расскажем, как использовать систему Git для публикации на веб-сайте Windows Azure.

Примечание. Многие описанные в этой статье команды Git выполняются автоматически при создании веб-сайта с помощью инструментов командной строки Windows Azure для Mac и Linux.

Выполните следующие действия:

  • Установка системы Git
  • Создание локального епозитория
  • Добавление веб-страницы
  • Включение репозитория веб-сайта
  • Добавление веб-сайта в качестве удаленного репозитория
  • Публикация и повторная публикация веб-сайта
  • Устранение проблем

Установка Git

Действия по установке Git зависят от операционной системы. Сведения о конкретных дистрибутивах операционных систем и руководство по установке приведены в разделе «Установка системы Git».

Примечание. В некоторых операционных системах будут доступны версии как командной строки, так и графического пользовательского интерфейса Git. В инструкциях данного руководства используется версия командной строки.

Создание локального репозитория

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

  1. Откройте окно командной строки, например GitBash (Windows) или Bash (Unix Shell). В ОС X доступ к командной строке осуществляется с помощью приложения Terminal.

  2. В командной строке укажите каталог, в котором будет создан веб-сайт. Например, cd needsmoregit.

  3. Чтобы инициализировать новый репозиторий Git, используйте следующую команду:

    git init

Она должна возвратить сообщение вида Initialized empty Git repository in [path] .

Добавление веб-страницы

Веб-сайты Windows Azure поддерживают приложения, созданные с помощью различных языков программирования. В этом примере мы будем использовать статичный HTML-файл. Сведения о публикации веб-сайтов, созданных с помощью других языков программирования, в Windows Azure приведены в Центре разработчиков Windows Azure.

  1. Используя текстовый редактор, создайте в корневой папке репозитория Git файл с именем index.html. Добавьте фразу Hello Git! в качестве содержимого, а затем сохраните файл.

  2. Проверьте в командной строке, что используется каталог, созданный в репозитории. С помощью следующей команды добавьте файл index.html в репозиторий:

    git add index.html

  3. Затем зафиксируйте изменения в репозитории, воспользовавшись командой:

    git commit -m "Adding index.html to the repository"

    Результат работы команды будет выглядеть примерно так:

    [master (root-commit) 369a79c] Adding index.html to the repository 1 file changed, 1 insertion(+) create mode 100644 index.html

Включение репозитория веб-сайта

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

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

clip_image002

В нижней части страницы в разделе quick glance выберите Setup Git publishing.

clip_image004

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

clip_image006

Через некоторое время появится сообщение о готовности репозитория. Под сообщением в разделе Push my local files to Windows Azure будет находиться список команд, используемых для отправки локальных файлов в приложение Windows Azure.

clip_image008

Добавление веб-сайта в качестве удаленного репозитория

Поскольку локальный репозиторий уже инициализирован и в него добавлены файлы, пропустите шаги 1 и 2 инструкций, отображаемых на портале. С помощью командной строки перейдите в каталог веб-сайта и выполните команды, перечисленные в шаге 3 инструкций на портале. Например:

Команда remote добавляет именованную ссылку на удаленный репозиторий –– в этом случае это ссылка с именем azure для репозитория веб-сайта Windows Azure.

Публикация и повторная публикация веб-сайта

Используйте следующую команду для перемещения текущего контента репозитория из локального репозитория в удаленный репозиторий azure:

Появится запрос на ввод пароля, созданного ранее при настройке репозитория. Введите пароль. Результат выполнения действий будет выглядеть примерно так:

Примечание. Предполагается, что запросы на помещение в репозиторий, созданный для веб-сайта Windows Azure, будут отправляться для его главной ветви, а затем использоваться в качестве контента веб-сайта.

На портале в нижней части щелкните ссылку BROWSE, чтобы проверить, развернут ли файл index.html. Откроется страница с приветствием Hello Git!

clip_image010

С помощью текстового редактора добавьте в файл index.html слово Yay!, а затем сохраните файл.

В командной строке выполните следующие команды, чтобы добавить и зафиксировать изменения, а затем поместить их в удаленный репозиторий:

После выполнения команды push обновите браузер. Обратите внимание, что теперь на странице отображается последнее зафиксированное изменение.

clip_image012

Устранение проблем

При использовании системы Git для публикации на веб-сайте Windows Azure возникают следующие ошибки и проблемы.


Симптом . Не удается разрешить hostname узла.

Причина . Эта ошибка возникает в том случае, если при создании удаленного репозитория azure был введен неверный адрес.

Решение . Воспользуйтесь командой git remote –v для указания всех удаленных репозиториев и связанных URL-адресов. Убедитесь, что для удаленного репозитория azure указан правильный URL-адрес. При необходимости удалите и создайте повторно удаленный репозиторий, используя правильный URL-адрес.


Симптом . Не указано ни одной ссылки; ничего не происходит. Возможно, следует указать ветвь как ‘master’.

Причина . Эта ошибка возникает в том случае, если при выполнении операции помещения не указана ветвь и не задано значение ush.default, используемое системой Git.

Решение . Выполните операцию помещения повторно, указав главную ветвь. Например:

git push azure master


Симптом . src refspec [имя_ветви] не имеет совпадений.

Причина . Эта ошибка возникает в том случае, если осуществляется попытка помещения в ветвь, отличную от master, в удаленном репозитории azure.

Решение . Выполните операцию помещения повторно, указав главную ветвь. Например:

git push azure master


Симптом . Ошибка: изменения зафиксированы в удаленном репозитории, но веб-сайт не обновлен.

Причина . Эта ошибка возникает в том случае, если вы развертываете приложение Node.js, содержащее файл package.json, в котором указаны дополнительные необходимые модули.

Решение . До появления этой ошибки в журнале должны быть зарегистрированы сообщения, содержащие текст npm ERR!. В них может быть указан дополнительный контекст причины сбоя. Далее перечислены известные причины этой ошибки и вывода сообщения npm ERR!.

  • Неверно сформированный файл package.json . npm ERR! Couldn't read dependencies.
  • Встроенный модуль, не имеющий бинарного дистрибутива для Windows .
    • o npm ERR! `cmd "/c" "node-gyp rebuild"` failed with
      ИЛИ
    • o npm ERR! [modulename@version] preinstall: `make || gmake`

Дополнительные ресурсы

Comments

  • Anonymous
    August 21, 2012
    А не проще открыть в Azure свой WebSite, взять строку в Git clone URL и сделать git clone на компе?