Subscribe to my channel https://t.me/zufarexplained
Walkthroughs, tutorials, guides, and tips. This story will teach you how to do something new or how to do something better.
This story contains new, firsthand information uncovered by the writer.
Önceki makalemde mikro hizmetlerin büyüleyici dünyasına daldım - Mikro Hizmet Mimarisi Desenleri Bölüm 1: Ayrıştırma Desenleri . Bu, mikro hizmetler ve kalıpları hakkındaki kapsamlı makale serimin başlangıcıydı.
Mantıklı adım bu serinin 2. Bölümüyle devam etmek olsa da, araştırmak ve size anlatmak istediğim bir sonraki şeyin, bu mikro hizmetleri son kullanıcıya sorunsuz bir şekilde sunmanın hayati süreci olduğuna karar verdim.
CI/CD, uygulama geliştirmenin farklı aşamalarına otomasyon eklenerek elde edilen, uygulamaları müşterilere sunmaya yönelik bir tekniktir. CI/CD'yi (Sürekli Entegrasyon ve Sürekli Dağıtım) kavramanın geliştiricilere, arka uç proje eserlerinin proje havuzunun sınırlarının ötesinde nasıl var olduğuna dair daha iyi bir anlayış kazandırabileceğine inanıyorum. Bu anlayış aynı zamanda geliştiricinin bakış açısında da temel bir değişim yaratabilir. Çalışmalarını yalnızca kod satırları olarak görmek yerine, projelerinin daha geniş bağlamını değerli bir ürün olarak benimsemeye başlayabilirler.
Bu makalede, pratik uygulama yoluyla CI/CD sürecinin gizemini açığa çıkarmayı amaçlıyoruz. Size, manuel olarak bir CI/CD işlem hattı oluşturacağınız, modül modüle ayırarak adım adım bir eğitim sunacağız. Bunu yapmak için AWS, Docker, Kubernetes, Ansible, Git, Apache Maven ve Jenkins gibi çağdaş DevOps araçlarının gücünden yararlanacağız. Öyleyse bu yolculuğa başlayalım!
Bu modül, bir AWS EC2 Sanal Sunucu örneğinin oluşturulmasına ayrılmıştır. Bu makalenin bir parçası olarak Jenkins, Ansible ve Kubernetes için üç EC2 bulut sunucusu kuracaksınız. Şimdilik sonraki modüllere devam edebilir ve bu modülü "[module 2]: Jenkins", "[module 6]: Ansible" ve "[module 7]: Kubernetes" bölümlerinde tekrar ziyaret edebilirsiniz.
https://aws.amazon.com adresine gidin.
AWS Hesabı Oluştur düğmesine tıklayın.
AWS ana web sayfasının "AWS Hesabı Oluştur" düğmesinin yer aldığı ekran görüntüsü
Hesap oluşturma web sayfasındaki talimatları izleyin.
https://console.aws.amazon.com/console/home adresine gidin. Oturum Aç düğmesini tıklayın.
AWS ana web sayfasının "Oturum Aç" düğmesini gösteren ekran görüntüsü
Bu web sayfasına gerekli tüm kimlik bilgilerini girin.
Arama kutusunda EC2'yi bulun.
Arama kutusu işaretçisini içeren AWS web sayfasının ekran görüntüsü
EC2 Hizmeti seçeneğine tıklayarak EC2 Sanal Sunucusunu seçin.
"EC2" AWS hizmeti işaretçisini içeren AWS web sayfasının ekran görüntüsü
Örneği Başlat düğmesini tıklayın.
"Örneği başlat" düğmesinin işaretçisini içeren AWS web sayfasının ekran görüntüsü
“Ad ve etiketler” bölümüne gidin.
AWS web sayfasının "Ad ve etiketler" bölümünün işaretçisini içeren ekran görüntüsü
"Ad" bölümüne yeni bir AWS EC2 Sanal Sunucu örneği için bir ad girin.
AWS web sayfasının "Ad ve etiketler" bölümündeki "Ad" giriş kutusu işaretçisini içeren ekran görüntüsü
Ayrıca “Ek etiket ekle” seçeneğine tıklayarak sanal sunucunuz için ek etiketler ekleyebilirsiniz.
"Uygulama ve İşletim Sistemi Görüntüleri (Amazon Machine Image)" bölümüne gidin.
AWS web sayfasının "Uygulama ve İşletim Sistemi Görüntüleri (Amazon Machine Image)" bölümüne işaret eden ekran görüntüsü
Sanal sunucuyla ÜCRETSİZ oynamak için:
"Uygulama ve İşletim Sistemi Görüntüleri (Amazon Machine Image)" bölümünde "İşletim Sistemi" ve "Makine türü" düğmelerinin işaretçisini içeren AWS web sayfasının ekran görüntüsü
“Örnek türü” bölümüne gidin.
AWS web sayfasının "Örnek türü" bölümü işaretçisini içeren ekran görüntüsü
Sanal sunucuyla ÜCRETSİZ oynamak için:
Bulut Sunucusu türü bölümünde Ücretsiz kullanıma uygun etiketine sahip bir tür seçin.
Benim için t2.micro (Aile: t2 1cCPU 1 GiB Bellek Mevcut nesil:true) .
"Örnek türü" bölümündeki "Örnek türü" açılır menüsü işaretçisini içeren AWS web sayfasının ekran görüntüsü
"Depolamayı yapılandır" bölümüne gidin.
AWS web sayfasının "Depolamayı yapılandır" bölümü işaretçisini içeren ekran görüntüsü
Sanal sunucuyla ÜCRETSİZ oynamak için:
Varsayılan ayarları değiştirmeyin. Ücretsiz kullanıma uygun müşteriler , 30 GB EBS Genel Amaçlı (SSD) veya Manyetik depolama alanına sahip olabilir.
AWS web sayfasının "Depolamayı yapılandır" bölümündeki olası depolama yapılandırmalarına işaret eden ekran görüntüsü
“Ağ ayarları” bölümüne gidin.
AWS web sayfasının "Ağ ayarları" bölümünün işaretçisini içeren ekran görüntüsü
Sanal sunucunuzun güvenliğini ayarlamanız gerekmektedir. Bunu yapmak için,
Varsayılan olarak sanal sunucunuza ( Tür - SSH, Protokol - TCP, Bağlantı Noktası - 22 ) üzerinden erişilebilir. Ek bağlantı türlerine ihtiyacınız varsa ek gelen güvenlik grubu kuralları ekleyerek bunları ekleyin.
AWS web sayfasının "Ağ ayarları" bölümündeki "Güvenlik grubu" işaretçisini içeren ekran görüntüsü
“Anahtar çifti (Giriş)” bölümüne gidin.
AWS web sayfasının "Ket çifti (giriş)" bölümü işaretçisini içeren ekran görüntüsü
Henüz oluşturmadıysanız yeni bir anahtar çifti oluşturun.
AWS web sayfasının "Ket çifti (oturum açma)" bölümünde "Anahtar çifti adı", "Anahtar çifti türü", "Özel anahtar dosya biçimi" işaretçisini içeren ekran görüntüsü
Henüz “anahtar çifti” oluşturmadıysanız:
“Örneği başlat” düğmesine tıklayarak EC2 Sanal Sunucu örneğini başlatın.
"Örneği Başlat" düğmesinin işaretçisini içeren AWS web sayfasının ekran görüntüsü
EC2 Sanal Sunucu bulut sunucusu oluşturma işlemi tamamlandıktan sonra aşağıdakileri göreceksiniz.
EC2 Sanal Sunucu bulut sunucusu oluşturma işleminin başarıyla tamamlandığını gösteren 'Başarı' bildirimini gösteren AWS web sayfasının ekran görüntüsü
Daha sonra “Tüm örnekleri görüntüle” butonunu tıklayarak “Instances” bölümüne gitmelisiniz.
EC2 bulut sunucusunu çalıştırma işaretçisini içeren AWS web sayfasının ekran görüntüsü
Artık AWS EC2 Sanal Sunucu örneğinizin çalıştığını görebilirsiniz.
Şimdi EC2 Virtual Server örneğinde JenkinsServer’ı yapılandıralım.
Jenkins'i çalıştırmak için sanal bir sunucuya ihtiyacınız var.
Bu adımı tamamlamak ve JenkinsServer adında bir EC2 sanal sunucu örneği oluşturmak için bu eğitimin [Modül 1]: AWS EC2 Sanal Sunucu bölümündeki talimatları izleyin.
Güvenlik grubu kurulumu eklemeyi unutmayın. Jenkins ve SSH'nin sırasıyla 8080 ve 22 numaralı bağlantı noktalarında çalışmasına olanak tanır.
EC2 Sanal Sunucu örneğinizi ayırt etmek için “JenkinsServer” adını kullanın.
Yeni bir "JenkinsServer" AWS EC2 bulut sunucusu için "CI_CD_Pipeline" güvenlik grubu ve "CI_CD_Pipeline_Key_Pair" oluşturun. Bunları makalenin ilerleyen kısımlarında yeniden kullanabilirsiniz.
AWS Konsolu ana sayfasına → EC2 Yönetim Konsolu Kontrol Paneli → Bulut Sunucuları'na gidin.
Daha sonra JenkinsServer'ı seçmeli ve ardından “Bağlan” butonuna tıklamalısınız.
AWS "Örnekler" web sayfasının "Bağlan" düğmesini gösteren ekran görüntüsü
Daha sonra bu web sayfasını göreceksiniz. Tekrar “Bağlan” butonuna tıklamalısınız.
AWS "Örneğe Bağlan" web sayfasının "Bağlan" düğmesi işaretçisini içeren ekran görüntüsü
Artık EC2 sanal sunucu örneği çevrimiçi terminalini görebilirsiniz.
AWS EC2 Sanal Sunucu örneği çevrimiçi terminalinin ekran görüntüsü
Artık Jenkins'i EC2 sanal sunucu örneğinize indirmeniz gerekiyor.
Şu talimatları izleyin:
Jenkins indirme web sayfasına gidin.
Kararlı (LTS) ve Normal sürümler (Haftalık) seçeneklerini görebilirsiniz. Red Hat/Fedora/Alma/Rocky/CentOS LTS seçeneğini seçin.
Bu web sayfasını göreceksiniz.
Jenkins indirme web sayfasının ekran görüntüsü
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
Artık Jenkins indirildi.
Jenkins kurulumunu tamamlamak için Jenkins anahtarını içe aktarmamız gerekiyor.
Jenkins anahtarını içe aktarmak için “sudo rpm..” komutunu kopyalayıp çalıştırmamız gerekiyor.
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
Bu şekilde "rpm" paket yöneticisi, yüklediğiniz Jenkins paketlerinin tam olarak Jenkins projesi tarafından yayınlanan paketler olduğunu ve bunların tahrif edilmediğini veya bozulmadığını doğrulayabilir.
Jenkins'i çalıştırmak için EC2 sanal sunucu örneğimize Java yüklememiz gerekiyor.
Java'yı yüklemek için bu komutu kullanın.
sudo amazon-linux-extras install java-openjdk11 -y
Bu komutu kullanarak Java'nın doğru şekilde yüklenip yüklenmediğini doğrulayın:
java -version
Bunun gibi bir şey göreceksiniz.
JDK 11'in yüklü olduğu AWS EC2 Sanal Sunucu örneği çevrimiçi terminalinin ekran görüntüsü
Jenkins'i çalıştırmak için EC2 sanal sunucu örneğimize fontconfig yüklemeniz gerekir.
Bu komutu kullanın.
sudo yum install fontconfig java-11-openjdk -y
Fontconfig, sistem genelinde yazı tipi yapılandırması, özelleştirme ve uygulama erişimi sağlamak için tasarlanmış bir kitaplıktır. Jenkins'in yazı tiplerini oluşturan özellikleri olması nedeniyle bu gereklidir.
Önceki adımlarda, EC2 sanal sunucu örneğinizi belirli bir Jenkins deposunu kullanacak şekilde yapılandırdınız ve ardından bu depoyla ilişkili GPG anahtarını içe aktardınız. Şimdi Jenkins paketini bulmak için eklediğiniz Jenkins de dahil olmak üzere bildiği tüm depoları arayacak komutu çalıştırmanız gerekiyor. Jenkins paketini Jenkins deposunda bulduğunda indirip yükleyecektir.
Bu komutu çalıştıralım.
sudo yum install jenkins -y
Bu komutu kullanarak Jenkins'i başlatabilirsiniz.
sudo systemctl start jenkins
Jenkins'in çalıştığını kontrol etmek için bu komutu kullanın.
sudo systemctl status jenkins
Çıktıyı aşağıdaki ekran görüntüsünde olduğu gibi göreceksiniz:
Jenkins'in yüklü olduğu AWS EC2 Sanal Sunucu örneği çevrimiçi terminalinin ekran görüntüsü
Jenkins artık çalışır durumda olmalı.
Jenkins uygulamasına erişmek için herhangi bir web tarayıcısını açın ve EC2 bulut sunucunuzun genel IP adresini veya alan adını ve ardından 8080 numaralı bağlantı noktasını girin.
http://<your-ec2-ip>:8080
Jenkins'e ilk kez eriştiğinizde otomatik olarak oluşturulan bir şifreyle kilitlenecektir.
AWS EC2 Sanal Sunucusunda yüklü olan ve Yönetici parolası işaretçisini içeren Jenkins'in ekran görüntüsü
Bu şifreyi aşağıdaki komutu kullanarak görüntülemeniz gerekmektedir.
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Bu şifreyi kopyalayın, tarayıcınıza dönün, Yönetici şifresi alanına yapıştırın ve "Devam Et"e tıklayın.
Daha sonra bu web sayfasını görebileceksiniz.
AWS EC2 Sanal Sunucusunda yüklü olan Jenkins'in "Jenkins'i Özelleştir" web sayfası işaretçisini içeren ekran görüntüsü
Artık Jenkins Sunucunuzu kullanabilirsiniz.
Artık Jenkins iyi çalıştığına göre Jenkins işlem hattını oluşturmaya başlayabilirsiniz. Jenkins işlem hattını oluşturmak için yeni bir "Serbest Stil projesi" oluşturmanız gerekir. Yeni bir "Serbest Stil projesi" oluşturmak için Jenkins kontrol paneline gitmeniz ve "Yeni Öğe" düğmesini tıklamanız gerekir.
"Yeni Öğe" düğmesinin işaretçisini içeren Jenkins Dashboard web sayfasının ekran görüntüsü
Github "Serbest Stil Projesi" adını girin ("boru hattı" adı bundan sonra kullanılacaktır) ve ardından "Tamam" düğmesine tıklayın.
Jenkins Yeni Öğe web sayfasının "Öğe adı" öğe kutusu işaretçisini içeren ekran görüntüsü
Daha sonra boru hattının Açıklamasını sağlayın.
"Açıklama" giriş kutusu işaretçisini içeren Jenkins İş yapılandırması web sayfasının ekran görüntüsü
Daha sonra “Uygula” ve “Kaydet” butonuna tıklayın. Bundan sonra bu, bu eğitimde inşa edilecek boru hattının temelini oluşturduğunuz anlamına gelir.
Artık Jenkins AWS EC2 Sanal Sunucu örneğinde çalıştığından Git'i işlem hattıyla yapılandırabilirsiniz.
Git, yazılım ekiplerinin kodda yapılan her değişikliği özel bir veritabanı türünde takip etmesine yardımcı olmak için tasarlanmış ücretsiz ve açık kaynaklı bir dağıtılmış sürüm kontrol sistemidir (VCS). Bir hata yapılırsa geliştiriciler, tüm ekip üyelerinin aksamasını en aza indirirken hatanın düzeltilmesine yardımcı olmak için zamanı geri çevirebilir ve kodun önceki sürümlerini karşılaştırabilir. VCS özellikle aşağıdakiler için faydalıdır:
En popüler sürüm kontrol sistemi olan Git, projenizin Github deposundan en son kodu Jenkins'inizin kurulu olduğu EC2 sanal sunucu örneğinize çekmemize olanak tanır.
Git'i yüklemek için bu komutu kullanın.
sudo yum install git -y
Şimdi bu komutu kullanarak Git'in çalıştığını doğrulayın.
git --version
Git artık EC2 Sanal Sunucu örneğinde sorunsuz çalışıyor.
Git, EC2 Sanal Sunucu örneğinde sorunsuz çalıştığı için artık Jenkins'i Git ile entegre edebiliriz.
Bu entegrasyonu başlatmak için Jenkins Github eklentisini kuralım.
Jenkins kontrol paneli bölümüne gidin.
Jenkins kontrol panelinin ekran görüntüsü
“Jenkins'i Yönet” düğmesine tıklayın ve ardından “Eklentileri Yönet” düğmesine tıklayın.
"Eklentileri Yönet" düğmesinin işaretçisini içeren Jenkins kontrol panelinin ekran görüntüsü
“Kullanılabilir eklentiler” düğmesine tıklayın.
Jenkins Plugin Manager web sayfasının "Kullanılabilir eklentiler" düğmesini gösteren ekran görüntüsü
Github eklentisi Arama kutusunu bulun.
Jenkins Plugin Manager web sayfasının "Github" eklentisi işaretçisini içeren ekran görüntüsü
Github eklentisini seçin.
Github eklentisini seçin. Ve ardından “Yeniden başlatmadan yükle” düğmesine tıklayın.
Jenkins Plugin Manager web sayfasının "Yeniden başlatmadan yükle" düğmesini gösteren ekran görüntüsü
Github eklentisinin indirilmesinin bitmesini bekleyin.
Github eklentisinin indirildiği Jenkins Plugin Manager web sayfasının ekran görüntüsü
Evet! Jenkins Github eklentisi kuruldu.
Artık GitHub Jenkins eklentisi yüklendiğinde, bu eklentiyi sonunda Jenkins'i Git ile entegre edecek şekilde yapılandırabilirsiniz. Bunun için “En üst sayfaya dön” butonuna tıklayarak ana sayfaya dönmeniz gerekmektedir.
Jenkins Plugin Manager web sayfasının "En üst sayfaya geri dön" düğmesini gösteren ekran görüntüsü
Daha sonra ana sayfada “Jenkins'i Yönet” butonuna ve ardından “Global araç konfigürasyonu” butonuna tıklamanız gerekiyor.
Jenkins Plugin Manager web sayfasının "Genel araç yapılandırması" düğmesinin işaretçisini içeren ekran görüntüsü
Daha sonra Global Tool Configuration web sayfasında Git bölümüne gitmelisiniz.
Jenkins Global Araç Yapılandırması web sayfasının "Ad" ve "Git çalıştırılabilir yolu" giriş kutuları işaretçisini içeren ekran görüntüsü
Git bölümünde, bilgisayardaki Git'in adını ve yolunu sağlayarak Git'i yapılandırmanız gerekir.
Daha sonra "Uygula" ve "Kaydet" düğmelerini tıklayın**.**
Burada Jenkins Github eklentisini yapılandırmayı tamamladınız.
Artık Jenkins Github eklentisi yüklenip yapılandırıldığından, artık bu eklentiyi işlem hattınızda kullanabilirsiniz. Bu, modül 2'de oluşturduğunuz işlem hattınızın proje kodunuzu belirtilen GitHub deposundan çekmesine olanak tanır.
Bu eklentiyi işlem hattınıza entegre etmek için Kaynak Kodu Yönetimi bölümüne gitmeniz ve işlem hattınızda Git'i seçmeniz gerekir. Daha sonra proje havuzu URL'nizi sağlamanız gerekir. Proje deponuz Github'da herkese açıksa kimlik bilgileri sağlamanıza gerek yoktur. Proje deposu Github'da özelse kimlik bilgileri sağlamanız gerekir.
"Kaynak Kodu Yönetimi" ayarlarının yer aldığı Jenkins İş yapılandırması web sayfasının ekran görüntüsü
Projemi bir sonraki Depo URL'si ile kullanabilirsiniz: https://github.com/Sunagatov/Hello.git .
Bunu kopyalayıp “ Depo URL'si” girişine yapıştırmanız yeterlidir. Ardından Git'in işlem hattıyla entegrasyonunu tamamlamak için "Uygula" ve "Kaydet" düğmelerini tıklayın.
Artık Github'dan bir proje çekmek için güncellenmiş işlem hattınızı kullanabilirsiniz. Bunu yapmak için **“Şimdi Oluştur”** düğmesine tıklamanız gerekir. Sonuç olarak, yapım geçmişinde başarılı bir yapı göreceksiniz.
Jenkins web sayfasının "Şimdi Oluştur" düğmesini ve "Yapı Geçmişi" bölümünü gösteren işaretçileri içeren ekran görüntüsü
Yapı geçmişinden ilk yapıyı açın.
Başarılı iş sonucuyla Jenkins Pull_Code_From_Github_Job'un ekran görüntüsü
Artık ilk yapının başarılı iş sonucunu görebilirsiniz. AWS EC2 terminalinizi açarsanız. Boru hattının iyi çalışıp çalışmadığını kontrol edebilirsiniz.
Sadece bu komutu kullanın.
cd /var/lib/jenkins/workspace/{your pipeline name}
Bu şekilde Github'daki projenizin AWS EC2 sanal sunucu örneğinize çekildiğini görebilirsiniz.
EC2 bulut sunucusu terminaline indirilen Github projesinin ekran görüntüsü
Apache Maven, yazılım geliştirmede yaygın olarak kullanılan bir yapı otomasyonu ve proje yönetimi aracıdır. Proje bağımlılıklarını yöneterek ve tutarlı bir yapı yaşam döngüsü sağlayarak kodu derleme, test etme ve paketleme sürecini kolaylaştırır. Maven, proje yapısını, bağımlılıkları ve görevleri tanımlamak için XML tabanlı yapılandırma dosyalarını (POM dosyaları) kullanarak geliştiricilerin karmaşık yazılım projelerini verimli bir şekilde yönetmesine ve dağıtmasına olanak tanır.
Artık Git'i işlem hattına entegre ettiğinize göre, projenizi oluşturmanıza, test etmenize ve paketlemenize olanak tanıyan Apache Maven'i dahil ederek işlem hattını daha da geliştirebilirsiniz. Bunu yapmak için Apache Maven'i Jenkins ve Git'in kurulu olduğu AWS EC2 Sanal Sunucu örneğinize yüklemeniz gerekir.
Apache Maven'i indirmek için “/opt” dizinine gidin.
cd /opt
Ve sonra bu komutu kullanın.
sudo wget https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz
Bu komut en son resmi Apache Maven'i indirecektir (en son sürümü resmi Apache Maven web sitesinde kontrol edin). En son resmi Apache Maven sürümünü bulmak için https://maven.Apache.org/download.cgi bağlantısını kullanın.
Apache Maven'i indirilen arşivden çıkarmak için bu komutu kullanın:
sudo tar -xvzf apache-maven-*.tar.gz
Bu komutu kullanarak kök klasöre taşıyın.
cd ~
Bu komutu kullanarak .bash_profile dosyasını düzenleyin.
vi .bash_profile
JAVA_HOME ve M2_HOME değişkenlerini ekleyin.
JAVA_HOME için JDK11 yolunu, M2_HOME değişkeni için maven dizininin yolunu atayın.
JDK yolunu bulmak için bu komutu kullanın.
sudo find / -name java
.bash_profile dosyasına sahip AWS EC2 Sanal Sunucu bulut sunucusu terminali web sayfasının ekran görüntüsü
VIM nasıl kullanılır?
Değişiklikleri kaydedin.
Daha sonra sistem değişkenlerini yenilemek için bu komutu yürütün.
source .bash_profile
$PATH'i doğrulamak için bu komutu kullanın.
echo $PATH
Apache Maven'i doğrulamak için bu komutu kullanın.
mvn -v
Her şeyi doğru yaptıysanız Apache Maven sürümünü görüntüleyebileceksiniz.
AWS EC2 Virtual Server örnek terminali web sayfasının Apache Maven sürümünün ekran görüntüsü
Apache Maven bir EC2 örneğinde kullanılabildiğinden, işlem hattıyla entegre etmek için Apache Maven eklentisini yükleyebilirsiniz.
Bunu başarmak için şu adımları izleyin:
AWS EC2 Sanal Sunucusunda Maven eklentisi işaretçisi ile yüklü olan Jenkins'in ekran görüntüsü
İndirme işleminin bitmesini bekleyin.
Daha sonra “En üst sayfaya dön” butonuna tıklayın.
AWS EC2 Sanal Sunucusunda yüklü olan ve Maven eklentisi indirme işlemini gösteren Jenkins'in ekran görüntüsü
Apache Maven Jenkins eklentisinin başarılı kurulumuyla artık bu eklentiyi modül 2 ve 3'te oluşturduğunuz ve güncellediğiniz işlem hattında kullanabilirsiniz.
Bunu yapmak için şu adımları izleyin:
AWS EC2 Sanal Sunucusunda yüklü olan Jenkins'in, JDK yapılandırmasını gösteren ekran görüntüsü
Daha sonra “Maven” bölümüne gidin. “Maven Ekle” butonuna tıklayın. "Otomatik olarak yükle" seçeneğinin işaretini kaldırın.
Ardından adı ve MAVEN_HOME yolunu ekleyin.
AWS EC2 Sanal Sunucusunda yüklü olan ve Apache Maven yapılandırmasını gösteren Jenkins'in ekran görüntüsü
“Uygula” ve “Kaydet” butonlarına tıklayın.
Burada Apache Maven Jenkins eklentisini yapılandırmayı tamamladınız.
Artık Apache Maven GitHub eklentisi yüklenip yapılandırıldığından, artık Apache Maven'i işlem hattınızda kullanabilirsiniz. Bu, "[modül 2]: Jenkins Sunucusu"nda oluşturduğunuz boru hattınızın bir jar yapıtı oluşturmak için proje kodunuzu oluşturmasına olanak tanır.
Apache Maven'i işlem hattına entegre etmek için şu adımları izlemeniz gerekir:
İşlem hattı yapılandırmasındaki "Uygula" ve "Kaydet" düğmelerine yönelik işaretçilerin yer aldığı "Oluşturma Adımları" bölümünün ekran görüntüsü
Son olarak Apache Maven'in işlem hattı ile entegrasyonunu tamamlamak için "Uygula" ve "Kaydet" butonlarına tıklamalısınız.
Artık Github projenizi oluşturmak için güncellenmiş işlem hattınızı kullanabilirsiniz. Bunu yapmak için **“Şimdi Oluştur”** düğmesine tıklamanız gerekir. Sonuç olarak, yapım geçmişinde başarılı bir iş sonucu göreceksiniz.
AWS EC2 terminalinizi açarsanız. Boru hattının iyi çalışıp çalışmadığını kontrol edebilirsiniz.
Sadece bu komutu kullanın.
cd /var/lib/jenkins/workspace/{your pipeline name}/target
Bu şekilde, projenizin GitHub'dan başarıyla oluşturulduğunu gösteren JAR yapıtını görebilirsiniz.
Şimdi Docker ve Ansible kuracağınız "Ansible Server" isminde yeni bir EC2 örneği oluşturalım.
Bu adımı tamamlamak için bu eğitimin " AWS EC2 Sanal Sunucu örneğini başlatma" bölümündeki talimatları kullanın. Güvenlik grubu kurulumu eklemeyi unutmayın. Docker ve SSH'nin sırasıyla 8080 ve 22 numaralı bağlantı noktalarında çalışmasına olanak tanır.
“Bağlan” düğmesine tıklayın.
"Bağlan" düğmesinin işaretçisini içeren AWS web sayfasının ekran görüntüsü
Artık EC2 Sanal Sunucu örneği çevrimiçi terminalini görebilirsiniz.
AWS EC2 Sanal Sunucu örneği çevrimiçi terminalinin ekran görüntüsü
sudo chown ansible-admin:ansible-admin /opt/docker
Artık Ansible EC2 bulut sunucunuza docker yüklemeniz gerekiyor. Bunu yapmak için yeni bir docker klasörü oluşturmanız gerekir.
sudo mkdir /opt/docker
Daha sonra bir sonraki komutu çalıştırarak docker’ı kurun.
sudo yum install docker -y
Docker admin ayrıcalıklarını vermek için mevcut kullanıcı olan “ansible-admin”i “AnsibleServer” EC2 sanal sunucusu üzerindeki Docker grubuna eklemeniz gerekmektedir.
sudo usermod -a -G docker ansible-admin
Bu değişikliklerin etkili olması için oturumu kapatıp tekrar giriş yapmanız gerekecektir.
Daha sonra bir sonraki komutu çalıştırabilirsiniz
id ansible-admin
yeni liman işçisi kullanıcısının var olduğunu görmek için.
Liman işçisi kullanıcısını gösteren işaretçiyi içeren Ansible EC2 örneğinin ekran görüntüsü
Artık Docker, Ansible EC2 örneğine yüklendiğinden, bir sonraki komutu çalıştırarak onu başlatabilirsiniz.
sudo systemctl start docker
Docker başlatıldığında bir sonraki komutu çalıştırabilirsiniz.
sudo systemctl status docker
docker'ın aktif olduğunu ve şu anda çalıştığını görmek için.
Ansible EC2 örneğinin aktif docker durumuyla birlikte ekran görüntüsü
İşlem hattının son sürümünde süreç, GitHub projenizden yeni bir Docker görüntüsü oluşturmayı ve bunu Docker Hub'a aktarmayı içerecektir. Bunu başarmak için GitHub projenizin bir Dockerfile içermesi gerekir.
“ [Modül 3]: Git ve Github” modülünde sunulan “Merhaba” projesini kullandıysanız bu proje deposunda zaten Dockerfile bulunduğundan yeni bir Dockerfile oluşturmanıza gerek yoktur.
FROM eclipse-temurin:17-jre-jammy ENV HOME=/opt/app WORKDIR $HOME ADD hello-0.0.1-SNAPSHOT.jar $HOME ENTRYPOINT ["java", "-jar", "/opt/app/hello-0.0.1-SNAPSHOT.jar" ]
Kendi proje deponuzu kullandıysanız ve içinde Docker dosyası yoksa yeni bir Docker dosyası oluşturmanız gerekecektir.
Yeni bir Dockerfile oluşturmak için yeni dosyayı oluşturacak aşağıdaki komutu yürütün.
sudo touch Dockerfile
Daha sonra bu dosyayı kapsayıcıya alınmış bir uygulama ortamının nasıl oluşturulacağını açıklayan bir dizi komutla doldurabilirsiniz. Bu komutlar, dosyaları görüntüye kopyalamak, yazılımı yüklemek, ortam değişkenlerini ayarlamak ve kapsayıcıyı yapılandırmak gibi eylemleri içerir.
Dockerfile’ı bu komutlarla doldurmak için aşağıdaki komutu yürütün.
vim Dockerfile
Dockerfile kullanıma hazır.
Artık Dockerfile'ınız kullanıma hazır olduğuna göre, projenizin JAR yapısını **"JenkinsServer"**EC2 örneğinden kopyalayıp "AnsibleServer" EC2 örneğine yapıştırarak ilerleyin. Bu aktarımın boru hattı yoluyla daha da otomatikleştirileceğini unutmamak önemlidir.
Bu adımı tamamlayarak Docker dosyanızı kurduğunuz Docker ortamıyla birlikte test etmeye hazır olacaksınız.
Teste başlamadan önce Dockerhub'da kimliğinizi doğruladığınızdan emin olun. Aşağıdaki komutu yürütün.
docker login
Bu komut, kullanıcı adınız ve şifreniz de dahil olmak üzere Dockerhub oturum açma bilgilerinizi girmenizi isteyecektir.
"AnsibleServer" EC2 örneğinde başarılı liman işçisi oturum açma işleminin ekran görüntüsü
Bununla Docker'da oturum açma işlemini tamamladınız ve artık teste devam etmeye hazırsınız.
Dockerhub'a başarıyla giriş yaptığınızda artık hazırladığınız Docker dosyasını test etmeye hazırsınız.
Docker görüntüsü oluşturmak için bu komutu yürütün.
docker build -t hello:latest .
Ardından görüntünün Dockerhub'a yüklenmesini kolaylaştıracak bir etiket oluşturmak için sonraki komutu yürütün:
docker tag hello:latest zufarexplainedit/hello:latest
Son olarak, bu komutun yürütülmesiyle Docker görüntüsünü Dockerhub'a göndermeye devam edin.
docker push zufarexplainedit/hello:latest
Bu adımları izleyerek Dockerhub hesabınıza giderek yeni bir görsel görüp göremediğinizi doğrulayın.
Dockerhub hesabının yeni görselin eklendiği ekran görüntüsü
Artık görüntünün etkili bir şekilde eklendiğini gözlemlemelisiniz. Bu sonuç, Docker ortamının başarıyla kurulduğunu ve Docker dosyanızın doğru olduğunu onaylar.
Şimdi EC2 Sanal Sunucu örneği üzerinde Ansible Sunucusunu yapılandıralım.
Ansible'ı çalıştırmak için sanal bir sunucuya ihtiyacınız var.
Bu adımı tamamlamak ve Ansible için bir EC2 sanal sunucu örneği oluşturmak için bu eğitimin [Modül 1]: AWS EC2 Sanal Sunucu bölümündeki talimatları izleyin.
Güvenlik grubu kurulumu eklemeyi unutmayın. Ansible ve SSH'nin sırasıyla 8080 ve 22 numaralı bağlantı noktalarında çalışmasına olanak tanır.
EC2 Sanal Sunucu örneğinizi ayırt etmek için “AnsibleServer” adını kullanın.
Yeni bir "AnsibleServer" EC2 örneği için "CI_CD_Pipeline" güvenlik grubunu ve "CI_CD_Pipeline_Key_Pair"i yeniden kullanabilirsiniz.
AWS Konsolu ana sayfasına → EC2 Yönetim Konsolu Kontrol Paneli → Bulut Sunucuları → AnsibleServer'a gidin.
Daha sonra “Bağlan” butonuna tıklayın.
"Bağlan" düğmesinin işaretçisini içeren AWS web sayfasının ekran görüntüsü
Daha sonra bu web sayfasını göreceksiniz. Tekrar “Bağlan” butonuna tıklamalısınız.
AWS "Örneğe Bağlan" web sayfasının "Bağlan" düğmesi işaretçisini içeren ekran görüntüsü
Artık EC2 sanal sunucu örneği çevrimiçi terminalini görebilirsiniz.
AWS EC2 Sanal Sunucu örneği çevrimiçi terminalinin ekran görüntüsü
Şimdi EC2 sanal sunucu örneği üzerinde Ansible Server'ı yapılandıralım.
AnsibleServer'ı EC2 sanal sunucu örneği üzerinde yapılandırmak istediğinizde yapmanız gereken ilk şey, ana bilgisayar adını değiştirmektir.
Hadi yapalım. Ana bilgisayar adı dosyasını açmak için bu komutu yürütün:
sudo vi /etc/hostname
Bunun gibi bir şey görmelisiniz:
AWS EC2 Sanal Sunucu örneğinin ana bilgisayar adı dosyasıyla birlikte ekran görüntüsü
Bu ana bilgisayar adını "ansible-server" ile değiştirin. Ardından yeniden başlatın.
sudo init 6
Ana makine adı işaretçisini içeren AWS EC2 Sanal Sunucu örnek terminalinin ekran görüntüsü
Şimdi AWS EC2 Sanal Sunucu örneğine yeni bir ansible-admin kullanıcısı ekleyelim.
Bunu yapmak için şu komutu kullanın:
sudo useradd ansible-admin
Daha sonra ansible-admin kullanıcısının şifresini ayarlayın.
sudo passwd ansible-admin
Ayrıca sudoers dosyasını düzenleyerek kullanıcı ayrıcalıklarını yapılandırmanız gerekir.
sudo visudo
Bu sudoers dosyasına “ansible-admin ALL=(ALL) ALL” ekleyin.
AWS EC2 Sanal Sunucu bulut sunucusu terminalinin yönetici ayrıcalıklarına işaret eden ekran görüntüsü
Ayrıca, PasswordAuthentication'ı etkinleştirmek için /etc/ssh/sshd_config dosyasını düzenlemeniz gerekir.
sudo vi /etc/ssh/sshd_config
AWS EC2 Sanal Sunucu bulut sunucusu terminalinin yönetici ayarları işaretçisini içeren ekran görüntüsü
Daha sonra bu değişiklikleri onaylamak için hizmeti yeniden yüklemeniz gerekir.
sudo service sshd reload
Bu komutu yürütmenin bir sonucu olarak şunu göreceksiniz:
AWS EC2 Sanal Sunucu bulut sunucusu terminalinin sshd yeniden yükleme sonucunu gösteren işaretçiyi içeren ekran görüntüsü
Artık diğer tüm komutlara sudo eklemekten kaçınmak için bu komutu kullanabilirsiniz.
sudo su - ansible-admin
Bu makalenin ilerleyen kısımlarında K8s EC2 sanal sunucu örnekleri gibi uzak sunucuları yönetmeyi planlıyorsunuz. Bu yüzden SSH anahtarlarını ayarlamanız gerekiyor.
ssh-keygen
Bu komutu yürütmenin bir sonucu olarak şunu göreceksiniz:
AWS EC2 Sanal Sunucu bulut sunucusu terminalinin ssh-keygen sonucunu gösteren işaretçiyi içeren ekran görüntüsü
Artık SSH anahtarları oluşturuldu ve kullanıma hazır.
Artık Ansible'ı “AnsibleServer” EC2 sanal sunucu örneğinize yükleyebilirsiniz.
Hadi yapalım.
Ansible'ı yüklemek için bu komutu yürütün.
sudo amazon-linux-extras install ansible2
Ansible'ı doğrulamak için şu komutu kullanın:
ansible --version
Bu komutu yürütmenin bir sonucu olarak şunu göreceksiniz:
AWS EC2 Sanal Sunucu örnek terminalinin sudo yum install ansible result işaretçisini içeren ekran görüntüsü
Ansible , "AnsibleServer" EC2 sanal sunucu örneğinize kurulduğundan, Jenkins'i Ansible ile entegre edecek şekilde yapılandırabilirsiniz. Jenkins'i Ansible'ın yüklü olduğu EC2 Sanal Sunucu örneğiyle ve Kubernetes'in yüklü olduğu diğer EC2 Sanal Sunucu örnekleriyle entegre etmek için “SSH üzerinden Yayınla” eklentisini yüklemeniz gerekir.
“Gösterge Paneli” → “ Jenkins'i Yönet” → “Sistemi Yapılandır” → “Kullanılabilir eklentiler” seçeneğine gidin.
Daha sonra arama kutusuna “SSH üzerinden yayınla” yazın.
AWS EC2 Sanal Sunucusunda yüklü olan Jenkins'in "Kullanılabilir eklentiler" web sayfası işaretçisini içeren ekran görüntüsü
“Yeniden başlatmadan yükle” düğmesine tıklayın. İndirme işleminin bitmesini bekleyin.
AWS EC2 Sanal Sunucusunda yüklü olan Jenkins'in "İndirme ilerlemesi" web sayfası işaretçisini içeren ekran görüntüsü
Artık Jenkins EC2 Sanal Sunucu örneğine “SSH üzerinden yayınla” eklentisi yüklendi.
Apache Maven Jenkins eklentisinin başarılı kurulumuyla artık bu eklentiyi modül 2 ve 3'te oluşturduğunuz ve güncellediğiniz işlem hattında kullanabilirsiniz.
Bunu yapmak için şu adımları izleyin:
“Kontrol Paneli” → “Jenkins'i Yönet” → “Sistemi Yapılandır” → “SSH Üzerinden Yayınla” seçeneğine gidin.
"SSH üzerinden yayınla" eklentisine sahip AWS EC2 Sanal Sunucu bulut sunucusu terminalinin ekran görüntüsü
Ana bilgisayar adı, kullanıcı adı ve özel anahtar (veya varsa şifre) dahil olmak üzere gerekli tüm verileri ekran görüntüsünde olduğu gibi girin.
"SSH üzerinden yayınla" eklentisine sahip AWS EC2 Sanal Sunucu bulut sunucusu terminalinin ekran görüntüsü
Daha sonra “Uygula” ve “Kaydet” butonlarına tıklayın.
Burada “SSH üzerinden yayınla” Jenkins eklentisini yapılandırmayı tamamladınız.
Daha sonra eklentinin düzgün çalıştığını doğrulamak için “Yapılandırmayı Test Et” seçeneğine tıklayın.
"SSH Üzerinden Yayınla" eklentisinin "Test Yapılandırması" butonunun yer aldığı ekran görüntüsü
Sol tarafta test eklentisi yapılandırma durumunun “Başarılı” olduğunu görebilirsiniz. Bu, eklenti yapılandırmasının doğru olduğu anlamına gelir.
JAR projesinin depolanacağı AnsibleServer EC2 örneğinde yeni bir klasör oluşturmanız gerekir. Bu jar daha sonra Docker imajı oluşturmak için kullanılacaktır.
Hadi başlayalım.
AnsibleServer EC2 örneğinde “/opt” klasörüne gidin.
cd /opt
Orada yeni bir “docker” klasörü oluşturun.
sudo mkdir docker
Bu “docker” klasörüne ayrıcalıklar verin.
sudo chown ansible-admin:ansible-admin docker
Şimdi bu komutu çalıştırarak “docker” klasörünün ayrıcalıklarını kontrol edin.
ll
“Docker” klasörüne “ansible-admin” kullanıcısı ile erişilebildiğini görebilirsiniz.
"AnsibleServer" EC2 örneğindeki "docker" klasörünün ekran görüntüsü
Artık "SSH üzerinden yayınla" Github eklentisi kurulup yapılandırıldığında, artık onu "[modül 2]: Jenkins Sunucusu"nda oluşturduğunuz ardışık düzene entegre ederek bir proje jar eserini "JenkinsServer"dan " JenkinsServer" a aktarabilirsiniz. “AnsibleSunucusu” .
Peki, "SSH üzerinden yayınla" Github eklentisini ardışık düzene entegre etmek için şu adımları izlemeniz gerekir:
İşlem hattı yapılandırmasındaki "Derleme yapıtını SSH üzerinden gönder" bölümünün ekran görüntüsü
Son olarak “SSH üzerinden yayınla” eklentisinin boru hattı ile entegrasyonunu tamamlamak için “Uygula” ve “Kaydet” butonlarına basmalısınız.
Artık bir proje jar yapıtını " JenkinsServer" dan "AnsibleServer" a aktarmak için güncellenmiş işlem hattınızı kullanabilirsiniz. Bunu yapmak için “Şimdi Oluştur” düğmesine tıklamanız gerekir. Sonuç olarak yapım geçmişinde başarılı bir iş sonucu göreceksiniz.
“AnsibleServer” AWS EC2 terminalinizi açarsanız. Boru hattının iyi çalışıp çalışmadığını kontrol edebilirsiniz.
Sadece bu komutu kullanın.
cd /opt/docker
Bu şekilde, projenizin GitHub'dan başarıyla oluşturulduğunu gösteren JAR yapıtını görebilirsiniz.
/opt/docker dizininin proje jar yapıtını içeren ekran görüntüsü
Bir Ansible playbook'u çalıştırdığınızda, üzerinde çalışması gereken ana bilgisayarları belirtirsiniz. Bunu iki şekilde yapabilirsiniz:
hosts
parametresini bir IP adresleri veya ana bilgisayar adları listesine ayarlayabilirsiniz./etc/ansible/hosts
.
/etc/ansible/hosts
dosyasını düzenleyerek, bir oyun kitabını her çalıştırdığınızda IP adreslerini yazmak zorunda kalmadan ana bilgisayar gruplarını kolayca yönetebilirsiniz.
Aşağıdaki komutu çalıştırarak AnsibleServer EC2 örnek hostunu bulalım.
sudo ifconfig
AnsibleServer EC2 örneğinin ağ arayüzü ayarının ekran görüntüsü
AnsibleServer EC2 örnek hostunu bulduktan sonra aşağıdaki komutu çalıştırarak onu Ansible hosts dosyasına ekleyebilirsiniz.
sudo vi /etc/ansible/hosts
Referans olarak “[ansible]” ifadesini de ekleyebilirsiniz.
Ansible hosts dosyasının ekran görüntüsü
Bir sunucu kümesini yönetiyorsanız ve hepsine bir oyun kitabı uygulamak istiyorsanız, oynatma kitabında her sunucunun IP adresini belirtmek yerine, tüm sunucuları envanter dosyasındaki bir gruba ekleyebilir ve ardından başucu kitabındaki grup.
Ansible, uzak sunuculardaki görevleri otomatikleştirmek için tasarlanmıştır. Parolasız SSH kimlik doğrulaması, Ansible'ın bu sunuculara manuel parola girişine gerek kalmadan bağlanmasını sağlar.
Ansible-admin kullanıcısının SSH anahtarını kullanarak bilgisayarınızdan başka bir bilgisayara (172.31.34.41 IP adresindeki gibi) güvenli bir bağlantı oluşturmak için bu komutu yürütün.
sudo ssh-copy-id -i /home/{your user name}/.ssh/id_rsa.pub {your user name}@{your host address}
Benim durumumda şöyle görünüyor.
sudo ssh-copy-id -i /home/ansible-admin/.ssh/id_rsa.pub ansible-admin@172.31.34.41
Başarılı şifresiz ssh kimlik doğrulama kurulumu sonucunun ekran görüntüsü
Artık “Eklenen anahtar(lar)ın sayısı: 1”i görebilirsiniz. Bu, parolasız SSH kimlik doğrulama kurulumunun başarıyla tamamlandığı anlamına gelir.
Artık Ansible hazır olduğuna ve kullanıma hazır olduğuna göre, satış hattınız için yeni bir Ansible taktik kitabı oluşturabilirsiniz. Bu başucu kitabı, Ansible'ın yeni bir Docker görüntüsü oluşturup Dockerhub'a göndermesine olanak tanıyacak.
Bunu nasıl yapabileceğiniz aşağıda açıklanmıştır:
touch hello-app.yml
hello-app.yml
dosyasını düzenleyin. Bu komutla düzenlemek için açın. vi hello-app.yml
--- - hosts: ansible user: root tasks: - name: create docker image command: docker build -t hello:latest . args: chdir: /opt/docker - name: create tag to push image onto dockerhub command: docker tag hello:latest zufarexplainedit/hello:latest - name: push docker image onto dockerhub command: docker push zufarexplainedit/hello:latest
Docker görevleri için Ansible playbook kullanıma hazır.
Ansible, Ansible playbook, AnsibleServer ve JenkinsServer'ın tamamı doğru şekilde yapılandırıldığında, Ansible playbook'u test etme zamanı geldi.
Ansible oyun kitabınızın konumuna gidin.
cd /opt/docker
Daha sonra aşağıdaki komutu yürütün.
sudo -u ansible-admin ansible-playbook /opt/docker/hello-app.yml
Tamamlandığında, Ansible oyun kitabınızın başarılı yürütme sonucunu göreceksiniz.
Docker görevleri için ansible playbook'un başarılı yürütme sonucunun ekran görüntüsü
Ayrıca, bir dakikanızı ayırıp Dockerhub hesabınızı ziyaret edin ve artık yeni bir görüntünün görünür olup olmadığını doğrulayın.
Dockerhub hesabının yeni görselin eklendiği ekran görüntüsü
Yeni eklenen resmi görmelisiniz. Bu sonuç, Ansible başucu kitabınızın doğru olduğunu doğrular.
Artık "SSH üzerinden yayınla" Github eklentisi, Ansible ve Docker yüklenip yapılandırıldığından, artık hepsini bir proje jar eserini aktarmak için "[modül 2]: Jenkins Sunucusu"nda oluşturduğunuz ardışık düzene entegre edebilirsiniz. " JenkinsServer" dan "AnsibleServer" a gidin ve ardından projenizden yeni bir Docker görüntüsü oluşturun ve ardından bu Docker görüntüsünü Dockerhub'a aktarın.
Bunu başarmak için şu adımları uygulamanız gerekir:
İşlem hattı yapılandırmasındaki "Derleme yapıtını SSH üzerinden gönder" bölümünün ekran görüntüsü
Son olarak, Ansible Docker görevlerinin işlem hattıyla entegrasyonunu tamamlamak için "Uygula" ve "Kaydet" düğmelerine tıklayın.
Artık bir proje jar eserini " JenkinsServer" dan "AnsibleServer" a sorunsuz bir şekilde aktarmak için yükseltilmiş işlem hattınızı test edebilir, ardından projenizden yeni bir Docker görüntüsü oluşturabilir ve ardından bu Docker görüntüsünü Dockerhub'a aktarabilirsiniz. Bunu yapmak için “Şimdi Oluştur” düğmesine tıklamanız gerekir. Sonuç olarak yapım geçmişinde başarılı bir iş sonucu göreceksiniz.
Ayrıca, bir dakikanızı ayırıp Dockerhub hesabınızı ziyaret edin ve artık yeni bir görüntünün görünür olup olmadığını doğrulayın.
Dockerhub hesabının yeni görselin eklendiği ekran görüntüsü
Yeni eklenen resmi görmelisiniz. Bu sonuç, Docker görevlerini içeren Ansible oyun kitabınızın ardışık düzene başarıyla entegre edildiğini doğrular.
Şimdi EC2 bulut sunucusunda K8'leri yapılandıralım. Yeni bir EC2 bulut sunucusu oluşturacak ve Kubernetes kümesiyle daha fazla etkileşim kurmak için kubectl komut satırı aracını kuracaksınız.
Bu adımı tamamlamak için bu eğitimin " AWS EC2 Sanal Sunucu örneğini başlatma" bölümündeki talimatları kullanın.
Güvenlik grubu kurulumu eklemeyi unutmayın. Tüm araçların ve SSH'nin sırasıyla 8080 ve 22 numaralı bağlantı noktalarında çalışmasına olanak tanır.
EC2 Sanal Sunucu örneğinizi ayırt etmek için “K8sServer” adını kullanın.
Yeni bir "K8sServer" EC2 örneği için "CI_CD_Pipeline" güvenlik grubunu ve "CI_CD_Pipeline_Key_Pair"i yeniden kullanabilirsiniz.
“Bağlan” düğmesine tıklayın.
"Bağlan" düğmesinin işaretçisini içeren AWS web sayfasının ekran görüntüsü
Artık EC2 Sanal Sunucu örneği çevrimiçi terminalini görebilirsiniz.
AWS EC2 Sanal Sunucu örneği çevrimiçi terminalinin ekran görüntüsü
EC2 sanal sunucu örneği üzerinde KuberenetesServer'ı yapılandırmak istediğinizde yapmanız gereken ilk şey host adını değiştirmektir.
Hadi yapalım. Ana bilgisayar adı dosyasını açmak için bu komutu yürütün:
sudo vi /etc/hostname
Bunun gibi bir şey görmelisiniz.
AWS EC2 Sanal Sunucu örneğinin ana bilgisayar adı dosyasıyla birlikte ekran görüntüsü
Bu ana bilgisayar adını “kubernetes-server” ile değiştirin ve ardından yeniden başlatın.
sudo init 6
Ana makine adınız değiştirildi.
Ana makine adı işaretçisini içeren AWS EC2 Sanal Sunucu örnek terminalinin ekran görüntüsü
AWS sürümünü kontrol etmek için bu komutu kullanın.
aws --version
Bu şekilde mevcut aws-cli sürümünüzü görebilirsiniz.
AWS EC2 Sanal Sunucu örneği çevrimiçi terminalinin aws version komut sonucunu içeren ekran görüntüsü
aws-cli/1.18 sürümünü görebiliyorsanız en son sürümü indirmelisiniz.
Artık EC2 bulut sunucunuzda eski bir aws-cli sürümünün bulunduğunu öğrendiğiniz için onu güncellemeniz gerekiyor. Bunun için AWS → Belgeler → AWS Komut Satırı Arayüzü → Sürüm 2 için Kullanım Kılavuzu'na gidin.
Sürüm 2 için Kullanıcı Kılavuzunu içeren AWS EC2 Sanal Sunucu örneği web sayfasının ekran görüntüsü
curl komutunu kopyalayıp yapıştırın.
Öncelikle awscli sürüm 2'yi indirmek için bu komutu çalıştırın.
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
İndirme işleminin başlamasını bekleyin.
Bunun gibi bir şey görmelisiniz.
AWS EC2 Sanal Sunucu örneği çevrimiçi terminalinin aws sürüm 2 sonucunun indirildiği ekran görüntüsü
İkinci olarak, awscli sürüm 2 arşivini açmak için bu komutu uygulamanız gerekir.
unzip awscliv2.zip
Üçüncüsü, awscli sürüm 2'yi yüklemek için bu komutu çalıştırmalısınız.
sudo ./aws/install
Ardından Kubernetes EC2 Sanal Sunucu örneği çevrimiçi terminalini yeniden yükleyin.
Daha sonra AWS sürümünü kontrol etmek için bu komutu kullanın.
aws --version
Aws cli'nin aws-cli/2'ye sahip olduğunu görebilirsiniz.
AWS EC2 Sanal Sunucu örneği çevrimiçi terminalinin aws sürüm koommand sonucunu içeren ekran görüntüsü
Kubectl, temel altyapıya bakılmaksızın herhangi bir Kubernetes kümesiyle etkileşim kurmaya yönelik temel bir komut satırı aracıdır. Bir Kubernetes kümesi içinde kaynakları yönetmenize, uygulamaları dağıtmanıza, ağı yapılandırmanıza, günlüklere erişmenize ve diğer çeşitli görevleri gerçekleştirmenize olanak tanır.
Artık bir Kubernetes kümesiyle daha fazla etkileşim kurmak için kubectl komut satırı aracını yüklemeniz gerekiyor. Bunun için AWS → Belgeler → Amazon EKS → Kullanıcı Kılavuzu → kubectl'i yükleme veya güncelleme → Linux seçeneğine gitmeniz gerekir.
Veya https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html bağlantısını tıklamanız yeterlidir.
AWS EKS Kullanıcı Kılavuzunun ekran görüntüsü
Öncelikle kubectl'i indirmek için bu komutu yürütün.
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.27.1/2023-04-19/bin/linux/amd64/kubectl
İndirme işlemini bekleyin.
Bunun gibi bir şey göreceksiniz.
Kubectl sonucunun indirildiği AWS EC2 Sanal Sunucu örneği çevrimiçi terminalinin ekran görüntüsü
Kubectl'e izin verin.
chmod +x kubectl
Kubectl'i /usr/local/bin klasörüne taşıyın.
sudo mv kubectl /usr/local/bin
Kubectl sürümünü kontrol edin.
kubectl version --output=yaml
Eksctl , Amazon EKS hizmetine özel olarak tasarlanmış başka bir komut satırı aracıdır. Eksctl, AWS EKS kümeleri oluşturmak, düğüm gruplarını yönetmek ve AWS altyapı kurulumunun ve yönetiminin çoğunu soyutlayarak IAM rolleri ve diğer AWS hizmetleriyle entegrasyon gibi EKS'ye özgü görevleri gerçekleştirmek için kullanılabilir.
Kubectl'i indirmek için komutu yürütün.
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
eksctl'yi /usr/local/bin klasörüne taşıyın.
sudo mv /tmp/eksctl /usr/local/bin
eksctl sürümünü kontrol edin.
eksctl version
Sürümü görmelisiniz
Eksctl sürümüne sahip AWS EC2 Sanal Sunucu örneği çevrimiçi terminalinin ekran görüntüsü
Bir IAM rolü oluşturmanız ve bunu “KubernetesServer” EC2 örneğinize eklemeniz gerekir.
Bunu yapmak için arama kutusunda EC2'yi bulmanız gerekir.
https://us-east-1.console.aws.amazon.com/ec2 / bağlantısına tıklayarak EC2 Sanal Sunucusunu seçin.
AWS web sayfasının "IAM" işaretçisini içeren ekran görüntüsü
IAM Kontrol Paneli → Roller'e gidin.
AWS web sayfasının "IAM Rolleri" işaretçisini içeren ekran görüntüsü
IAM rolleri web sayfasında "Rol oluştur" düğmesini tıklayın.
Ardından “AWS hizmeti”, “EC2”yi seçin. Ve “İleri” butonuna tıklayın.
AWS web sayfasının "IAM Rolleri yapılandırması" işaretçisini içeren ekran görüntüsü
Daha sonra arama kutusunda “AmazonEC2FullAccess” , “AmazonEC2FullAccess” , “IAMFullAccess” , “AWSCloudFormationFullAccess” i bulun ve ardından “İzin ekle” butonuna tıklayın.
Ve ardından “İleri” düğmesine tıklayın.
AWS web sayfasının AdministratorAccess izni işaretçisini içeren ekran görüntüsü
Daha sonra “Rol adı” girişine “Eksctl_Role” yazın.
Ve “Rol oluştur” butonuna tıklayın.
İzin rolü yapılandırmasını gösteren işaretçiyi içeren AWS web sayfasının ekran görüntüsü
Rol en sonunda oluşturulur.
AWS EC2 bulut sunucusu web sayfasına gidin. “KuberbetesServer”ı seçin. Ardından “Eylemler” → “Güvenlik” → “IAM Rolünü Değiştir”i tıklayın.
KubernetesServer Security düğmesinin işaretçisini içeren AWS web sayfasının ekran görüntüsü
“Eksctl_Role” u seçin ve ardından “IAM rolünü güncelle” düğmesini tıklayın.
Elsctl_Role IAM rolünün işaretçisini içeren AWS web sayfasının ekran görüntüsü
Artık IAM Rolünüz “EKS_Server” ve eksctl aracınıza bağlandı.
Amazon EKS (Elastic Kubernetes Service) kümesi, AWS üzerinde yönetilen bir Kubernetes ortamıdır ve kurulum, ölçeklendirme ve bakım gibi karmaşık altyapı görevlerini otomatikleştirir. Container mimarisine alınmış uygulamaları dağıtmak, yönetmek ve ölçeklendirmek, operasyonları kolaylaştırmak ve geliştiricilerin temel altyapıyı yönetmek yerine kodlamaya odaklanmalarını sağlamak için verimli, güvenli ve AWS için optimize edilmiş bir platform sağladığından önemlidir.
Artık EKS kümenizi kurmanın zamanı geldi.
Bunu başarmak için şu adımları izleyin:
eksctl create cluster --name cluster-name \ --region region-name \ --node-type instance-type \ --nodes-min 2 \ --nodes-max 2 \ --zones <AZ-1>,<AZ-2>
Örneğin benim durumumda şöyle görünüyor.
eksctl create cluster --name zufarexplainedit \ --region eu-north-1 \ --node-type t3.micro
Değiştirilen komutu yürütün ve küme oluşturma işleminin tamamlanmasını sabırla bekleyin. AWS CloudFormation web sayfasında EKS kümesi durumunun "oluşturuluyor" olarak belirtildiğini fark edeceksiniz.
EKS kümesinin "oluşturuluyor" durumunu görebileceğiniz AWS CloudFormation işaretçisini içeren AWS web sayfasının ekran görüntüsü
Küme oluşturma prosedürü genellikle yaklaşık 20 dakika sürer. Tamamlandığında, terminal işlemin sonucunu gösterecektir.
EKS kümesi oluşturma sonucunu görebileceğiniz AWS EC2 terminali işaretçisini içeren AWS web sayfasının ekran görüntüsü
Ayrıca AWS CloudFormation web sayfasında başarılı EKS kümesi oluşturma durumunu doğrulayabilirsiniz.
EKS kümesi oluşturma sonucunu görebileceğiniz AWS CloudFormation işaretçisini içeren AWS web sayfasının ekran görüntüsü
Kubernetes Dağıtımı YAML dosyası, Kubernetes kümesindeki belirli bir uygulamanın veya hizmetin nasıl yönetileceğini ve bakımının nasıl yapılacağını tanımlayan, YAML biçiminde yazılmış bir yapılandırma komut dosyasıdır. Uygulamayı çalıştıran konteynerlerin dağıtımını, ölçeklenmesini, güncellenmesini ve izlenmesini düzenlemek için talimatlar içerir. Bu dosya, kapsayıcı görüntüsü, istenen kopya sayısı, kaynak sınırları, ortam değişkenleri, ağ ayarları ve daha fazlası gibi ayrıntıları içerir. Dağıtım YAML dosyası, bir Kubernetes kümesine uygulandığında uygulamanın istenen durumunu sağlar; istenen kullanılabilirlik ve güvenilirlik düzeyini korumak için kapsayıcıların oluşturulmasını, ölçeklendirilmesini ve kurtarılmasını otomatik olarak yönetir.
Artık Kubernetes kümesi, eksctl, kubectl yüklenip yapılandırıldığından, bir Kubernetes Deployment yaml dosyası oluşturabilirsiniz.
Aşağıdaki komutu çalıştırarak bunu yapabilirsiniz.
touch hello-app-deployment.yaml
Daha sonra aşağıdaki komutu çalıştırarak bu dosyayı düzenleyin.
vi hello-app-deployment.yaml
Bu içeriği hello-app-deployment.yaml dosyasına ekleyin.
apiVersion: apps/v1 kind: Deployment metadata: name: zufarexplainedit-hello-app labels: app: hello-app spec: replicas: 2 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: containers: - name: hello-app image: zufarexplainedit/hello imagePullPolicy: Always ports: - containerPort: 8080 strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 1
Artık hello-app-deployment.yaml oluşturuldu ve kullanıma hazır.
Kubernetes Hizmeti YAML dosyası, bir grup bölme için ağ soyutlamasını tanımlayan ve bunlara bir Kubernetes kümesi içinde tutarlı bir şekilde erişilmesine olanak tanıyan, YAML biçiminde yazılmış bir yapılandırma komut dosyasıdır. Bu dosya, hizmetin diğer hizmetler veya harici istemciler tarafından nasıl keşfedilmesi, erişilmesi ve yük dengelemesinin nasıl yapılması gerektiğini özetlemektedir. Hizmet türü (ClusterIP, NodePort, LoadBalancer), bağlantı noktası numaraları, bölmeleri tanımlamak için seçiciler ve daha fazlası gibi özellikleri içerir. Hizmet YAML dosyası, bir Kubernetes kümesine uygulandığında trafiği uygun bölmelere yönlendiren bir sanal IP ve bağlantı noktası oluşturur, temeldeki bölme değişikliklerini soyutlar ve iletişim için kararlı bir uç nokta sağlayarak kesintisiz bağlantı ve dinamik ölçeklendirme sağlar.
Kubernetes kümesi, eksctl, kubectl kurulup yapılandırıldığından Kubernetes Service yaml dosyası oluşturabilirsiniz.
Bunu yapmak için aşağıdaki komutu çalıştırarak bir Kubernetes Service yaml dosyası oluşturmanız gerekir.
touch hello-app-service.yaml
Daha sonra aşağıdaki komutu çalıştırarak bu dosyayı düzenleyin.
vi hello-app-service.yaml
Bu içeriği hello-app-deployment.yaml dosyasına ekleyin.
apiVersion: v1 kind: Service metadata: name: zufarexplainedit-hello-app-service labels: app: hello-app spec: selector: app: hello-app ports: - port: 8080 targetPort: 8080 type: LoadBalancer
Artık hello-app-service.yaml oluşturuldu ve kullanıma hazır.
Kubernetes EKS kümeniz başarıyla yüklenip yapılandırıldığında ve Kubernetes hizmetiniz ile dağıtım dosyalarınız hazır olduğunda, kubectl komutlarını kullanarak işleri test etmenin zamanı geldi.
Dağıtımı Uygulayın.
Dağıtım yapılandırmasını uygulamak için aşağıdaki komutu kullanın.
kubectl apply -f hello-app-deployment.yaml
Bu, belirtilen sayıda replika ve sürekli güncelleme stratejisiyle bir dağıtım oluşturarak uygulamanızın kullanılabilirliğini ve yönetilebilirliğini sağlar.
2. Hizmeti Uygulayın.
Daha sonra hizmet yapılandırmasını uygulayın.
kubectl apply -f hello-app-service.yaml
Bu, uygulamanızı internete açık hale getiren LoadBalancer tipi bir hizmet kuracaktır.
LoadBalancer'ın sağlanmasının ve harici bir IP adresi almasının kısa bir süre alabileceğini unutmayın.
LoadBalancer Durumunu kontrol edin.
Kullanarak hizmetinizin durumunu izleyin.
kubectl get service zufarexplainedit-hello-app-service
Harici bir IP atandığında uygulamanıza erişmeye neredeyse hazırsınız demektir.
Uygulamanıza Erişin.
Bir web tarayıcısı kullanarak, atanan harici IP adresini ve ardından :8080'i girin. Kısa bir süre sonra sayfa yüklenecek ve "MerhabaDünya" mesajı görüntülenecektir. İlk yüklemenin birkaç saniye sürebileceğini unutmayın.
Merhaba uygulaması web sayfasının ekran görüntüsü
Kubernetes ortamınızdaki kaynakları düzenlemeniz gerektiğinde dağıtımları, bölmeleri ve hizmetleri etkili bir şekilde kaldırmak için aşağıdaki kubectl komutlarını kullanabilirsiniz.
1. Tüm Dağıtımları Sil .
Tüm dağıtımları silmek için aşağıdaki komutu kullanabilirsiniz.
kubectl delete deployments --all
Bu eylem, kümenizde hiçbir etkin dağıtım örneğinin kalmamasını sağlar.
2. Tüm Bölmeleri Sil .
Bir dağıtım tarafından yönetilsin ya da yönetilmesin tüm pod'ları silmeniz gerekiyorsa aşağıdaki komutu kullanabilirsiniz.
kubectl delete pods --all
Bölmelerin temizlenmesi, küme durumunuzu sıfırlamanıza veya yeni dağıtımlara hazırlanmanıza yardımcı olabilir.
3. Tüm Hizmetleri Sil .
Uygulamalarınızı ağa maruz bırakan servisleri temizlemek için aşağıdaki komutu kullanabilirsiniz.
kubectl delete services --all
Hizmetlerin kaldırılması kesinti gerektirebilir; bu nedenle devam etmeden önce olası sonuçları göz önünde bulundurun.
Çalışan düğümler, ağ bileşenleri ve diğer kaynaklar dahil olmak üzere eksctl
ile oluşturulan belirtilen Amazon EKS kümesiyle ilişkili tüm kaynakları kaldırmak için aşağıdaki komutu kullanabilirsiniz.
eksctl delete cluster --name {your cluster name} --region {your region name}
Bu benim için.
eksctl delete cluster --name zufarexplainedit --region eu-north-1
Bu eylem geri alınamayacağı ve veri kaybına neden olacağı için kümeyi durdurma konusunda emin olduğunuzdan emin olun.
Şimdi “KubernetesServer” AWS EC2 Virtual Server örneğine yeni bir ansible-admin kullanıcısı ekleyelim.
Bunu yapmak için bu komutu kullanın.
sudo useradd ansible-admin
Daha sonra ansible-admin kullanıcısının şifresini ayarlayın.
sudo passwd ansible-admin
Ayrıca sudoers dosyasını düzenleyerek kullanıcı ayrıcalıklarını yapılandırmanız gerekir.
sudo visudo
Bu sudoers dosyasına “ansible-admin ALL=(ALL) ALL” ekleyin.
AWS EC2 Sanal Sunucu bulut sunucusu terminalinin yönetici ayrıcalıklarına işaret eden ekran görüntüsü
Ayrıca, PasswordAuthentication'ı etkinleştirmek için /etc/ssh/sshd_config dosyasını düzenlemeniz gerekir.
sudo vi /etc/ssh/sshd_config
AWS EC2 Sanal Sunucu bulut sunucusu terminalinin yönetici ayarları işaretçisini içeren ekran görüntüsü
Daha sonra bu değişiklikleri yapmak için hizmeti yeniden yüklemeniz gerekir.
sudo service sshd reload
Bu komutu yürütmenin bir sonucu olarak şunu göreceksiniz:
AWS EC2 Sanal Sunucu bulut sunucusu terminalinin sshd yeniden yükleme sonucunu gösteren işaretçiyi içeren ekran görüntüsü
Artık diğer tüm komutlara sudo eklemekten kaçınmak için bu komutu kullanabilirsiniz.
sudo su - ansible-admin
Bu makalenin ilerleyen kısımlarında K8s EC2 sanal sunucu örneği gibi uzak sunucuları yönetmeyi planlıyorsunuz. Bu yüzden SSH anahtarlarını ayarlamanız gerekiyor.
ssh-keygen
Bu komutu yürütmenin bir sonucu olarak şunu göreceksiniz:
AWS EC2 Sanal Sunucu bulut sunucusu terminalinin ssh-keygen sonucunu gösteren işaretçiyi içeren ekran görüntüsü
Artık SSH anahtarları oluşturuldu ve kullanıma hazır.
Ansible, uzak sunuculardaki görevleri otomatikleştirmek için tasarlanmıştır. Parolasız SSH kimlik doğrulaması, Ansible'ın bu sunuculara manuel parola girişine gerek kalmadan bağlanmasını sağlar.
Ansible-admin kullanıcısının SSH anahtarını kullanarak bilgisayarınızdan başka bir bilgisayara (172.31.34.41 IP adresindeki gibi) güvenli bir bağlantı oluşturmak için bu komutu yürütün.
sudo ssh-copy-id -i /home/{your user name}/.ssh/id_rsa.pub {your user name}@{your host address}
Benim durumumda şöyle görünüyor.
sudo ssh-copy-id -i /home/ansible-admin/.ssh/id_rsa.pub ansible-admin@172.31.34.41
Başarılı şifresiz ssh kimlik doğrulama kurulumu sonucunun ekran görüntüsü
Artık “Eklenen anahtar(lar)ın sayısı: 1”i görebilirsiniz. Bu, parolasız SSH kimlik doğrulama kurulumunun başarıyla tamamlandığı anlamına gelir.
Bir Ansible playbook'u çalıştırdığınızda, üzerinde çalışması gereken ana bilgisayarları belirtirsiniz. Bu adımda KubernetesServer EC2 örnek ana bilgisayarını belirtmeniz gerekir. Bunu yapmak için “ [Module 6]: Ansible”da geçtiğiniz adımların aynısını tekrarlamanız gerekir.
Aşağıdaki komutu çalıştırarak KubernetesServer EC2 sample hostunu bulalım.
sudo ifconfig
"ifconfig" dosyasının ekran görüntüsü
KubernetesServer EC2 örnek ana bilgisayarını bulduktan sonra aşağıdaki komutu çalıştırarak onu Ansible hosts dosyasına ekleyebilirsiniz.
sudo vi /etc/ansible/hosts
Ansible ve kubernetes ana bilgisayarlarına sahip "hosts" dosyalarının ekran görüntüsü
Referans olarak “[kubernetes]” ifadesini de ekleyebilirsiniz
Artık Kubernetes'in kurulumu tamam olduğuna ve kullanıma hazır olduğuna göre, işlem hattınız için Kubernetes görevlerini içeren yeni bir Ansible oyun kitabı oluşturabilirsiniz. Bu başucu kitabı, Ansible'ın uygulamanızı Kubernetes kümesinde kubectl komutlarıyla çalıştırmasına olanak tanır.
Bunu nasıl yapabileceğiniz aşağıda açıklanmıştır:
touch kubernetes-hello-app.yml
hello-app.yml
dosyasını düzenleyin. Bu komutla düzenlemek için açın. vi kubernetes-hello-app.yml
--- - hosts: kubernetes tasks: - name: deploy regapp on kubernetes command: kubectl apply -f hello-app-deployment.yaml - name: create service for regapp command: kubectl apply -f hello-app-service.yaml - name: update deployment with new pods if image updated in docker hub command: kubectl rollout restart deployment.apps/zufarexplainedit-hello-app
Kubernetes görevleri için Ansible playbook kullanıma hazır.
Kubernetes, Ansible ve Kubernetes görevlerine yönelik Ansible oyun kitabı artık ayarlandığına ve kullanıma hazır olduğuna göre, bunu Jenkins ile entegre edebilirsiniz.
JenkinsServer → Jenkins kontrol paneli → Yeni Öğe'ye gidin.
“CD-Job” adında yeni Jenkins Freestyle projesi oluşturun.
Jenkins'in yeni serbest stil projesi "CD-Job"un ekran görüntüsü
“Tamam” butonuna tıklayın.
“Derleme Sonrası Eylemler” bölümüne gidin.
“Derleme sonrası eylem ekle” düğmesini tıklayın.
“Derleme yapıtlarını SSH üzerinden gönder” seçeneğini seçin.
SSH Sunucusu olarak “AnsibleServer”ı seçin.
Bu komutu “exec command” girişine ekleyin.
sudo -u ansible-admin ansible-playbook /opt/docker/kubernetes-hello-app.yml
“Uygula” ve “Kaydet” butonlarına tıklayın.
Jenkins kontrol paneli → “CI_CD_Pipeline” → Yapılandır → “Derleme Sonrası Eylemler” bölümüne gidin.
“Derleme sonrası eylem ekle” düğmesini tıklayın.
“Başka projeler oluştur” seçeneğini seçin.
“Diğer projeler oluştur” bölümüne gidin.
“Yalnızca derleme kararlıysa tetikle” seçeneğini seçin.
“Yapılacak Proje” girişine “CD-İşi” ekleyin.
"Diğer projeler oluştur" bölümünün ekran görüntüsü
“Uygula” ve “Kaydet” butonlarına tıklayın.
Artık boru hattının tamamen bittiğini ve kullanıma hazır olduğunu düşünebilirsiniz.
Şimdi son boru hattı versiyonunu teste tabi tutmanın zamanı geldi.
Jenkins → Jenkins kontrol paneli → "CI_CD_Pipeline" seçeneğine gidin.
"Şimdi Oluştur" düğmesini tıklayın.
Sonuçları görmek için derleme konsolu günlüklerini inceleyin.
Derleme konsolu günlüklerinin ekran görüntüsü
Derleme konsolu günlüklerinde "CD İşi"nin tetiklendiğini ve son durumun BAŞARI olarak işaretlendiğini fark edeceksiniz.
4
Ayrıca yeni Docker görüntüsünün eklendiğini onaylamak için Dockerhub'a gidebilirsiniz.
Son olarak uygulamanıza bir web tarayıcısı kullanarak erişebilirsiniz. Atanan harici IP adresini ve ardından ":8080" girin. Kısa bir süre sonra sayfa yüklenecek ve "MerhabaDünya" mesajı görüntülenecektir.
Bu modern CI/CD hattını kurma konusunda iyi iş çıkardınız!
Harika bir iş başardınız ve gerçek bir kahramansınız!
Tüm çabanız için teşekkürler!
Zufar Sunagatov, modern yazılım sistemleri tasarlama konusunda tutkulu, deneyimli, kıdemli bir yazılım mühendisidir.
Zufar Sunagatov
AWS, K8S, Docker, Ansible, Git, Github, Apache Maven ve Jenkins ile CI/CD İşlem Hattı Oluşturma | HackerNoon