неділя, 1 листопада 2015 р.

TeamCity для дому та офісу

Працюючи вдома чи на невеличкому проекті, на який навіть наймолодшого адміна смикати соромно, все ж виникає бажання зробити парочку щоденних перевірок, чи то у базі даних, чи просто автотестиків, чи запуск будь-якого скрипта з командного рядка. Можна все, звичайно, руками запустити, але із своїм домашнім CI (Continuos Integration Server) було б приємніше. 

Вже маючи трохи досвіду із Jenkins'ом, можу сказати що TeamCity краще: простіше у налаштуванні, приємніший інтерфейс. Розробники з JetBrains - як завжди молодці. Є обмеження безкоштовної ліцензії, але коли ваш проект виросте за їхні межі, думаю, і девопса можна буде долучити.
Єдине, про що варто потурбуватися перед встановленням - щоб ця машина мала доступ до всіх ресурсів, які ви збираєтеся перевіряти.

Отже, тут невеличкий список кроків для запуску TeamCity на Ubuntu у домашніх умовах.

Team City

Остання версія зараз 9.1.3
Завантажуйте тут: https://www.jetbrains.com/teamcity/download/

Постачається він в архіві. Я розпаковував його прямо в home.

Розпакувавши, запускаємо сервіс командою:
~/TeamCity/bin$ runAll.sh start

Після запуску воно повідомляє, де логи, де усе інше.

За замовчанням веб-морда доступна за наступним урлом:

http://localhost:8111/
Там треба завершити встановлення і завести адмін-користувача, але це можна зробити і потім. 

TeamCity має свій власний веб-сервер, тому для зовсім скромного і невибагливого користувача цього буде досить. :-) 
Зробіть собі закладку із цією адресою, і все!


Apache та Reverse Proxy

Я ж вирішив трохи додати краси, та зробив його доступним на власному локальному домені "teamcity.my". Це можна зробити, встановивши веб-сервер Apache2 httpd (apt-get install apache2) та увімкнувши кілька пакетів до нього для режиму зворотнього проксі (reverse proxy), коли трафік перекидається на той самий хост на інший порт (чи якось так).
Увімкнення пакетів для Apache:
a2enmod proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html xml2enc
sudo service apache2 restart
Тепер додамо віртуальний хост (virtual host) для реверс проксі. Створіть файл /etc/apache2/sites-available/teamcityproxy.conf із наступним вмістом:


<VirtualHost *:80>
    ProxyPreserveHost On
    ServerAdmin webmaster@localhost
    ProxyPass / http://127.0.0.1:8111/
    ProxyPassReverse / http://127.0.0.1:8111/
    ServerName teamcity.my
  
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

   

_Увага!_: Не копіюйте цей текст із браузера прямо у текстовий редактор, бо воно вставляє якісь недруковані символи (переноси рядків, мабуть), і віртуалхост не працює! Втратив купу часу через це; в результаті просто перенабрав усе у vim'і, і запрацювало.

Увімкнімо цей віртуалхост:

sudo a2ensite teamcityproxy.conf; sudo service apache2 restart


Ще треба додати у налаштування apache /etc/apache2/apache2.conf (або httpd.conf) наступний рядочок: 
NameVirtualHost *:80
ServerName localhost

Майже все. Залишилось тільки додати локальний домен вашого TeamCity /etc/hosts:
127.0.0.1 teamcity.my