Bu örneğimizde Jenkins'i vagrant ile Ubuntu 14.04 sunucusuna kuracağız, temel ayarlarını yapıp ona Internet'ten ulaşacağız. Ngrok vagrant yerine yerel OS'te çalışıyor olacak. Daha fazla bilgi için official Jenkins, installing Jenkins on Ubuntu ve ngrok sayfalarını ziyaret edin. Jenkins bir tane web sunucusuna gerek duyduğu için biz Apache kullanacağız.


Apache server


Apache'nin çalışır vaziyette oldunu varsayıyorum. Benimki ana makinadan http://192.168.10.11 IP adresi ile ulaşılabilir halde. Sizde kendi örneğinizde web sunucunuza ulaşabildiğinize emin olun.


Java


JDK ve JRE yüklemek


Java JDK ve JRE yükleme işlemini yapın. Bu yazıyı yazarken openjdk-7-jre ve openjdk-7-jdk tavsiye ediliyordu.


$ sudo apt-get install openjdk-7-jre
$ sudo apt-get install openjdk-7-jdk

Yüklemeyi kontrol edin


$ java -version
java version "1.7.0_121"
OpenJDK Runtime Environment (IcedTea 2.6.8) (7u121-2.6.8-1ubuntu0.14.04.1)
OpenJDK 64-Bit Server VM (build 24.121-b00, mixed mode)

Jenkins


Yükleme işlemi


$ wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
$ sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt-get update
$ sudo apt-get install jenkins

Yüklemeyi kontrol edin


# Check jenkins status
$ sudo service jenkins status
Jenkins Continuous Integration Server is running with the pid 11444

# See default jenkins configuration
$ cat /etc/default/jenkins

Yedekleme ve kurtarma


Jenkins'in yedeğini almak /var/lib/jenkins klasörünün bir kopyasını yaratmak kadar basittir.


$ sudo tar czf jenkins-backup-2016-11-27.tgz /var/lib/jenkins
tar: Removing leading '/' from member names
$ ls -la
total 76528
drwxr-xr-x 4 vagrant vagrant 4096 Nov 27 15:44 .
drwxr-xr-x 4 root root 4096 Nov 27 14:48 ..
-rw-r--r-- 1 vagrant vagrant 220 Apr 9 2014 .bash_logout
-rw-r--r-- 1 vagrant vagrant 3637 Apr 9 2014 .bashrc
drwx------ 2 vagrant vagrant 4096 Nov 27 14:48 .cache
-rw-r--r-- 1 root root 78334420 Nov 27 15:44 jenkins-backup-2016-11-27.tgz
-rw-r--r-- 1 vagrant vagrant 675 Apr 9 2014 .profile
drwx------ 2 vagrant vagrant 4096 Nov 27 14:48 .ssh

Kurtarma işlemide alınan yedeğin /var/lib/jenkins klasörüne yeniden kopyalanmasıdır.


Jenkins GUI'ye login olmak


Login işlemi için http://192.168.10.11:8080 adresine gidin (sizinki farklı olabilir). "Unlock Jenkins" işlemi için ekranda verilen talimatları takip edin. Bu işlemden sonra "Suggested Plugins" seçeneğini seçin. Yeni admin kullanıcı yaratma işlemini yapmadan sadece "Continue as admin" butonuna tıklayın. Bu işlemden sonra "You've skipped creating an admin user. To log in, use the username: 'admin' and the administrator password you used to access the setup wizard." mesajını göreceksiniz. Mesajda da söylendiği gibi eğer $ sudo cat /var/lib/jenkins/secrets/initialAdminPassword komutunu çalıştırırsanız, şifreye ulaşabilirsiniz. "Finish" butonuna tıkladığınızda "Welcome to Jenkins!" mesajını göreceksiniz.


Konfigürasyon



ngrok


Ana makinamızdan Jenkins'in GUI'sine http://192.168.10.11:8080 ile ulaşabiliriz ama biz Internet'ten de ulaşmak istiyoruz. Bunu yapmak için ngrok'u ana makinanızda bir yere kopyalayın. Daha sonra aşağıdaki komut ile çalıştırın.

Not: Ngrok'u vagrant "shared folder" klasörüne kopyalayıp $ ./ngrok http 80 komutu ile vagrant içinden de çalıştırabilirsiniz.


$ ./ngrok http -host-header=rewrite 192.168.10.11:8080

ngrok by @inconshreveable (Ctrl+C to quit)

Session Status online
Version 2.1.18
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://d8792601.ngrok.io -> 192.168.10.11:8080
Forwarding https://d8792601.ngrok.io -> 192.168.10.11:8080

Connections ttl opn rt1 rt5 p50 p90
16 0 0.00 0.01 5.03 12.85

Yukarıda da gördüğümüz gibi ngrok GUI'sine http://127.0.0.1:4040 adresinden ulaşabilirsiniz. Burada bizi ilgilendiren "Forwarding" bölümündeki http://d8792601.ngrok.io veya https://d8792601.ngrok.io adresleridir ki, bunlar bizim Jenkins'e Internet'ten ulaşmamızı sağlarlar.