Настройка TeamCity в Azure — постоянно-доступная система для командной работы в облаке

13 мая 2015 г., 14:21:31

В данной статье рассматривается настройка процесса Continuous Integration c помощью популярной системы TeamCity, на виртуальной машине в Azure. Это хорошо тем, что у нас всегда будет доступна наша система с удобным доступом и контролем над ресурсами.

*

Увеличить

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

  • конфигурирование сервера TeamCity.
  • создание образа облачного агента.
  • настройка локального GIT.
  • создание веб сайта в Azure.
  • настройка билда
  • добавление и запуск облачных агентов
  • проверка работы

Начнем по порядку.

Конфигурирование сервера TeamCity

TeamCity-сервер мы будет разворачивать на новой виртуальной машине:

Создадим в Azure новую VM.

*

Увеличить

Откроем на ней 80 порт (он будет использоваться сервером TeamCity).

*

Увеличить

Добавим через Azure консоль к нашей VM новый диск (он будет использовать для хранения данных TeamCity сервера).

*


Подключимся к созданной VM по RDP и загрузим дистрибутив TeamCity

*

Увеличить

Откроем Disk Management и инициализируем новый диск.

Установим TeamCity, в процессе выбрав только серверные компоненты.

*


Далее в качестве TeamCity Data Directory укажем новый диск.

*


Установим порт сервера TeamCity (мы будем использовать 80й порт)

*


И выберем пользователя, из-под которого будет работать сервис TeamCity (я указал System)

*


После установки откроем http://localhost/mnt и запустим процесс автоматической настройки сервера.

После нажатия кнопки Proceed выберем тип БД TeamCity (в данном примере используем Internal БД).

*

Увеличить

Далее начнется инициализация БД, после которой следует создать администратора TeamCity сервера.

*

Увеличить

Откроем в FW порт 80.

Создание образа облачного агента

Не так давно JetBrains анонсировал плагин, который автоматически позволяет создавать и запускать облачные агенты TeamCity в Azure. Во время запуска агента, используя данный плагин, создается новая виртуальная машина. Вы же в любой момент времени можете остановить облачный агент, что приведет к освобождению ресурсов и, соответственно, к экономии средств :) Мы будем использовать именно облачные агенты. Облачные агенты создаются на основе заранее подготовленного образа виртуальной машины.

Итак:
Создаем в Azure новую виртуальную машину. Мы будем создавать билд для ASP.NET сайта, который будет создан в Visual Studio 2013, а для запуска тестов у нас будет использовать MsTest. Хотя можно использовать и другие инструменты. Это не принципиально. На агент нам надо будет установить Visual Studio (я поставил Community 2013. Если у вас бесплатная подписка, то в галерее виртуальных машин вы не найдете образ с предустановленной студией и тогда вам понадобится поставить ее вручную).

*


*


Также следует открыть порт 9090. Это порт по умолчанию, который слушает агент.

*


Подключимся по RDP к созданной VM.  Скачать и установить Git for Windows. Во время установки надо отметить галку Use Git from the Command Prompt.

*


Укажем порт сервера TeamCity

*


Зададим параметры агента:
serverUrl – адрес сервера TeamCity
workDir и
tempDir
 можно оставить по умолчанию, но я для данных переменных обычно использую cпециальный диск (Temporary Storage) на VM.

*

Увеличить

Откроем порт 9090 для входящих соединений либо через FW либо командой:
netsh advfirewall firewall add rule name=«TeamCityAgentIn» dir=in action=allow protocol=TCP localport=9090

Я заметил, что после создания облачного агента (от момента запуска VM) он просто зависает на этапе инициализации и не подключается к серверу TeamCity. Возможно, это баг в технической реализацией самого JetBrains плагина, а может еще где проблема. Но, если подключить к агенту по RDP и перезапустить сервис агента вручную, то агент заработает. Я решил автоматизировать данный процесс. Вот пример, как это очень просто можно сделать:

Открыть оснастку Local Group Policy Editor (gpedit.msc).
Добавить новый Startup powershell script.

get-service «TeamCity Build Agent» | restart-service -PassThru 

*

Увеличить

Далее надо остановить VM через портал и на основе нее создать образ виртуальной машины:

*


После этого удалить VM.

Настройка локального GIT

Создадим новый репозиторий в GitHub.

*

Увеличить

*

Увеличить

И скопируем ссылку на него:

*

Увеличить

Установим GIT на локальную машину (откуда будут производиться чекины). Создадим новую папку, которая будет выступать в качестве локальной копии хранилища кода. После этого свяжем локальную папку с GitHub — используя командную строку, заходим в созданную папку и выполняем команду git clone {gitRepositoryUrl}.

*

Увеличить

Если вы работаете из корпоративной сети, то clone команда может отвалиться из-за проблем с прокси. Настроить и обойти данную коммуникационную проблему я смог только с помощью установки локального NTLM прокси сервера, который перенаправлял запросы корпоративный прокси. Дистрибутив прокси сервера можно взять здесь.

После успешной настройки следует сконфигурировать прокси для Git, для этого надо выполнить следующие команды:

git config --global http.proxy  localhost:{cntlm-proxy-port}
git config --global https.proxy  localhost:{cntlm-proxy-port}

После клонирования репозитория в папке с проектом (GIT) следует создать новое решение в Visual Studio (ASP.NET Web Form Project + UnitTestProject).

Выполним Commit и Push изменений прямо в студии.

*

Увеличить

После этого в GitHub появится ваш новый чекин.

*

Увеличить

Примечание: закоммитить изменения можно и с помощью git команд в командной строке:
git add. (добавить файлы в Git репозиторий)
git commit –am “Test commit.” (коммит изменений)
git push {git-url} (Пуш изменений из локального хранилища в GitHub)

Создание веб сайта в Azure

Через Azure консоль создать новый пустой веб сайт.

*

Увеличить

После создания сайта нажмем ссылку “Настроить развертывание в системе управления версиями” и свяжем GitHub репозиторий с новым сайтом.

Открываем настройки сайта. На вкладке настройка нас интересуют:
Url адрес GIT
Urlадрес для запуска развертывания


*

Увеличить

Если в первом URL заменить deploy на cifromgittestsite.git и передать полученную ссылку в команду git push, то получится команда запуска деплоя веб сайта.

git.exe push -f адрес

Далее надо отключить автоматическое развертывание из GitHub. Если это не сделать, каждый чекин будет приводить к автоматическому деплою сайта. А наша цель реализовать CI – выполнять деплой, только при условии успешной сборки кода и прогона юнит тестов.

Настройка билда

Откроем UI TeamCity (http://TeamCityServerDns) и создадим новый проект (Create Project).

*

Увеличить

Зададим имя проекта. Добавим новую конфигурацию билда (Create Build Configuration).

*

Увеличить

Укажем имя конфигурации.

*

Увеличить

Настроим VCS (version control system). Здесь надо заполнить тип VCS (Git), название, Fetch URL (Read only URL вашего репозитория просто заметить из ссылки доступа к репозиторию протокол https или http на git), указать бранч (у меня создан только master), и задать путь к git.exe на агенте.

*


После конфигурирования можно нажать TestConnection и проверить успешность подключения к репозиторию GitHubПосле успешной настройки VCS в CheckOut Options надо указать VCS checkout mode – Automatically on agent.

Выберем Build Steps и добавим (Add build step) шаги нашего билда.

*

Увеличить

Первый шаг – сборка нашего солюшина. Здесь надо заполнить все как на скрине:

*

Увеличить

Второй шаг – запуск тестов:

*

Увеличить

Третий шаг – деплой (команда деплоя была сформирована в процессе настройки сайта)

*

Увеличить

Должно получиться что-то подобное:

*

Увеличить

Создадим новый триггер. Здесь отмечаем галку Trigger a build on each check-in.

Добавление и запуск облачных агентов

Подключимся по RDP к виртуальной машине с сервером TeamCity.  Скачать плагин для управления облачными агентами.

Положить плагин в папку F:\plugins (диск F – TeamCityDataDirectory) и перезапустить сервис TeamCity Server.

*


Откроем TeamCity UI (меню Administrations => Plugins Lists).

В списке плагинов должен появиться новый плагин Azureintegrations.

*

Увеличить

Далее создадим через Azure консоль новый пустой Cloud Service, который будет выступать в роли репозитория для хранения инстансов агентов TeamCity.

*

Увеличить

Перейдем в Administration => Global Settings и пропишем правильный полный DNS TeamCity сервера:

*

Увеличить

Перейдем к созданию нового профиля облачного агента Administration =>Agent Cloud=> Create new profile

*

Увеличить

Здесь следует задать имя профиля, тип облака – Azure, сертификат управления и SubscriptionId от вашей подписки Azure (эти данные можно скачать по ссылке https://manage.windowsazure.com/publishsettings)

*

Увеличить

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

*

Увеличить

Примечание. Количество инстансов агентов зависит от количества открытых в firewall портов на облачном образе виртуального агента.

Пример: если для агента указан порт по умолчанию, т.е. 9090, то в том случае, если в firewall вы открыли только порт 9090, вы сможете создать только одного агента, если же в вашем образе у вас открыт диапазон от 9090-9099,то вы сможете создавать 10 агентов.

После сохранения настроек TeamCity автоматически запустит нового облачного агента.

*

Увеличить

Меню управления агентами Agents => Cloud Agent, можно управлять агентами.

*

Увеличить

Агент в процессе запуска автоматически создаст виртуальную машину:

*

Увеличить

Проверка работы

Все создано и настроено. Теперь можно приступить к проверке нашего билда.

Для этого в меню Projects можно нажимаем Run.

*

Увеличить

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

Мы создали билд триггер, т.о. если мы зачекинить новые изменения в GitHub,

*

Увеличить

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

*

Увеличить




Похожие новости

16 февраля 2016 г., 0:23:57 samsung-ativ-se1

Компании Microsoft и Samsung молчат о выпуске обновления до Windows 10 Mobile для смартфонов серии ATIV, что породило слухи, будто эти устройства не будут обновлены и навсегда останутся с Windows Phone 8.1. Один пользователей форума Reddit поделился довольно интересной историей, связанной со смартфоном...

29 января 2016 г., 13:14:17 4

Это устройство было признано самым популярным устройством на платформе Windows Phone не только три года назад, но и в настоящее время. Компания AdDuplex на днях опубликовала результаты исследования, согласно которым порядка 12,9% всех используемых сегодня смартфонов на этой мобильной платформе – это...

29 января 2016 г., 6:18:57 adduplex-jan2016-devices-global

Рекламно-аналитическая компания AdDuplex поделилась довольно интересной статистикой об устройствах на базе Windows Phone. Как выяснилось, большая часть используемых в настоящее время Windows-смартфонов, были представлены как минимум два года назад. Это можно воспринимать по-разному. Первый вариант:...

27 января 2016 г., 9:07:43 История компании Meizu

История компании начинается в 1998 года с человека по имени Хуан Сючжан, очень увлекающегося новыми гаджетами и электроникой. Он покупал в интернете новые девайсы и внедрял дома новые технологии. После чего делился в интернете, под псевдонимом Джек Вонг, впечатлениями и высказывал свои новые идеи и мнения....

26 января 2016 г., 23:55:29 Pixel C

За что мы любим Apple и ее продукты? За многое, но в частности за то, что эта компания производит и устройства, и программное обеспечение. Они созданы работать вместе, что дает продуктам от Apple многочисленные преимущества перед конкурентами. Ноутбуки на Windows редко работают так же хорошо и гладко,...


Похожие обзоры

20 января 2016 г., 18:56:58 Новинки осени: видеообзор Lumia 830 и Lumia 730 / 735

В сентябре этого года мы показали продолжение нашей новой линейки cмартфонов в лице вице-флагманской модели Lumia 830, а также двух более доступных моделей: Lumia 730 с двумя SIM-картами и Lumia 735 c поддержкой 4G. А уже в начале октября эти устройства вышли в продажу на российском рынке. После московской...

20 января 2016 г., 18:15:50 image

Добрый день, уважаемые хабровчане. Я хотел бы поделиться своими впечатлениями о новом смартфоне компании Blackberry — Blackberry Q10. На данный момент, это последнее устройство, выпущенное канадцами, а также первый QWERTY-смартфон на операционной системе Blackbery 10. Для меня это первый аппарат с клавиатурой,...

16 января 2016 г., 21:16:12 Планшет Amazon Fire 7 (2015)

И хотя два года назад планшеты различных форм и размеров разлетались, как горячие пирожки, глобальные продажи пошли на спад в последнее время. Даже Apple, основатель форм-фактора планшетов, теряет своих поклонников. Производители всё чаще ориентируются на бюджетный конец рынка, подавляя массовый рынок...

19 августа 2015 г., 23:10:49 Смартфон Blu Win JR

Blu Products, американский производитель смартфонов из Майами, основанный в 2009 году, выпустили уже 4 смартфона на Windows Phone. В прошлом году это была пара Win JR и Win HD, а в этом Win JR LTE и Win HD LTE, которые отличаются не только поддержкой LTE, но и обновленными дизайном и начинкой. Ни...

7 августа 2015 г., 22:18:47 Zenfone2-5

На мой взгляд, революцию в мобильных технологиях можно и нужно совершать не только на уровне вычислительных мощностей, но и на уровне ценника. ASUS ZenFone 2 – это смартфон с 1080p 5,5-дюймовым экраном, на Intel Atom x86 4 ядра по 1.8GHz, графикой PowerVR G6430, с 2 ГБ ОЗУ, 16 ГБ + microSDXC, 13 Мп камерой,...


Похожие отзывы

16 марта 2015 г., 14:14:39 Windows Insider принесла Microsoft более миллиона отзывов

Управляющий программой Windows Insider Габриэль Аул с радостью сообщил через свой Твиттер-аккаунт, что Microsoft получила более миллиона отзывов о новой Windows 10 от участников тестирования через приложение Feedback. Официальное представление программы Windows Insider состоялось еще в сентябре 2014...

14 марта 2015 г., 23:28:21

Windows 10 несмотря на статус предварительной версии явно сумела завоевать симпатии пользователей. Многие несмотря на возможные проблемы поставили Windows 10 на свои компьютеры, и активно участвуют в жизни сообщества вокруг программы Windows Insider. Габриэль Аул сообщил, что недавно был получен миллионный...

11 марта 2015 г., 20:20:17

Достоинства: windows 8, большое количество приложений, громкие динамики, интуитивно понятный интерфейс, оптимальное соотношение цены и качества, стильный дизайнНедостатки: куча лишних приложений Здравствуйте хороший смартфон Nokia Lumia 520,в нем много приложений,игры Xbox качество хорошее яркое,камера...

11 марта 2015 г., 18:59:18  Microsoft Lumia 535 : Lumia 535  - первый смартфон от Microsoft! Каков он? Все расскажу да покажу... ●ФОТО●

                                                               ˙·٠•●♥ ВСЕМ ПРИВЕТ ♥●•٠·˙   Как известно, в 2014 году компания Microsoft стала полноправной хозяйкой мобильного бизнеса Nokia , так что  бренд Nokia скоро прекратит свое существование. Герой моего поста -  Microsoft Lumia 535 Dual SIM - первый...

11 марта 2015 г., 9:54:27

Достоинства: android, простой в управленииНедостатки: экран бликует Ну вообще смотря для каких целей нужен планшет, от того и нужно отталкиваться. Мне с планшетами не везло особенно. Собственно мне они и не нужны, а покупала я их исключительно ребенку. Первую эту дигму я купила в доченькин годик, просто...


Похожие инструкции

28 октября 2015 г., 17:55:35 Команда Pangu обновила утилиту для джейлбрейка iOS 9-iOS 9.0.2, добавила ряд улучшений стабильности

Команда Pangu выпустила обновление для своей утилиты для джейлбрейка, способной взламывать совместимые iPhone, iPad и iPod touch. Всем тем, кто уже сделал джейл, не нужно повторять эту процедуру снова. Достаточно просто обновить "Pangu 9.0.x Untether" и "Patcyh" в Cydia. По словам разработчиков полезной...

15 июля 2015 г., 9:50:01

Добрый вечер GeekTimes. Гуляя по блогам MS наткнулся на замечательный пост с большой и «свежей» электронной библиотекой с последним обновлением от Eric Ligman, Microsoft Senior Sales Excellence Manager.Заголовок поста: Large collection of Free Microsoft eBooks for you, including: SharePoint, Visual...

14 июля 2015 г., 3:05:24 PP-1

Через две недели после выхода джейлбрейка iOS 8.4 от разработчиков из команды TaiG китайские хакеры, входящие в группировку 25PP, выпустили Mac-версию эксплоита PP Jailbreak для взлома операционки Apple. С помощью утилиты 25PP можно осуществить непривязанный джейлбрейк iOS 8.4 на iPhone, iPad и iPod...

14 июля 2015 г., 3:05:22 PP-Jailbreak-8

В понедельник состоялся релиз Mac-версии программного решения PP Jailbreak, предназначенного для джейлбрейка iOS 8.4 и более ранних версий ОС. MacDigger публикует руководство по работе с приложением. PP Jailbreak – первый инструмент для джейлбрейка iOS 8.3/8.4, который можно использовать нативно в среде...

12 июля 2015 г., 18:27:14

Эта неделя оказалась весьма волнительной для поклонников Windows Phone. Microsoft произвели драматичные перестановки в своем мобильном подразделении. В ряде СМИ это восприняли, чуть ли как не отказ от собственной мобильной операционной системы, своих устройств и прочее. Это не так, достаточно прочитать...

Упомянутые аппараты
1 widget('application.widgets.AbsWidget'); ?> vk.com/analogindex_ru
"Analog Index" © 2014 - 2015
x