{"id":38870,"date":"2026-02-09T15:41:30","date_gmt":"2026-02-09T12:41:30","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38870"},"modified":"2026-02-09T15:41:30","modified_gmt":"2026-02-09T12:41:30","slug":"jenkins-nedir-ve-neden-onemlidir","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/","title":{"rendered":"Jenkins Nedir ve Neden \u00d6nemlidir?"},"content":{"rendered":"<p><body><\/p>\n<h2>Jenkins Nedir ve Neden \u00d6nemlidir?<\/h2>\n<p>Modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde, kod de\u011fi\u015fikliklerinin s\u00fcrekli olarak entegre edildi\u011fi, test edildi\u011fi ve da\u011f\u0131t\u0131ld\u0131\u011f\u0131 bir yakla\u015f\u0131m olan S\u00fcrekli Entegrasyon (CI) ve S\u00fcrekli Da\u011f\u0131t\u0131m (CD) hayati bir rol oynamaktad\u0131r. Jenkins, bu s\u00fcre\u00e7leri otomatikle\u015ftirmek i\u00e7in kullan\u0131lan a\u00e7\u0131k kaynakl\u0131, g\u00fc\u00e7l\u00fc bir otomasyon sunucusudur. Geli\u015ftiricilerin kodlar\u0131n\u0131 birle\u015ftirme s\u0131kl\u0131\u011f\u0131n\u0131 art\u0131rarak hatalar\u0131 erken a\u015famada tespit etmelerine, testleri otomatik \u00e7al\u0131\u015ft\u0131rmalar\u0131na ve yaz\u0131l\u0131m\u0131 daha h\u0131zl\u0131 ve g\u00fcvenilir bir \u015fekilde yay\u0131nlamalar\u0131na olanak tan\u0131r.<\/p>\n<p>Bu rehberde, CentOS 7 i\u015fletim sistemi \u00fczerinde Jenkins&#8217;i ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, temel yap\u0131land\u0131rmalar\u0131n\u0131 nas\u0131l yapaca\u011f\u0131n\u0131z\u0131 ve ilk CI\/CD projenizi nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde \u00f6\u011freneceksiniz.<\/p>\n<h2>Jenkins Kurulumu \u0130\u00e7in \u00d6n Gereksinimler<\/h2>\n<p>Jenkins&#8217;in sorunsuz \u00e7al\u0131\u015fabilmesi i\u00e7in baz\u0131 \u00f6n ko\u015fullar\u0131n yerine getirilmesi gerekmektedir. CentOS 7 sunucunuzda bu ad\u0131mlar\u0131 takip ederek gerekli ortam\u0131 haz\u0131rlayal\u0131m.<\/p>\n<h3>Sistem G\u00fcncellemesi<\/h3>\n<p>Herhangi bir kuruluma ba\u015flamadan \u00f6nce sistem paketlerini g\u00fcncel tutmak iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo yum update -y\nsudo yum upgrade -y<\/code><\/pre>\n<h3>Java Kurulumu<\/h3>\n<p>Jenkins, Java tabanl\u0131 bir uygulamad\u0131r ve \u00e7al\u0131\u015fmas\u0131 i\u00e7in Java Sanal Makinesi (JVM) gerektirir. CentOS 7 \u00fczerinde OpenJDK 8&#8217;i kurmak i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo yum install java-1.8.0-openjdk-devel -y<\/code><\/pre>\n<p>Kurulumun ard\u0131ndan Java s\u00fcr\u00fcm\u00fcn\u00fc kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">java -version<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131 a\u015fa\u011f\u0131daki gibi olmal\u0131d\u0131r:<\/p>\n<pre><code class=\"language-plaintext\">openjdk version \"1.8.0_XXX\"\nOpenJDK Runtime Environment (build 1.8.0_XXX-bXX)\nOpenJDK 64-Bit Server VM (build 25.XXX-bXX, mixed mode)<\/code><\/pre>\n<h3>Firewall Ayarlar\u0131<\/h3>\n<p>Jenkins varsay\u0131lan olarak 8080 portunu kullan\u0131r. Bu porta d\u0131\u015far\u0131dan eri\u015filebilmesi i\u00e7in CentOS 7&#8217;nin g\u00fcvenlik duvar\u0131 (firewalld) \u00fczerinde bir kural tan\u0131mlaman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo firewall-cmd --permanent --add-port=8080\/tcp\nsudo firewall-cmd --reload<\/code><\/pre>\n<p>Bu komutlar, 8080 portuna TCP trafi\u011fine izin verir ve g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 yeniden y\u00fckler.<\/p>\n<h2>Jenkins Kurulumu ve \u0130lk Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>\u00d6n gereksinimleri tamamlad\u0131ktan sonra Jenkins&#8217;i kurmaya ve ilk yap\u0131land\u0131rmas\u0131n\u0131 yapmaya haz\u0131r\u0131z.<\/p>\n<h3>Jenkins Repository Ekleme<\/h3>\n<p>Jenkins paketlerini CentOS 7&#8217;ye kurabilmek i\u00e7in \u00f6ncelikle Jenkins&#8217;in kendi YUM deposunu sisteminize eklemeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo wget -O \/etc\/yum.repos.d\/jenkins.repo https:\/\/pkg.jenkins.io\/redhat-stable\/jenkins.repo\nsudo rpm --import https:\/\/pkg.jenkins.io\/redhat-stable\/jenkins.io.key<\/code><\/pre>\n<h3>Jenkins Kurulumu<\/h3>\n<p>Depoyu ekledikten sonra Jenkins paketini kurabiliriz:<\/p>\n<pre><code class=\"language-bash\">sudo yum install jenkins -y<\/code><\/pre>\n<h3>Jenkins Servisini Ba\u015flatma ve Etkinle\u015ftirme<\/h3>\n<p>Kurulum tamamland\u0131ktan sonra Jenkins servisini ba\u015flat\u0131n ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start jenkins\nsudo systemctl enable jenkins\nsudo systemctl status jenkins<\/code><\/pre>\n<p><code>systemctl status jenkins<\/code> komutunun \u00e7\u0131kt\u0131s\u0131nda Jenkins&#8217;in <code>active (running)<\/code> oldu\u011funu g\u00f6rmelisiniz.<\/p>\n<h3>Jenkins Web Aray\u00fcz\u00fc ile \u0130lk Yap\u0131land\u0131rma<\/h3>\n<p>Jenkins servisi \u00e7al\u0131\u015fmaya ba\u015flad\u0131ktan sonra, web taray\u0131c\u0131n\u0131zdan sunucunuzun IP adresi veya alan ad\u0131yla 8080 portundan eri\u015febilirsiniz:<\/p>\n<pre><code class=\"language-plaintext\">http:\/\/sizin_sunucu_ip_adresiniz:8080<\/code><\/pre>\n<p>\u0130lk eri\u015fimde sizden bir ba\u015flang\u0131\u00e7 \u015fifresi isteyecektir. Bu \u015fifreyi a\u015fa\u011f\u0131daki komutla alabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo cat \/var\/lib\/jenkins\/secrets\/initialAdminPassword<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131daki \u015fifreyi kopyalay\u0131p Jenkins web aray\u00fcz\u00fcndeki ilgili alana yap\u0131\u015ft\u0131r\u0131n ve &#8220;Continue&#8221; butonuna t\u0131klay\u0131n.<\/p>\n<p>Ard\u0131ndan, Jenkins eklentilerini kurma se\u00e7ene\u011fi sunulacakt\u0131r:<\/p>\n<ul>\n<li><strong>Install suggested plugins:<\/strong> \u00c7o\u011fu kullan\u0131c\u0131 i\u00e7in \u00f6nerilen eklentileri kurar. Bu genellikle en iyi ba\u015flang\u0131\u00e7 se\u00e7ene\u011fidir.<\/li>\n<li><strong>Select plugins to install:<\/strong> \u0130htiya\u00e7lar\u0131n\u0131za g\u00f6re eklentileri manuel olarak se\u00e7menize olanak tan\u0131r.<\/li>\n<\/ul>\n<p>&#8220;Install suggested plugins&#8221; se\u00e7ene\u011fini se\u00e7erek devam etmenizi \u00f6neririz. Jenkins gerekli eklentileri indirip kuracakt\u0131r.<\/p>\n<p>Eklenti kurulumu tamamland\u0131ktan sonra, ilk y\u00f6netici kullan\u0131c\u0131y\u0131 olu\u015fturman\u0131z istenecektir. Kullan\u0131c\u0131 ad\u0131, parola, tam ad ve e-posta adresi gibi bilgileri girerek bir y\u00f6netici hesab\u0131 olu\u015fturun ve &#8220;Save and Finish&#8221; butonuna t\u0131klay\u0131n. Son olarak, &#8220;Start using Jenkins&#8221; butonuna t\u0131klayarak Jenkins kontrol paneline eri\u015febilirsiniz.<\/p>\n<h2>Jenkins ile \u0130lk CI\/CD Projesi Olu\u015fturma<\/h2>\n<p>Jenkins kurulumunu tamamlad\u0131\u011f\u0131n\u0131za g\u00f6re, basit bir Continuous Integration projesi olu\u015ftural\u0131m. Bu \u00f6rnekte, bir Git deposundan kod \u00e7ekecek ve basit bir kabuk komutu \u00e7al\u0131\u015ft\u0131raca\u011f\u0131z.<\/p>\n<h3>Yeni Bir \u0130\u015f (Job) Olu\u015fturma<\/h3>\n<ol>\n<li>Jenkins kontrol panelinde sol men\u00fcden &#8220;New Item&#8221; (Yeni \u00d6\u011fe) se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li>\n<li>Projenize bir isim verin (\u00f6rne\u011fin: <code>MyFirstCIProject<\/code>).<\/li>\n<li>&#8220;Freestyle project&#8221; (Serbest Stil Proje) se\u00e7ene\u011fini se\u00e7in ve &#8220;OK&#8221; butonuna t\u0131klay\u0131n.<\/li>\n<\/ol>\n<h3>Proje Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Proje yap\u0131land\u0131rma sayfas\u0131nda a\u015fa\u011f\u0131daki b\u00f6l\u00fcmleri ayarlayaca\u011f\u0131z:<\/p>\n<h4>Kaynak Kodu Y\u00f6netimi (Source Code Management &#8211; SCM)<\/h4>\n<p>Bu b\u00f6l\u00fcmde, projenizin kaynak kodunun nerede bulundu\u011funu belirtirsiniz. Git kullanaca\u011f\u0131m\u0131z i\u00e7in, Jenkins sunucunuzda Git&#8217;in kurulu oldu\u011fundan emin olun. De\u011filse, a\u015fa\u011f\u0131daki komutla kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo yum install git -y<\/code><\/pre>\n<p>Jenkins yap\u0131land\u0131rma sayfas\u0131nda:<\/p>\n<ol>\n<li>&#8220;Git&#8221; se\u00e7ene\u011fini i\u015faretleyin.<\/li>\n<li>&#8220;Repository URL&#8221; alan\u0131na bir Git deposunun URL&#8217;sini girin (\u00f6rne\u011fin, <code>https:\/\/github.com\/jenkins-docs\/simple-java-maven-app.git<\/code> veya kendi \u00f6rnek deponuzun URL&#8217;si).<\/li>\n<li>E\u011fer depo \u00f6zel ise, &#8220;Credentials&#8221; (Kimlik Bilgileri) b\u00f6l\u00fcm\u00fcnden kimlik bilgilerinizi eklemeniz gerekebilir.<\/li>\n<\/ol>\n<h4>Yap\u0131land\u0131rma Tetikleyicileri (Build Triggers)<\/h4>\n<p>Bu b\u00f6l\u00fcm, bir yap\u0131n\u0131n ne zaman tetiklenece\u011fini belirler. En yayg\u0131n se\u00e7eneklerden biri &#8220;Poll SCM&#8221;dir. Bu, Jenkins&#8217;in belirli aral\u0131klarla SCM deposunu kontrol etmesini ve bir de\u011fi\u015fiklik alg\u0131lad\u0131\u011f\u0131nda bir yap\u0131 (build) tetiklemesini sa\u011flar.<\/p>\n<ol>\n<li>&#8220;Poll SCM&#8221; se\u00e7ene\u011fini i\u015faretleyin.<\/li>\n<li>&#8220;Schedule&#8221; (Zamanlama) alan\u0131na bir cron ifadesi girin. \u00d6rne\u011fin, her dakika kontrol etmek i\u00e7in <code><em> <\/em> <em> <\/em> <em><\/code> kullanabilirsiniz. Daha ger\u00e7ek\u00e7i bir senaryo i\u00e7in <code>H\/5 <\/em> <em> <\/em> *<\/code> (her 5 dakikada bir) gibi bir ifade kullanabilirsiniz.<\/li>\n<\/ol>\n<h4>Yap\u0131 Ad\u0131mlar\u0131 (Build Steps)<\/h4>\n<p>Bu b\u00f6l\u00fcm, kaynak kodu \u00e7ekildikten sonra \u00e7al\u0131\u015ft\u0131r\u0131lacak komutlar\u0131 veya betikleri tan\u0131mlar. \u00d6rne\u011fin, bir Java projesini derlemek i\u00e7in Maven komutlar\u0131n\u0131 veya basit bir &#8220;Hello World&#8221; \u00e7\u0131kt\u0131s\u0131 i\u00e7in kabuk komutlar\u0131n\u0131 kullanabiliriz.<\/p>\n<ol>\n<li>&#8220;Add build step&#8221; (Yap\u0131 ad\u0131m\u0131 ekle) butonuna t\u0131klay\u0131n.<\/li>\n<li>&#8220;Execute shell&#8221; (Kabuk komutunu \u00e7al\u0131\u015ft\u0131r) se\u00e7ene\u011fini se\u00e7in.<\/li>\n<li>&#8220;Command&#8221; (Komut) alan\u0131na a\u015fa\u011f\u0131daki komutlar\u0131 girin:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">echo \"Proje kaynak kodu \u00e7ekildi.\"\nls -la\necho \"Jenkins ilk CI projeniz ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131!\"<\/code><\/pre>\n<p>E\u011fer bir Maven projesi ise ve Jenkins sunucunuzda Maven kurulu ise (kurulu de\u011filse <code>sudo yum install maven -y<\/code> komutuyla kurabilirsiniz), a\u015fa\u011f\u0131daki gibi komutlar kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">echo \"Maven projesi derleniyor...\"\nmvn clean install<\/code><\/pre>\n<h3>Projeyi Kaydetme ve \u00c7al\u0131\u015ft\u0131rma<\/h3>\n<p>T\u00fcm yap\u0131land\u0131rmalar\u0131 tamamlad\u0131ktan sonra &#8220;Save&#8221; (Kaydet) butonuna t\u0131klay\u0131n. Proje ana sayfas\u0131na y\u00f6nlendirileceksiniz. Sol men\u00fcden &#8220;Build Now&#8221; (\u015eimdi Olu\u015ftur) butonuna t\u0131klayarak ilk yap\u0131y\u0131 manuel olarak tetikleyebilirsiniz.<\/p>\n<p>Yap\u0131 tamamland\u0131\u011f\u0131nda, &#8220;Build History&#8221; (Yap\u0131 Ge\u00e7mi\u015fi) b\u00f6l\u00fcm\u00fcnde yap\u0131 numaras\u0131n\u0131n yan\u0131ndaki simgeye t\u0131klayarak ve ard\u0131ndan &#8220;Console Output&#8221; (Konsol \u00c7\u0131kt\u0131s\u0131) se\u00e7ene\u011fini se\u00e7erek yap\u0131n\u0131n loglar\u0131n\u0131 inceleyebilirsiniz.<\/p>\n<h2>Pratik Bilgiler ve En \u0130yi Uygulamalar<\/h2>\n<h3>G\u00fcvenlik<\/h3>\n<ul>\n<li><strong>Kullan\u0131c\u0131 ve Rol Y\u00f6netimi:<\/strong> Jenkins&#8217;te farkl\u0131 kullan\u0131c\u0131lar ve rollere sahip olabilirsiniz. Herkese y\u00f6netici yetkisi vermek yerine, Matrix Authorization Strategy gibi eklentilerle belirli projelere veya i\u015flemlere yetki atay\u0131n.<\/li>\n<li><strong>HTTPS Yap\u0131land\u0131rmas\u0131:<\/strong> Jenkins&#8217;e eri\u015fimi HTTPS \u00fczerinden sa\u011flamak i\u00e7in Nginx veya Apache gibi bir ters proxy (reverse proxy) kullan\u0131n. Bu, ileti\u015fim trafi\u011finin \u015fifrelenmesini sa\u011flar.<\/li>\n<li><strong>Kimlik Bilgileri Y\u00f6netimi:<\/strong> Depo kimlik bilgileri, API anahtarlar\u0131 gibi hassas bilgileri do\u011frudan betiklere yazmak yerine Jenkins&#8217;in Credentials (Kimlik Bilgileri) y\u00f6neticisinde g\u00fcvenli bir \u015fekilde saklay\u0131n.<\/li>\n<\/ul>\n<h3>Performans ve \u00d6l\u00e7eklenebilirlik<\/h3>\n<ul>\n<li><strong>Jenkins Master-Agent Mimarisi:<\/strong> B\u00fcy\u00fck projelerde veya \u00e7ok say\u0131da i\u015f \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda, Jenkins Master sunucusunu sadece koordinasyon ve yap\u0131land\u0131rma i\u00e7in kullan\u0131n. Ger\u00e7ek yap\u0131 (build) i\u015flemlerini ger\u00e7ekle\u015ftirmek i\u00e7in ayr\u0131 Agent (Slave) makineleri kullan\u0131n. Bu, Master&#8217;\u0131n y\u00fck\u00fcn\u00fc azalt\u0131r ve performans\u0131 art\u0131r\u0131r.<\/li>\n<li><strong>Kaynak Tahsisi:<\/strong> Jenkins sunucusuna yeterli CPU, RAM ve disk alan\u0131 ay\u0131r\u0131n. \u00d6zellikle derleme ve test s\u00fcre\u00e7leri yo\u011fun kaynak t\u00fcketebilir.<\/li>\n<\/ul>\n<h3>Yedekleme<\/h3>\n<p>Jenkins yap\u0131land\u0131rmalar\u0131, i\u015f tan\u0131mlar\u0131, eklentiler ve ge\u00e7mi\u015f verileri <code>\/var\/lib\/jenkins<\/code> dizininde saklan\u0131r. Bu dizini d\u00fczenli olarak yedeklemek, olas\u0131 bir sistem \u00e7\u00f6kmesi veya veri kayb\u0131 durumunda h\u0131zl\u0131 bir \u015fekilde geri d\u00f6nebilmenizi sa\u011flar.<\/p>\n<h3>Plugin Ekosistemi<\/h3>\n<p>Jenkins&#8217;in g\u00fcc\u00fc, zengin eklenti ekosisteminden gelir. Git, Maven Integration, Pipeline, Blue Ocean, Docker, Kubernetes gibi y\u00fczlerce eklenti, Jenkins&#8217;in yeteneklerini geni\u015fleterek neredeyse her t\u00fcrl\u00fc CI\/CD ihtiyac\u0131n\u0131z\u0131 kar\u015f\u0131laman\u0131za olanak tan\u0131r. \u0130htiya\u00e7lar\u0131n\u0131za g\u00f6re &#8220;Manage Jenkins&#8221; -> &#8220;Manage Plugins&#8221; b\u00f6l\u00fcm\u00fcnden yeni eklentiler kurabilirsiniz.<\/p>\n<h3>Pipeline as Code (Jenkinsfile)<\/h3>\n<p>Jenkins Pipeline, CI\/CD i\u015flem hatt\u0131n\u0131z\u0131 kod olarak tan\u0131mlaman\u0131za olanak tan\u0131r. Bir <code>Jenkinsfile<\/code> kullanarak (genellikle projenizin k\u00f6k dizininde bulunur) t\u00fcm yap\u0131, test ve da\u011f\u0131t\u0131m ad\u0131mlar\u0131n\u0131z\u0131 versiyon kontrol sistemi alt\u0131nda y\u00f6netebilirsiniz. Bu, i\u015flem hatt\u0131n\u0131n tekrarlanabilirli\u011fini, \u015feffafl\u0131\u011f\u0131n\u0131 ve s\u00fcr\u00fcm kontrol\u00fcn\u00fc sa\u011flar.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu rehberde, CentOS 7 \u00fczerinde Jenkins&#8217;i ad\u0131m ad\u0131m kurmay\u0131, temel yap\u0131land\u0131rmalar\u0131n\u0131 yapmay\u0131 ve ilk CI\/CD projenizi olu\u015fturmay\u0131 \u00f6\u011frendiniz. Jenkins, yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinizi otomatikle\u015ftirerek ekiplerin daha verimli \u00e7al\u0131\u015fmas\u0131n\u0131, hatalar\u0131 erken a\u015famada tespit etmesini ve yaz\u0131l\u0131mlar\u0131n\u0131 daha h\u0131zl\u0131 ve g\u00fcvenilir bir \u015fekilde pazara sunmas\u0131n\u0131 sa\u011flayan paha bi\u00e7ilmez bir ara\u00e7t\u0131r.<\/p>\n<p>Jenkins&#8217;in sundu\u011fu geni\u015f eklenti yelpazesi ve esnek yap\u0131land\u0131rma se\u00e7enekleri sayesinde, projenizin \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zelle\u015ftirilmi\u015f ve g\u00fc\u00e7l\u00fc CI\/CD i\u015flem hatlar\u0131 olu\u015fturabilirsiniz. Bu ba\u015flang\u0131\u00e7 rehberi, Jenkins ile Continuous Integration ve Continuous Delivery d\u00fcnyas\u0131na ad\u0131m atman\u0131z i\u00e7in sa\u011flam bir temel olu\u015fturacakt\u0131r.<\/p>\n<h2>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<h3>Jenkins neden varsay\u0131lan olarak 8080 portunu kullan\u0131r?<\/h3>\n<p>8080 portu, genellikle web sunucular\u0131 veya uygulama sunucular\u0131 taraf\u0131ndan alternatif bir HTTP portu olarak kullan\u0131l\u0131r. Jenkins de bir web uygulamas\u0131 oldu\u011fu i\u00e7in varsay\u0131lan olarak bu portu kullan\u0131r. E\u011fer bu port ba\u015fka bir servis taraf\u0131ndan kullan\u0131l\u0131yorsa, Jenkins&#8217;i farkl\u0131 bir porta ta\u015f\u0131man\u0131z gerekebilir.<\/p>\n<h3>Jenkins&#8217;i farkl\u0131 bir porta nas\u0131l ta\u015f\u0131r\u0131m?<\/h3>\n<p>Jenkins&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131 portu de\u011fi\u015ftirmek i\u00e7in CentOS 7&#8217;de genellikle <code>\/etc\/sysconfig\/jenkins<\/code> dosyas\u0131n\u0131 d\u00fczenlemeniz gerekir. Bu dosyadaki <code>JENKINS_PORT<\/code> de\u011fi\u015fkenini istedi\u011finiz porta (\u00f6rne\u011fin 9000) ayarlay\u0131p Jenkins servisini yeniden ba\u015flatman\u0131z yeterlidir:<\/p>\n<pre><code class=\"language-bash\">sudo sed -i 's\/JENKINS_PORT=\"8080\"\/JENKINS_PORT=\"9000\"\/' \/etc\/sysconfig\/jenkins\nsudo systemctl restart jenkins<\/code><\/pre>\n<p>Portu de\u011fi\u015ftirdikten sonra g\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131z\u0131 da yeni porta g\u00f6re g\u00fcncellemeniz gerekti\u011fini unutmay\u0131n.<\/p>\n<h3>Jenkins&#8217;i root kullan\u0131c\u0131s\u0131 olarak \u00e7al\u0131\u015ft\u0131rmal\u0131 m\u0131y\u0131m?<\/h3>\n<p>Hay\u0131r, Jenkins&#8217;i root kullan\u0131c\u0131s\u0131 olarak \u00e7al\u0131\u015ft\u0131rmak g\u00fcvenlik riski ta\u015f\u0131r. Jenkins varsay\u0131lan olarak <code>jenkins<\/code> ad\u0131nda ayr\u0131cal\u0131ks\u0131z bir kullan\u0131c\u0131 ile \u00e7al\u0131\u015f\u0131r. Bu, en iyi g\u00fcvenlik uygulamalar\u0131ndan biridir. Jenkins&#8217;in ihtiya\u00e7 duydu\u011fu t\u00fcm dizin ve dosyalara <code>jenkins<\/code> kullan\u0131c\u0131s\u0131n\u0131n eri\u015fim haklar\u0131n\u0131n oldu\u011fundan emin olun.<\/p>\n<h3>Bir Jenkins i\u015fi neden ba\u015far\u0131s\u0131z oluyor?<\/h3>\n<p>Bir Jenkins i\u015finin ba\u015far\u0131s\u0131z olmas\u0131n\u0131n bir\u00e7ok nedeni olabilir:<\/p>\n<ul>\n<li><strong>Konsol \u00c7\u0131kt\u0131s\u0131n\u0131 Kontrol Edin:<\/strong> \u0130\u015fin konsol \u00e7\u0131kt\u0131s\u0131 (Console Output), hatan\u0131n nedenini anlamak i\u00e7in en \u00f6nemli kaynakt\u0131r. Genellikle hata mesajlar\u0131 burada a\u00e7\u0131k\u00e7a belirtilir.<\/li>\n<li><strong>Ba\u011f\u0131ml\u0131l\u0131klar Eksik:<\/strong> Derleme veya test ad\u0131mlar\u0131 i\u00e7in gerekli olan yaz\u0131l\u0131mlar (Maven, npm, Python, Docker vb.) Jenkins sunucusunda veya agent&#8217;ta kurulu olmayabilir.<\/li>\n<li><strong>Ortam De\u011fi\u015fkenleri:<\/strong> Gerekli ortam de\u011fi\u015fkenleri do\u011fru ayarlanmam\u0131\u015f olabilir.<\/li>\n<li><strong>Eri\u015fim \u0130zinleri:<\/strong> Jenkins kullan\u0131c\u0131s\u0131n\u0131n belirli dosyalara veya dizinlere yazma\/okuma izni olmayabilir.<\/li>\n<li><strong>Kaynak Kodu Sorunlar\u0131:<\/strong> \u00c7ekilen kodda derleme hatalar\u0131 veya test ba\u015far\u0131s\u0131zl\u0131klar\u0131 olabilir.<\/li>\n<\/ul>\n<h3>Jenkins&#8217;i HTTPS \u00fczerinden nas\u0131l eri\u015filebilir yapar\u0131m?<\/h3>\n<p>Jenkins&#8217;in kendisi do\u011frudan HTTPS sa\u011flamaz. Genellikle bu, bir ters proxy (reverse proxy) sunucusu (\u00f6rne\u011fin Nginx veya Apache) kullan\u0131larak yap\u0131l\u0131r. Ters proxy, istemciden gelen HTTPS isteklerini al\u0131r, \u015fifresini \u00e7\u00f6zer ve iste\u011fi Jenkins&#8217;in HTTP portuna (varsay\u0131lan 8080) iletir. Ters proxy sunucusu ayn\u0131 zamanda SSL sertifikalar\u0131n\u0131 y\u00f6netir. Bu yap\u0131land\u0131rma, hem g\u00fcvenlik hem de daha esnek URL y\u00f6netimi sa\u011flar.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Jenkins Nedir ve Neden \u00d6nemlidir?\nModern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde, kod de\u011fi\u015fikliklerinin s\u00fcrekli olarak entegre edildi\u011fi, test edil","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-38870","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Jenkins Nedir ve Neden \u00d6nemlidir? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jenkins Nedir ve Neden \u00d6nemlidir?\" \/>\n<meta property=\"og:description\" content=\"Jenkins Nedir ve Neden \u00d6nemlidir? Modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde, kod de\u011fi\u015fikliklerinin s\u00fcrekli olarak entegre edildi\u011fi, test edil\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-09T12:41:30+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Jenkins Nedir ve Neden \u00d6nemlidir?\",\"datePublished\":\"2026-02-09T12:41:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/\"},\"wordCount\":1973,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/\",\"name\":\"Jenkins Nedir ve Neden \u00d6nemlidir? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-09T12:41:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jenkins Nedir ve Neden \u00d6nemlidir?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Jenkins Nedir ve Neden \u00d6nemlidir? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/","og_locale":"tr_TR","og_type":"article","og_title":"Jenkins Nedir ve Neden \u00d6nemlidir?","og_description":"Jenkins Nedir ve Neden \u00d6nemlidir? Modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde, kod de\u011fi\u015fikliklerinin s\u00fcrekli olarak entegre edildi\u011fi, test edil","og_url":"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-09T12:41:30+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"11 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Jenkins Nedir ve Neden \u00d6nemlidir?","datePublished":"2026-02-09T12:41:30+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/"},"wordCount":1973,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/","url":"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/","name":"Jenkins Nedir ve Neden \u00d6nemlidir? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-09T12:41:30+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/jenkins-nedir-ve-neden-onemlidir\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Jenkins Nedir ve Neden \u00d6nemlidir?"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=38870"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38870\/revisions"}],"predecessor-version":[{"id":38871,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38870\/revisions\/38871"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38870"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38870"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}