Bir continuous integration aracı olan Jenkins‘i, Ubuntu üzerine apache kurulu bir sunucu ile nasıl kurulduğuna bakalım.
Öncelikle Ubuntu üzerine kurulumunu yapalım:
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install jenkins
Kurulum başarılı geçtiyse 8080 portundan Jenkins arayüzüne ulaşabilmeniz lazım. Dikkat ettiyseniz burada iki güvenlik problemi var. Birincisi web arayüzüne 80 dışında bir portla erişmemiz, ikincisi Jenkins dashboard’una girmek için bizden herhangi bir kullanıcı bilgisi istenmemesi. Jenkins’in herkese açık olması (read-only modu dışında, herkesin her işlemi yapabildiği default ayarı kastediyorum) büyük bir güvenlik sorunu. O nedenle biz bu arkadaşı bir subdomain’e taşıyalım ve basic authentication ile girişlere kapatalım.
Öncelikle ci.domain.com için DNS kayıtlarına A record ekleyelim. Ardından aşağıdaki apache modlarını açalım:
sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod vhost_alias
“/etc/apache2/sites-available” dizini altına ci.domain.com adında bir dosya açıp içine subdomain’nin virtual host bilgilerini girelim:
<VirtualHost *:80> ServerAdmin [email protected] ServerName ci.domain.com ServerAlias ci.domain.com ProxyRequests Off <Location /> # Basic Authorization AuthType Basic AuthName "Password required" AuthUserFile /etc/apache2/passwords Require valid-user ProxyPassReverse / Order deny,allow Allow from all </Location> ProxyPreserveHost on ProxyPass / http://localhost:8080/ </VirtualHost>
Eklenen virtual host’u aktif edip apache’yi yeniden başlatalım:
sudo a2ensite ci.domain.com sudo service apache2 reload sudo service apache2 restart
Şimdi giriş için kullanıcı tanımlayalım:
sudo htpasswd -c /etc/apache2/passwords <kullanıcı adınız>
Yukarıdaki komut sizden girdiğiniz kullanıcı adı için şifre isteyecektir. Kullanıcı tanımladıktan sonra http://ci.domain.com adresinden Jenkins arayüzüne ulaşabilirsiniz.