Senaryomuz gereği 3 adet load balancer sunucumuz ve bir adet database sunucumuz vardır, projemiz github üzerindedir, amacımız ise github üzerimizdeki projemizin sağlıklı bir şekilde sunucularımıza dağıtılması örneğimizi basit tutmak adına unit test süreçleri ve build süreçleri göz ardı edilmiştir. Jenkins kurulumu için bir önceki yazımızı okuyabilirsiniz.
Pluginlerimizi Manage Jenkins > Manage Plugins > Available kısmından ekleyebilirsiniz.
Sonraki aşamamızda ise ssh keylerimizi oluşturmalıyız. Aşağıdaki kodu konsol üzerinden çalıştıralım.
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hozdemir/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hozdemir/.ssh/id_rsa.
Your public key has been saved in /home/hozdemir/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:hQ/MAhsCd2xEQr1YntgeGXeXhiU3VBf8 hozdemir@pythontr
The key's randomart image is:
+-------+
|..o+* ....o. |
| . +o= * . .. |
| .+ O B . . |
| . o * + . |
|+ + . E . E |
|.O O . |
|O B = |
|=* . . |
|=.. . |
+---------+
Yukarıdaki kodu çalıştırdığımız zaman iki adet dosyamız oluşacak. id_rsa ve id_rsa.pub biri private biri public dosyasıdır. Bu dosyaların public olan kısmını erişim sağlayacağımız sunuculara private olanı ise Jenkins üzerine gireceğiz.
Dosyalarımızı listeleyelim
ls -alh .ssh/ total 20K drwx------ 2 hozdemir hozdemir 4.0K Jul 7 20:19 . drwxr-xr-x 33 hozdemir hozdemir 4.0K Jul 7 19:28 .. -rw------- 1 hozdemir hozdemir 1.8K Jul 7 20:19 id_rsa -rw-r--r-- 1 hozdemir hozdemir 394 Jul 7 20:19 id_rsa.pub
Listemizde gözüken id_rsa.pub public keyimizi barındıran dosyadır.
Sunucularımıza bu dosya içeriğini kopyalayabiliriz. Bunun için scp konsole komutunu tercih edebilirsiniz. Yayın yapan sunucularınızın hepsi için public keyinizi dağıtmalısınız.
scp -P 4022 ~/.ssh/id_rsa.pub kullanici@10.x.x.1n:/home/kullanici/.ssh/authorized_keys
Not: .ssh klasörünüzün create edildiği varsayılmıştır.
Bağlantı testi için aşağıdaki kod satırını konsol üzerinde kullanabilirsiniz.
ssh -i ~/.ssh/id_rsa kullanici@10.x.x.1n
Bağlantı testlerimizi sınadıktan sonra jenkins üzerinde gerekli pluginlerin kurulumunu yaptıysak yapılandırabiliriz. Jenkis'e login olduktan sonra Manage Jenkins > Configure System kısmına gelelim. Aşağıdaki alanları ekranda gözüktüğü gibi private key "id_rsa" keyimizi girelim.
Artık süreçlerimizi işleteceğimiz kısmı yapılandırabiliriz. Jenkins iconuna tıklayalım ardından menu üzerindeki NEW ITEM seçeneğini tıklayarak açılan sayfaya geçelim. Açılan ekran üzerinden input kısmına bir isim yazalım ardındanda freestyle projects i seçelim ve ok butonuna basalım.
İlk dolduracağımız kısım build edilecek versiyonu zorlamak adına bir formata sokabiliriz. Aşağıdaki ekran görüntüsünü inceleyiniz.
Aşağıdaki ekranda ise düzenli ifade kullanarak build parametrelerimizi şekillendirebiliriz.
Bu kısımıda aşağıdaki ekran görüntüsünü inceleyerek doldurabilirsiniz. Github bilgilerinizi ve erişim için Credentials bilgilerini giriş yaparak ve seçerek giriyorsunuz. En önemli kısımlardan biride build parametresini bu kısımda belirtiyoruz.
Son olarakta build edilmesi ve konsol üzerinde çalıştıracağımız composer gibi işlemleri yapacağımız kısım olarak bu kısımı değerlendirebileriz. Şimdilik basit bir örnek yapalım ve kaydedelim
Yorumlar