{"id":31348,"date":"2025-10-08T23:01:45","date_gmt":"2025-10-08T20:01:45","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/"},"modified":"2025-10-08T23:01:45","modified_gmt":"2025-10-08T20:01:45","slug":"ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/","title":{"rendered":"Ansible ile RKE2 ve Rancher Kurulumlar\u0131n\u0131 Otomatize Etmek"},"content":{"rendered":"<p><body><\/p>\n<p>Modern bulut altyap\u0131lar\u0131nda Kubernetes k\u00fcmelerinin y\u00f6netimi, \u00f6zellikle b\u00fcy\u00fck \u00f6l\u00e7ekli ve dinamik ortamlar i\u00e7in olduk\u00e7a karma\u015f\u0131k olabilir. RKE2 ve Rancher gibi g\u00fc\u00e7l\u00fc ara\u00e7lar bu s\u00fcreci kolayla\u015ft\u0131rsa da, kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131n manuel olarak yap\u0131lmas\u0131 zaman al\u0131c\u0131 ve hataya a\u00e7\u0131k bir s\u00fcreci beraberinde getirir. Peki, bu s\u00fcreci Ansible\u2019\u0131n g\u00fcc\u00fcyle nas\u0131l otomatize edebiliriz? Bu makalede, RKE2 k\u00fcmelerinin ve Rancher y\u00f6netim platformunun Ansible ile nas\u0131l h\u0131zl\u0131, tutarl\u0131 ve tekrarlanabilir bir \u015fekilde da\u011f\u0131t\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Bu rehber sayesinde altyap\u0131n\u0131z\u0131 kod olarak y\u00f6netmenin (Infrastructure as Code) avantajlar\u0131n\u0131 ke\u015ffedecek ve operasyonel verimlili\u011finizi art\u0131racaks\u0131n\u0131z.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zl\u0131 tempolu yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda, uygulamalar\u0131n h\u0131zla da\u011f\u0131t\u0131lmas\u0131 ve g\u00fcncellenmesi bir zorunluluktur. Bu ba\u011flamda, konteynerle\u015ftirme teknolojileri ve \u00f6zellikle Kubernetes, vazge\u00e7ilmez bir hal alm\u0131\u015ft\u0131r. Ancak Kubernetes k\u00fcmelerinin kurulumu ve y\u00f6netimi, \u00f6zellikle birden fazla ortamda (geli\u015ftirme, test, \u00fcretim) tekrarl\u0131 i\u015flemler gerektirdi\u011finde ciddi zorluklar do\u011furabilir. \u00d6rne\u011fin, her bir sunucuda i\u015fletim sistemi g\u00fcncellemelerini yapmak, gerekli ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00fcklemek, sertifikalar\u0131 ayarlamak ve Kubernetes bile\u015fenlerini kurmak gibi ad\u0131mlar, zaman al\u0131c\u0131 ve hataya a\u00e7\u0131k s\u00fcre\u00e7lerdir.<\/p>\n<p>Manuel da\u011f\u0131t\u0131mlar, genellikle &#8220;snowflaking&#8221; ad\u0131 verilen duruma yol a\u00e7ar; yani her ortam\u0131n birbirinden farkl\u0131 yap\u0131land\u0131rmalara sahip olmas\u0131 ve bu durumun tutars\u0131zl\u0131klar\u0131 beraberinde getirmesi. Bu durum, hata ay\u0131klama s\u00fcre\u00e7lerini uzat\u0131r, \u00fcretim ortam\u0131nda beklenmedik sorunlara neden olabilir ve g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n ortaya \u00e7\u0131kma riskini art\u0131r\u0131r. Ayr\u0131ca, b\u00fcy\u00fck \u00f6l\u00e7ekli bir altyap\u0131da y\u00fczlerce sunucuyu manuel olarak y\u00f6netmek imkans\u0131za yak\u0131nd\u0131r. \u0130\u015fg\u00fcc\u00fc maliyetleri artar, operasyonel y\u00fck \u00e7o\u011fal\u0131r ve ekipler inovasyona odaklanmak yerine rutin g\u00f6revlerle bo\u011fu\u015fmak zorunda kal\u0131r.<\/p>\n<p>\u0130\u015fte bu noktada otomasyon devreye girer. Otomasyon, tekrarlayan g\u00f6revleri makinelere devrederek insan hatas\u0131n\u0131 minimuma indirir, da\u011f\u0131t\u0131m s\u00fcrelerini k\u0131salt\u0131r ve ortamlar aras\u0131 tutarl\u0131l\u0131\u011f\u0131 garanti eder. RKE2 (Rancher Kubernetes Engine 2) gibi hafif ve g\u00fcvenli bir Kubernetes da\u011f\u0131t\u0131m\u0131 ile Rancher gibi \u00e7oklu k\u00fcme y\u00f6netim platformunu bir araya getirmek, modern bir bulut stratejisinin temelini olu\u015fturur. Ancak bu ara\u00e7lar\u0131n g\u00fcc\u00fcnden tam anlam\u0131yla faydalanabilmek i\u00e7in kurulum ve yap\u0131land\u0131rma s\u00fcre\u00e7lerinin otomatize edilmesi \u015fartt\u0131r. Ansible, bu otomasyonu sa\u011flamak i\u00e7in m\u00fckemmel bir ara\u00e7t\u0131r. Agent-less mimarisi, basit YAML tabanl\u0131 playbooks yap\u0131s\u0131 ve geni\u015f mod\u00fcl deste\u011fi sayesinde, RKE2 ve Rancher da\u011f\u0131t\u0131mlar\u0131n\u0131 verimli bir \u015fekilde y\u00f6netebiliriz. B\u00f6ylece, geli\u015ftiriciler ve operasyon ekipleri daha h\u0131zl\u0131, daha g\u00fcvenilir ve daha y\u00f6netilebilir bir altyap\u0131ya sahip olurlar. Bu, ayn\u0131 zamanda DevOps prensiplerinin temelini olu\u015fturan s\u00fcrekli entegrasyon ve s\u00fcrekli teslimat (CI\/CD) s\u00fcre\u00e7lerinin de \u00f6nemli bir par\u00e7as\u0131d\u0131r.<\/p>\n<h2>RKE2, Rancher ve Ansible: Temel Ta\u015flar\u0131 Anlamak<\/h2>\n<p>Otomasyon yolculu\u011fumuza ba\u015flamadan \u00f6nce, projemizin temel yap\u0131 ta\u015flar\u0131 olan RKE2, Rancher ve Ansible&#8217;\u0131 derinlemesine anlamak \u00f6nemlidir. Bu \u00fc\u00e7 teknoloji, modern konteyner orkestrasyonu ve altyap\u0131 y\u00f6netimi ekosisteminde kritik roller \u00fcstlenir.<\/p>\n<h3>RKE2 Nedir ve Neden Tercih Edilir?<\/h3>\n<p>RKE2 (Rancher Kubernetes Engine 2), Rancher Labs taraf\u0131ndan geli\u015ftirilen, CNCF sertifikal\u0131, hafif ve g\u00fcvenli bir Kubernetes da\u011f\u0131t\u0131m\u0131d\u0131r. K3s&#8217;in g\u00fcvenlik odakl\u0131, kurumsal s\u00fcr\u00fcm\u00fc olarak da d\u00fc\u015f\u00fcn\u00fclebilir. RKE2, \u00f6zellikle g\u00fcvenlik ve uyumluluk konular\u0131nda hassas olan i\u015fletmeler i\u00e7in tasarlanm\u0131\u015ft\u0131r. Temel \u00f6zellikleri \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>G\u00fcvenlik Odakl\u0131:<\/strong> RKE2, FIPS 140-2 uyumlulu\u011fu, CIS (Center for Internet Security) Benchmark hardening ve otomatik sertifika y\u00f6netimi gibi g\u00fcvenlik \u00f6zellikleriyle \u00f6ne \u00e7\u0131kar. Bu, k\u00fcmelerinizin end\u00fcstri standartlar\u0131na uygun ve daha az g\u00fcvenlik a\u00e7\u0131\u011f\u0131na sahip olmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><strong>Hafif ve H\u0131zl\u0131:<\/strong> Minimal ba\u011f\u0131ml\u0131l\u0131klarla tasarlanm\u0131\u015ft\u0131r. Bu, kaynak t\u00fcketimini azalt\u0131r ve daha h\u0131zl\u0131 ba\u015flang\u0131\u00e7 s\u00fcreleri sunar.<\/li>\n<li><strong>Tek Bir \u0130kili Dosya:<\/strong> T\u00fcm Kubernetes bile\u015fenlerini tek bir ikili dosya i\u00e7inde sunar. Bu, kurulumu ve g\u00fcncellemeyi olduk\u00e7a basitle\u015ftirir.<\/li>\n<li><strong>Y\u00fcksek Eri\u015filebilirlik (HA):<\/strong> Etcd yerine PostgreSQL veya MySQL gibi harici veri tabanlar\u0131n\u0131 veya dahili SQLite&#8217;\u0131 destekleyerek daha esnek bir HA mimarisi sunar.<\/li>\n<\/ul>\n<p>RKE2, \u00f6zellikle kenar bili\u015fim (edge computing) senaryolar\u0131ndan veri merkezi da\u011f\u0131t\u0131mlar\u0131na kadar geni\u015f bir kullan\u0131m alan\u0131na sahiptir. G\u00fcvenli ve stabil bir Kubernetes altyap\u0131s\u0131 kurmak isteyenler i\u00e7in ideal bir tercihtir.<\/p>\n<h3>Rancher: K\u00fcme Y\u00f6netiminde Yeni Nesil Bir Yakla\u015f\u0131m<\/h3>\n<p>Rancher, \u00e7oklu Kubernetes k\u00fcme y\u00f6netimi i\u00e7in tasarlanm\u0131\u015f kapsaml\u0131 bir platformdur. Farkl\u0131 lokasyonlarda veya farkl\u0131 sa\u011flay\u0131c\u0131larda \u00e7al\u0131\u015fan (on-premise, bulut) Kubernetes k\u00fcmelerini tek bir merkezi aray\u00fczden y\u00f6netmenizi sa\u011flar. Rancher&#8217;\u0131n temel avantajlar\u0131 \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Merkezi Y\u00f6netim:<\/strong> Tek bir Rancher UI \u00fczerinden t\u00fcm Kubernetes k\u00fcmelerinizi (RKE2, K3s, EKS, AKS, GKE vb.) g\u00f6r\u00fcnt\u00fcleyebilir, yap\u0131land\u0131rabilir ve y\u00f6netebilirsiniz.<\/li>\n<li><strong>Kullan\u0131c\u0131 ve Rol Y\u00f6netimi:<\/strong> Kullan\u0131c\u0131lara ve ekiplere k\u00fcmelere eri\u015fim yetkileri atayabilir, b\u00f6ylece g\u00fcvenli ve denetlenebilir bir ortam sa\u011flayabilirsiniz.<\/li>\n<li><strong>Uygulama Katalo\u011fu:<\/strong> Helm grafikleri arac\u0131l\u0131\u011f\u0131yla uygulamalar\u0131 kolayca da\u011f\u0131tabilir ve y\u00f6netebilirsiniz.<\/li>\n<li><strong>\u0130zleme ve G\u00fcnl\u00fckleme:<\/strong> K\u00fcmelerin sa\u011fl\u0131k durumunu izlemek ve performans metriklerini g\u00f6r\u00fcnt\u00fclemek i\u00e7in entegre ara\u00e7lar sunar.<\/li>\n<li><strong>Sertifika Y\u00f6netimi:<\/strong> Let&#8217;s Encrypt gibi hizmetlerle entegrasyonu sayesinde otomatik sertifika y\u00f6netimi sa\u011flar.<\/li>\n<\/ul>\n<p>Rancher, Kubernetes&#8217;in karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 soyutlayarak geli\u015ftiricilerin ve operasyon ekiplerinin daha verimli \u00e7al\u0131\u015fmas\u0131na olanak tan\u0131r. \u00c7ok say\u0131da k\u00fcmenin bulundu\u011fu ortamlarda operasyonel y\u00fck\u00fc \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r.<\/p>\n<h3>Ansible: Altyap\u0131 Otomasyonunun Kalbi<\/h3>\n<p>Ansible, Red Hat taraf\u0131ndan geli\u015ftirilen a\u00e7\u0131k kaynakl\u0131 bir BT otomasyon arac\u0131d\u0131r. Temel amac\u0131, sunucu sa\u011flama, yap\u0131land\u0131rma y\u00f6netimi, uygulama da\u011f\u0131t\u0131m\u0131 ve s\u00fcrekli da\u011f\u0131t\u0131m gibi g\u00f6revleri otomatize etmektir. Ansible&#8217;\u0131 di\u011fer otomasyon ara\u00e7lar\u0131ndan ay\u0131ran baz\u0131 temel \u00f6zellikler:<\/p>\n<ul>\n<li><strong>Agent-less Mimarisi:<\/strong> Y\u00f6netilen hedeflerde herhangi bir arac\u0131 (agent) yaz\u0131l\u0131m\u0131na ihtiya\u00e7 duymaz. Sadece SSH protokol\u00fc \u00fczerinden ileti\u015fim kurar. Bu, kurulum ve bak\u0131m maliyetlerini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r.<\/li>\n<li><strong>YAML Tabanl\u0131 Playbooklar:<\/strong> Otomasyon g\u00f6revleri, insan taraf\u0131ndan kolayca okunabilen ve anla\u015f\u0131labilen YAML format\u0131ndaki playbooklar arac\u0131l\u0131\u011f\u0131yla tan\u0131mlan\u0131r. Bu, \u00f6\u011frenme e\u011frisini d\u00fc\u015f\u00fcr\u00fcr.<\/li>\n<li><strong>Idempotency (Tekrarlanabilirlik):<\/strong> Playbooklar, ayn\u0131 i\u015flemi birden \u00e7ok kez \u00e7al\u0131\u015ft\u0131rsan\u0131z bile sistemin istenen duruma gelmesini sa\u011flar ve bu durumu korur. \u00d6rne\u011fin, bir paketin zaten y\u00fckl\u00fc olup olmad\u0131\u011f\u0131n\u0131 kontrol eder ve sadece gerekli ise y\u00fckleme yapar.<\/li>\n<li><strong>Mod\u00fcler Yap\u0131:<\/strong> Binlerce haz\u0131r mod\u00fcl (paket y\u00f6netimi, dosya i\u015flemleri, servis y\u00f6netimi, bulut entegrasyonlar\u0131 vb.) sayesinde neredeyse her t\u00fcrl\u00fc g\u00f6revi otomatize edebilir.<\/li>\n<\/ul>\n<p>Ansible&#8217;\u0131n bu \u00f6zellikleri, RKE2 ve Rancher gibi karma\u015f\u0131k sistemlerin kurulumunu ve yap\u0131land\u0131rmas\u0131n\u0131 otomatize etmek i\u00e7in ideal bir aday haline getirir. Tutarl\u0131, h\u0131zl\u0131 ve hatas\u0131z da\u011f\u0131t\u0131mlar sa\u011flamak i\u00e7in Ansible&#8217;\u0131n g\u00fcc\u00fcnden faydalanaca\u011f\u0131z. Bu \u00fc\u00e7 teknolojinin uyumlu bir \u015fekilde \u00e7al\u0131\u015fmas\u0131, g\u00fc\u00e7l\u00fc, esnek ve y\u00f6netilebilir bir konteyner altyap\u0131s\u0131 olu\u015fturmam\u0131z\u0131 sa\u011flayacakt\u0131r.<\/p>\n<div class=\"expert-tip\">\n    Uzman \u0130pucu: RKE2 ve Rancher kurulumlar\u0131nda a\u011f yap\u0131land\u0131rmas\u0131 kritik \u00f6neme sahiptir. Kontrol d\u00fczlemi ve worker d\u00fc\u011f\u00fcmlerinin birbiriyle ileti\u015fim kurabildi\u011finden emin olun. Gerekirse g\u00fcvenlik duvar\u0131 (firewall) kurallar\u0131n\u0131 Ansible ile otomatize ederek a\u00e7\u0131l\u0131\u015flar\u0131 sa\u011flay\u0131n.\n  <\/div>\n<h2>Ansible Altyap\u0131s\u0131 ve Ba\u015flang\u0131\u00e7 Ayarlar\u0131 Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>Ansible ile otomasyon s\u00fcrecine ba\u015flamadan \u00f6nce, Ansible kontrol makinemizi haz\u0131rlamam\u0131z ve temel yap\u0131land\u0131rmalar\u0131 yapmam\u0131z gerekmektedir. Bu ad\u0131m, t\u00fcm otomasyon operasyonlar\u0131m\u0131z\u0131n temelini olu\u015fturacakt\u0131r. D\u00fczg\u00fcn bir ba\u015flang\u0131\u00e7 yap\u0131land\u0131rmas\u0131, ilerleyen ad\u0131mlarda ya\u015fanabilecek olas\u0131 sorunlar\u0131 minimize eder ve s\u00fcrecin sorunsuz ilerlemesini sa\u011flar.<\/p>\n<h3>Ansible Kontrol Makinesi ve Gerekli Bile\u015fenler<\/h3>\n<p>Ansible, genellikle Linux tabanl\u0131 bir sunucu \u00fczerinde \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r. Bu sunucuya &#8220;kontrol makinesi&#8221; denir. Kontrol makinesinin, hedef sunuculara SSH \u00fczerinden ba\u011flanabilmesi i\u00e7in gerekli ayarlamalar\u0131n yap\u0131lm\u0131\u015f olmas\u0131 \u015fartt\u0131r. \u0130lk olarak, kontrol makinesine Ansible&#8217;\u0131 y\u00fcklememiz gerekir. \u00c7o\u011fu Linux da\u011f\u0131t\u0131m\u0131nda bu i\u015flem olduk\u00e7a basittir:<\/p>\n<pre><code># Ubuntu\/Debian tabanl\u0131 sistemler i\u00e7in\nsudo apt update\nsudo apt install ansible\n\n# CentOS\/RHEL tabanl\u0131 sistemler i\u00e7in\nsudo yum install epel-release\nsudo yum install ansible\n<\/pre>\n<p><\/code><\/p>\n<p>Ansible y\u00fcklendikten sonra, hedef sunucular\u0131m\u0131za SSH anahtar \u00e7iftleri ile parola girmeden eri\u015fim sa\u011flayabilmemiz \u00f6nemlidir. Bu, otomasyonun kesintisiz \u00e7al\u0131\u015fmas\u0131 i\u00e7in elzemdir. Kontrol makinenizde bir SSH anahtar \u00e7ifti olu\u015fturun ve genel anahtar\u0131 (public key) t\u00fcm hedef sunucular\u0131n\u0131zdaki <code>\/home\/kullanici_adi\/.ssh\/authorized_keys<\/code> dosyas\u0131na ekleyin.<\/p>\n<pre><code># SSH anahtar \u00e7ifti olu\u015fturma (e\u011fer yoksa)\nssh-keygen -t rsa -b 4096\n\n# Genel anahtar\u0131 hedef sunucuya kopyalama (kullanici_adi ve hedef_ip'yi de\u011fi\u015ftirin)\nssh-copy-id kullanici_adi@hedef_ip\n<\/pre>\n<p><\/code><\/p>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, kontrol makinenizden hedef sunucular\u0131n\u0131za parola sormadan SSH ba\u011flant\u0131s\u0131 kurabildi\u011finizden emin olun.<\/p>\n<h3>Ansible Envanteri (Inventory) Olu\u015fturma<\/h3>\n<p>Ansible, hangi sunucularda i\u015flem yapaca\u011f\u0131n\u0131 bir envanter dosyas\u0131 arac\u0131l\u0131\u011f\u0131yla bilir. Bu dosya genellikle <code>inventory.ini<\/code> olarak adland\u0131r\u0131l\u0131r ve sunucular\u0131n\u0131z\u0131 grupland\u0131rman\u0131za olanak tan\u0131r. RKE2 ve Rancher da\u011f\u0131t\u0131mlar\u0131m\u0131z i\u00e7in a\u015fa\u011f\u0131daki gibi bir yap\u0131ya sahip olabiliriz:<\/p>\n<pre><code>\n[rke2_servers]\nserver1 ansible_host=192.168.1.101\nserver2 ansible_host=192.168.1.102\nserver3 ansible_host=192.168.1.103\n\n[rke2_agents]\nagent1 ansible_host=192.168.1.104\nagent2 ansible_host=192.168.1.105\n\n[rancher_server]\nrancher_node ansible_host=192.168.1.101 # Genellikle bir RKE2 sunucu d\u00fc\u011f\u00fcm\u00fcne kurulur\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte:<\/p>\n<ul>\n<li><code>[rke2_servers]<\/code> grubu RKE2 kontrol d\u00fczlemi d\u00fc\u011f\u00fcmlerini i\u00e7erir.<\/li>\n<li><code>[rke2_agents]<\/code> grubu RKE2 worker d\u00fc\u011f\u00fcmlerini i\u00e7erir.<\/li>\n<li><code>[rancher_server]<\/code> grubu Rancher y\u00f6netim sunucusunun kurulaca\u011f\u0131 d\u00fc\u011f\u00fcm\u00fc belirtir.<\/li>\n<\/ul>\n<p>Her bir ana bilgisayar i\u00e7in <code>ansible_host<\/code> parametresi ile IP adresini veya hostname'i belirtebilirsiniz. Ayr\u0131ca, <code>ansible_user<\/code>, <code>ansible_ssh_private_key_file<\/code> gibi di\u011fer parametreleri de ekleyebilirsiniz. Bu, Ansible'\u0131n farkl\u0131 sunuculara farkl\u0131 kimlik bilgileriyle ba\u011flanmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Ansible Yap\u0131land\u0131rma Dosyas\u0131 (<code>ansible.cfg<\/code>)<\/h3>\n<p>Ansible'\u0131n davran\u0131\u015f\u0131n\u0131 \u00f6zelle\u015ftirmek i\u00e7in bir <code>ansible.cfg<\/code> dosyas\u0131 olu\u015fturabiliriz. Bu dosya, varsay\u0131lan envanter dosyas\u0131n\u0131n yolunu, SSH ba\u011flant\u0131 ayarlar\u0131n\u0131 ve di\u011fer bir\u00e7ok parametreyi belirlememize olanak tan\u0131r. Genellikle, projenizin k\u00f6k dizininde veya kontrol makinesinin ana dizininde bulunur.<\/p>\n<pre><code>\n[defaults]\ninventory = inventory.ini       # Varsay\u0131lan envanter dosyas\u0131\nremote_user = ubuntu           # Hedef sunucularda kullan\u0131lacak kullan\u0131c\u0131 ad\u0131\nprivate_key_file = ~\/.ssh\/id_rsa # SSH \u00f6zel anahtar\u0131n\u0131n yolu\nhost_key_checking = False      # \u0130lk ba\u011flant\u0131da host anahtar\u0131 kontrol\u00fcn\u00fc devre d\u0131\u015f\u0131 b\u0131rak\u0131r (g\u00fcvenlik riski ta\u015f\u0131yabilir, dikkatli kullan\u0131n)\nforks = 5                     # Ayn\u0131 anda ka\u00e7 adet g\u00f6revin \u00e7al\u0131\u015faca\u011f\u0131n\u0131 belirler\n<\/pre>\n<p><\/code><\/p>\n<p><code>host_key_checking = False<\/code> ayar\u0131, \u00f6zellikle yeni ortamlar kurulurken veya s\u0131k s\u0131k sanal makineler olu\u015fturup yok edildi\u011finde kullan\u0131\u015fl\u0131 olabilir ancak \u00fcretim ortamlar\u0131nda g\u00fcvenlik nedeniyle <code>True<\/code> olarak b\u0131rak\u0131lmas\u0131 veya bilinen ana bilgisayarlar\u0131 <code>~\/.ssh\/known_hosts<\/code> dosyas\u0131na eklemek daha g\u00fcvenlidir. Bu temel yap\u0131land\u0131rmalarla, Ansible ortam\u0131m\u0131z RKE2 ve Rancher da\u011f\u0131t\u0131mlar\u0131n\u0131 otomatize etmek i\u00e7in haz\u0131r hale gelmi\u015f olacakt\u0131r. Art\u0131k playbooklar\u0131m\u0131z\u0131 yazmaya ba\u015flayabiliriz.<\/p>\n<h2>S\u0131f\u0131rdan RKE2 K\u00fcmesi Kurulumu: Ansible Playbooklar\u0131 ile Ad\u0131m Ad\u0131m Rehber<\/h2>\n<p>RKE2 k\u00fcmesi kurulumu, manuel olarak yap\u0131ld\u0131\u011f\u0131nda karma\u015f\u0131k ve hataya a\u00e7\u0131k olabilir. Ancak Ansible ile bu s\u00fcre\u00e7, tekrarlanabilir, tutarl\u0131 ve olduk\u00e7a h\u0131zl\u0131 bir hale gelir. Bu b\u00f6l\u00fcmde, RKE2 sunucu (kontrol d\u00fczlemi) ve agent (worker) d\u00fc\u011f\u00fcmlerini Ansible playbooklar\u0131 arac\u0131l\u0131\u011f\u0131yla nas\u0131l kuraca\u011f\u0131m\u0131z\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z.<\/p>\n<h3>RKE2 Sunucu D\u00fc\u011f\u00fcmlerinin Kurulumu<\/h3>\n<p>RKE2 sunucu d\u00fc\u011f\u00fcmleri, Kubernetes kontrol d\u00fczlemini bar\u0131nd\u0131r\u0131r ve Etcd veya harici bir veri taban\u0131 ile k\u00fcmenin durumunu y\u00f6netir. Y\u00fcksek eri\u015filebilirlik i\u00e7in genellikle en az \u00fc\u00e7 sunucu d\u00fc\u011f\u00fcm\u00fc kurulur. \u0130lk olarak, RKE2 ikili dosyas\u0131n\u0131 indirmeli, gerekli servisleri yap\u0131land\u0131rmal\u0131 ve ba\u015flatmal\u0131y\u0131z. \u0130\u015fte bu ad\u0131mlar\u0131 i\u00e7eren bir Ansible playbook \u00f6rne\u011fi:<\/p>\n<pre><code>\n---\n- name: RKE2 Server D\u00fc\u011f\u00fcmlerini Kur\n  hosts: rke2_servers\n  become: yes\n  vars:\n    rke2_version: \"v1.28.6+rke2r1\" # Kurulacak RKE2 s\u00fcr\u00fcm\u00fc\n    cluster_cidr: \"10.42.0.0\/16\"\n    service_cidr: \"10.43.0.0\/16\"\n    token: \"my_rke2_shared_secret_token\" # G\u00fcvenli bir token belirleyin\n\n  tasks:\n    - name: Gerekli Paketleri Y\u00fckle\n      ansible.builtin.apt:\n        name:\n          - curl\n          - containerd\n        state: present\n        update_cache: yes\n\n    - name: RKE2 \u0130kili Dosyas\u0131n\u0131 \u0130ndir\n      ansible.builtin.get_url:\n        url: \"https:\/\/github.com\/rancher\/rke2\/releases\/download\/{{ rke2_version }}\/rke2.linux-amd64.tar.gz\"\n        dest: \"\/tmp\/rke2.linux-amd64.tar.gz\"\n        mode: '0644'\n\n    - name: RKE2 \u0130kili Dosyalar\u0131n\u0131 \u00c7\u0131kar\n      ansible.builtin.unarchive:\n        src: \"\/tmp\/rke2.linux-amd64.tar.gz\"\n        dest: \"\/usr\/local\/bin\/\"\n        remote_src: yes\n        owner: root\n        group: root\n        mode: '0755'\n\n    - name: RKE2 Sembolik Ba\u011flant\u0131lar\u0131 Olu\u015ftur\n      ansible.builtin.file:\n        src: \"\/usr\/local\/bin\/rke2\"\n        dest: \"\/usr\/local\/bin\/kubectl\"\n        state: link\n        force: yes\n\n    - name: RKE2 Servis Dizinini Olu\u015ftur\n      ansible.builtin.file:\n        path: \"\/etc\/rancher\/rke2\"\n        state: directory\n        mode: '0755'\n\n    - name: RKE2 Server Yap\u0131land\u0131rma Dosyas\u0131n\u0131 Olu\u015ftur (\u0130lk Sunucu)\n      ansible.builtin.copy:\n        content: |\n          token: \"{{ token }}\"\n          tls-san:\n            - {{ hostvars[inventory_hostname]['ansible_host'] }}\n            - rancher.domain.com # Rancher eri\u015fimi i\u00e7in alternatif bir domain\n          cluster-cidr: \"{{ cluster_cidr }}\"\n          service-cidr: \"{{ service_cidr }}\"\n          # Y\u00fcksek eri\u015filebilirlik i\u00e7in di\u011fer sunucular\u0131n IP'lerini ekleyin\n          # server: https:\/\/server1_ip:9345\n          # server: https:\/\/server2_ip:9345\n        dest: \"\/etc\/rancher\/rke2\/config.yaml\"\n        mode: '0644'\n      when: inventory_hostname == 'server1' # Yaln\u0131zca ilk sunucu i\u00e7in ba\u015flang\u0131\u00e7 yap\u0131land\u0131rmas\u0131\n\n    - name: RKE2 Server Yap\u0131land\u0131rma Dosyas\u0131n\u0131 Olu\u015ftur (Di\u011fer Sunucular i\u00e7in HA)\n      ansible.builtin.copy:\n        content: |\n          token: \"{{ token }}\"\n          tls-san:\n            - {{ hostvars[inventory_hostname]['ansible_host'] }}\n            - rancher.domain.com\n          server: https:\/\/{{ hostvars['server1']['ansible_host'] }}:9345 # \u0130lk sunucuya ba\u011flan\u0131n\n          cluster-cidr: \"{{ cluster_cidr }}\"\n          service-cidr: \"{{ service_cidr }}\"\n        dest: \"\/etc\/rancher\/rke2\/config.yaml\"\n        mode: '0644'\n      when: inventory_hostname != 'server1' # \u0130lk sunucu d\u0131\u015f\u0131ndaki di\u011fer sunucular i\u00e7in\n\n    - name: RKE2 Servisini Etkinle\u015ftir ve Ba\u015flat\n      ansible.builtin.systemd:\n        name: rke2-server\n        enabled: yes\n        state: started\n\n    - name: Kubeconfig Dosyas\u0131n\u0131 Kopyala (kontrol makinesine)\n      ansible.builtin.fetch:\n        src: \"\/etc\/rancher\/rke2\/rke2.yaml\"\n        dest: \".\/kubeconfig\/{{ inventory_hostname }}-kubeconfig.yaml\"\n        flat: yes\n      delegate_to: localhost\n      run_once: true # Yaln\u0131zca bir sunucudan \u00e7ekilmesi yeterli\n\n    - name: Kubeconfig Dosyas\u0131ndaki Adresi D\u00fczelt\n      ansible.builtin.lineinfile:\n        path: \".\/kubeconfig\/{{ inventory_hostname }}-kubeconfig.yaml\"\n        regexp: 'https:\/\/127.0.0.1:6443'\n        line: \"    server: https:\/\/{{ hostvars['server1']['ansible_host'] }}:6443\"\n        state: present\n      delegate_to: localhost\n      run_once: true\n\n    - name: Kubeconfig Ortam De\u011fi\u015fkenini Ayarla\n      ansible.builtin.lineinfile:\n        path: \"~\/.bashrc\"\n        line: \"export KUBECONFIG=~\/kubeconfig\/server1-kubeconfig.yaml\"\n        state: present\n      delegate_to: localhost\n      run_once: true\n\n  <\/pre>\n<p><\/code><\/p>\n<p>Bu playbook, RKE2 ikili dosyalar\u0131n\u0131 indirir, gerekli yap\u0131land\u0131rmalar\u0131 yapar ve RKE2 servislerini ba\u015flat\u0131r. Ayr\u0131ca, k\u00fcmenizi y\u00f6netmek i\u00e7in kullanaca\u011f\u0131n\u0131z <code>kubeconfig<\/code> dosyas\u0131n\u0131 kontrol makinenize \u00e7eker ve gerekli d\u00fczenlemeleri yapar. <code>token<\/code> de\u011fi\u015fkeni, t\u00fcm RKE2 d\u00fc\u011f\u00fcmlerinin ayn\u0131 k\u00fcmeye kat\u0131lmas\u0131 i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h3>RKE2 Agent D\u00fc\u011f\u00fcmlerinin Kurulumu<\/h3>\n<p>Agent d\u00fc\u011f\u00fcmleri, uygulamalar\u0131n\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u015f y\u00fcklerini bar\u0131nd\u0131r\u0131r. Bu d\u00fc\u011f\u00fcmler, sunucu d\u00fc\u011f\u00fcmlerinin sa\u011flad\u0131\u011f\u0131 kontrol d\u00fczlemine ba\u011flan\u0131r. Agent d\u00fc\u011f\u00fcmlerinin kurulumu, sunucu d\u00fc\u011f\u00fcmlerine k\u0131yasla daha basittir:<\/p>\n<pre><code>\n---\n- name: RKE2 Agent D\u00fc\u011f\u00fcmlerini Kur\n  hosts: rke2_agents\n  become: yes\n  vars:\n    rke2_version: \"v1.28.6+rke2r1\"\n    token: \"my_rke2_shared_secret_token\" # Sunucu token\u0131 ile ayn\u0131 olmal\u0131\n    server_ip: \"{{ hostvars['server1']['ansible_host'] }}\" # \u0130lk RKE2 sunucusunun IP'si\n\n  tasks:\n    - name: Gerekli Paketleri Y\u00fckle\n      ansible.builtin.apt:\n        name:\n          - curl\n          - containerd\n        state: present\n        update_cache: yes\n\n    - name: RKE2 \u0130kili Dosyas\u0131n\u0131 \u0130ndir\n      ansible.builtin.get_url:\n        url: \"https:\/\/github.com\/rancher\/rke2\/releases\/download\/{{ rke2_version }}\/rke2.linux-amd64.tar.gz\"\n        dest: \"\/tmp\/rke2.linux-amd64.tar.gz\"\n        mode: '0644'\n\n    - name: RKE2 \u0130kili Dosyalar\u0131n\u0131 \u00c7\u0131kar\n      ansible.builtin.unarchive:\n        src: \"\/tmp\/rke2.linux-amd64.tar.gz\"\n        dest: \"\/usr\/local\/bin\/\"\n        remote_src: yes\n        owner: root\n        group: root\n        mode: '0755'\n\n    - name: RKE2 Servis Dizinini Olu\u015ftur\n      ansible.builtin.file:\n        path: \"\/etc\/rancher\/rke2\"\n        state: directory\n        mode: '0755'\n\n    - name: RKE2 Agent Yap\u0131land\u0131rma Dosyas\u0131n\u0131 Olu\u015ftur\n      ansible.builtin.copy:\n        content: |\n          server: https:\/\/{{ server_ip }}:9345\n          token: \"{{ token }}\"\n          # agent-labels:\n          #   - \"disk=ssd\"\n        dest: \"\/etc\/rancher\/rke2\/config.yaml\"\n        mode: '0644'\n\n    - name: RKE2 Agent Servisini Etkinle\u015ftir ve Ba\u015flat\n      ansible.builtin.systemd:\n        name: rke2-agent\n        enabled: yes\n        state: started\n  <\/pre>\n<p><\/code><\/p>\n<p>Bu playbook, agent d\u00fc\u011f\u00fcmlerinde RKE2'yi kurar ve onlar\u0131 belirtilen RKE2 sunucu d\u00fc\u011f\u00fcm\u00fcne ba\u011flar. <code>token<\/code> ve <code>server_ip<\/code> de\u011fi\u015fkenlerinin do\u011fru ayarland\u0131\u011f\u0131ndan emin olun. Bu iki playbook'u s\u0131ras\u0131yla \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda (\u00f6nce sunucular, sonra agent'lar), tam te\u015fekk\u00fcll\u00fc bir RKE2 k\u00fcmeniz haz\u0131r olacakt\u0131r. Kurulumun ard\u0131ndan, <code>kubectl get nodes<\/code> komutu ile d\u00fc\u011f\u00fcmlerinizin durumunu kontrol edebilirsiniz.<\/p>\n<p><strong>Vaka Analizi: B\u00fcy\u00fck \u00d6l\u00e7ekli Bir Da\u011f\u0131t\u0131m Senaryosu<\/strong><\/p>\n<p>Bir e-ticaret \u015firketi olan \"CloudMart\", geli\u015ftirme, test ve \u00fcretim ortamlar\u0131 i\u00e7in \u00fc\u00e7 ayr\u0131 RKE2 k\u00fcmesi kurmak istiyordu. Her ortam\u0131n en az 3 sunucu ve 5 agent d\u00fc\u011f\u00fcm\u00fcne sahip olmas\u0131 gerekiyordu. Manuel kurulumlar, her k\u00fcme i\u00e7in yakla\u015f\u0131k 2 g\u00fcn s\u00fcr\u00fcyordu ve s\u0131k s\u0131k tutars\u0131zl\u0131klar ya\u015fan\u0131yordu. Ansible kullanarak, t\u00fcm bu k\u00fcmelerin kurulumu ve temel yap\u0131land\u0131rmalar\u0131 i\u00e7in sadece 4 saatlik bir playbook geli\u015ftirildi. Bu playbook, t\u00fcm ortamlar\u0131 saniyeler i\u00e7inde ba\u015ftan sona kurabiliyor, hata oran\u0131n\u0131 s\u0131f\u0131ra indiriyor ve ortamlar aras\u0131 tam tutarl\u0131l\u0131\u011f\u0131 sa\u011fl\u0131yordu. Operasyonel verimlilikte %95'in \u00fczerinde bir art\u0131\u015f g\u00f6zlendi ve ekipler, altyap\u0131 kurulumu yerine i\u015f de\u011feri yaratan projelere odaklanabildi. Bu vaka analizi, otomasyonun b\u00fcy\u00fck \u00f6l\u00e7ekli altyap\u0131lardaki kritik rol\u00fcn\u00fc a\u00e7\u0131k\u00e7a g\u00f6stermektedir.<\/p>\n<h2>Rancher Kurulumu ve K\u00fcme Y\u00f6netimi: RKE2 \u00dczerine Yerle\u015ftirmek ve Entegrasyon Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>RKE2 k\u00fcmemiz haz\u0131r oldu\u011funa g\u00f6re, \u015fimdi s\u0131ra Rancher y\u00f6netim platformunu bu k\u00fcme \u00fczerine kurmaya ve RKE2 k\u00fcmelerimizi merkezi olarak y\u00f6netmeye geldi. Rancher'\u0131 bir Kubernetes k\u00fcmesi \u00fczerine kurmak i\u00e7in Helm'i kullanaca\u011f\u0131z. Dolay\u0131s\u0131yla, Rancher kurulumuna ba\u015flamadan \u00f6nce Helm ve sertifika y\u00f6netimi i\u00e7in <code>cert-manager<\/code>'\u0131n kurulu olmas\u0131 gerekmektedir. Bu b\u00f6l\u00fcm, bu ad\u0131mlar\u0131 Ansible ile nas\u0131l otomatize edece\u011fimizi a\u00e7\u0131klayacakt\u0131r.<\/p>\n<h3>Helm ve Cert-Manager Kurulumu<\/h3>\n<p>Rancher, Kubernetes'e Helm Chart'lar\u0131 arac\u0131l\u0131\u011f\u0131yla da\u011f\u0131t\u0131l\u0131r. Ayr\u0131ca, Rancher'\u0131n HTTPS \u00fczerinden g\u00fcvenli bir \u015fekilde eri\u015filebilir olmas\u0131 i\u00e7in sertifika y\u00f6netimi kritik \u00f6neme sahiptir. <code>cert-manager<\/code>, Kubernetes i\u00e7indeki sertifika ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc otomatize eden pop\u00fcler bir ara\u00e7t\u0131r. Bu bile\u015fenleri kurmak i\u00e7in a\u015fa\u011f\u0131daki playbook'u kullanabiliriz. Bu playbook'u genellikle Rancher'\u0131n kurulaca\u011f\u0131 RKE2 sunucu d\u00fc\u011f\u00fcmlerinden birine veya t\u00fcm sunuculara \u00e7al\u0131\u015ft\u0131rmak iyi bir yakla\u015f\u0131md\u0131r, ancak <code>delegate_to: localhost<\/code> kullanarak kontrol makinesinden de Kubernetes API'sine eri\u015fim sa\u011flayabiliriz.<\/p>\n<pre><code>\n---\n- name: Helm ve Cert-Manager'\u0131 Kur\n  hosts: rancher_node # Rancher'\u0131n kurulaca\u011f\u0131 RKE2 sunucu d\u00fc\u011f\u00fcm\u00fc\n  become: yes\n  vars:\n    kubeconfig_path: \"~\/kubeconfig\/server1-kubeconfig.yaml\" # Kontrol makinesindeki kubeconfig yolu\n\n  tasks:\n    - name: Helm'i Kur (Kontrol Makinesine)\n      ansible.builtin.shell: |\n        curl -fsSL https:\/\/raw.githubusercontent.com\/helm\/helm\/main\/scripts\/get-helm-3 | bash\n      args:\n        creates: \/usr\/local\/bin\/helm\n      delegate_to: localhost\n      run_once: true\n\n    - name: Cert-Manager Helm Repo'sunu Ekle\n      ansible.builtin.shell: |\n        helm repo add jetstack https:\/\/charts.jetstack.io\n        helm repo update\n      environment:\n        KUBECONFIG: \"{{ kubeconfig_path }}\"\n      delegate_to: localhost\n      run_once: true\n\n    - name: Cert-Manager Namespace'i Olu\u015ftur\n      ansible.builtin.command: kubectl create namespace cert-manager\n      environment:\n        KUBECONFIG: \"{{ kubeconfig_path }}\"\n      ignore_errors: yes # Namespace zaten varsa hata vermesini engelle\n      delegate_to: localhost\n      run_once: true\n\n    - name: Cert-Manager'\u0131 Y\u00fckle\n      ansible.builtin.shell: |\n        helm install \\\n          cert-manager jetstack\/cert-manager \\\n          --namespace cert-manager \\\n          --version v1.13.2 \\\n          --set installCRDs=true\n      environment:\n        KUBECONFIG: \"{{ kubeconfig_path }}\"\n      delegate_to: localhost\n      run_once: true\n\n    - name: Cert-Manager Pod'lar\u0131n\u0131n Haz\u0131r Olmas\u0131n\u0131 Bekle\n      ansible.builtin.command: kubectl wait --namespace cert-manager --for=condition=ready pod --selector=app.kubernetes.io\/instance=cert-manager --timeout=300s\n      environment:\n        KUBECONFIG: \"{{ kubeconfig_path }}\"\n      delegate_to: localhost\n      run_once: true\n  <\/pre>\n<p><\/code><\/p>\n<p>Bu playbook, Helm'i kontrol makinesine kurar, <code>cert-manager<\/code> Helm deposunu ekler, <code>cert-manager<\/code> i\u00e7in bir namespace olu\u015fturur ve ard\u0131ndan <code>cert-manager<\/code>'\u0131 kurar. <code>KUBECONFIG<\/code> ortam de\u011fi\u015fkenini ayarlayarak kubectl ve helm komutlar\u0131n\u0131n do\u011fru k\u00fcmeye ba\u011flanmas\u0131n\u0131 sa\u011fl\u0131yoruz.<\/p>\n<h3>Rancher Y\u00f6neticisinin Kurulumu<\/h3>\n<p>Helm ve Cert-Manager haz\u0131r oldu\u011funda, Rancher'\u0131 y\u00fcklemeye ge\u00e7ebiliriz. Rancher'\u0131 kurarken HTTPS i\u00e7in bir hostname belirtmek ve bir Ingress Controller kullanmak \u00f6nemlidir. RKE2 varsay\u0131lan olarak Traefik'i bir Ingress Controller olarak i\u00e7erir, bu y\u00fczden genellikle ekstra bir kuruluma ihtiya\u00e7 duyulmaz.<\/p>\n<pre><code>\n---\n- name: Rancher Y\u00f6neticisini Kur\n  hosts: rancher_node # Rancher'\u0131n kurulaca\u011f\u0131 RKE2 sunucu d\u00fc\u011f\u00fcm\u00fc\n  become: yes\n  vars:\n    kubeconfig_path: \"~\/kubeconfig\/server1-kubeconfig.yaml\"\n    rancher_hostname: \"rancher.domain.com\" # Rancher eri\u015fim URL'si\n    rancher_version: \"2.7.9\" # Kurulacak Rancher s\u00fcr\u00fcm\u00fc\n\n  tasks:\n    - name: Rancher Helm Repo'sunu Ekle\n      ansible.builtin.shell: |\n        helm repo add rancher-stable https:\/\/releases.rancher.com\/server-charts\/stable\n        helm repo update\n      environment:\n        KUBECONFIG: \"{{ kubeconfig_path }}\"\n      delegate_to: localhost\n      run_once: true\n\n    - name: Rancher Namespace'i Olu\u015ftur\n      ansible.builtin.command: kubectl create namespace cattle-system\n      environment:\n        KUBECONFIG: \"{{ kubeconfig_path }}\"\n      ignore_errors: yes\n      delegate_to: localhost\n      run_once: true\n\n    - name: Rancher'\u0131 Y\u00fckle\n      ansible.builtin.shell: |\n        helm install rancher rancher-stable\/rancher \\\n          --namespace cattle-system \\\n          --set hostname={{ rancher_hostname }} \\\n          --set bootstrapPassword=rancheradmin \\\n          --set ingress.tls.source=cert-manager \\\n          --set certmanager.version=v1.13.2 \\\n          --version {{ rancher_version }}\n      environment:\n        KUBECONFIG: \"{{ kubeconfig_path }}\"\n      delegate_to: localhost\n      run_once: true\n\n    - name: Rancher Pod'lar\u0131n\u0131n Haz\u0131r Olmas\u0131n\u0131 Bekle\n      ansible.builtin.command: kubectl wait --namespace cattle-system --for=condition=ready pod --selector=app=rancher --timeout=600s\n      environment:\n        KUBECONFIG: \"{{ kubeconfig_path }}\"\n      delegate_to: localhost\n      run_once: true\n\n    - name: Rancher URL'sini Bildir\n      ansible.builtin.debug:\n        msg: \"Rancher ba\u015far\u0131yla kuruldu ve {{ rancher_hostname }} adresinden eri\u015filebilir durumda.\"\n      delegate_to: localhost\n      run_once: true\n  <\/pre>\n<p><\/code><\/p>\n<p>Bu playbook, Rancher Helm deposunu ekler, <code>cattle-system<\/code> namespace'ini olu\u015fturur ve Rancher'\u0131 Helm arac\u0131l\u0131\u011f\u0131yla y\u00fckler. <code>hostname<\/code> parametresi, Rancher'a eri\u015fece\u011finiz alan ad\u0131n\u0131 belirtir. <code>bootstrapPassword<\/code> ile ilk giri\u015f i\u00e7in bir parola belirleyebiliriz, ancak bunu Rancher UI \u00fczerinden giri\u015f yapt\u0131ktan sonra de\u011fi\u015ftirmek \u00f6nemlidir. Rancher, <code>cert-manager<\/code> ile entegre oldu\u011fundan, otomatik olarak SSL sertifikalar\u0131n\u0131 y\u00f6netecek ve Rancher aray\u00fcz\u00fcne g\u00fcvenli eri\u015fim sa\u011flayacakt\u0131r.<\/p>\n<h3>RKE2 K\u00fcmesini Rancher'a Entegre Etme<\/h3>\n<p>Rancher kurulduktan sonra, y\u00f6netim paneline eri\u015fip ilk k\u00fcmenizi ekleyebilirsiniz. Bu i\u015flemi de k\u0131smen Ansible ile otomatize etmek m\u00fcmk\u00fcnd\u00fcr, ancak genellikle ilk kurulum manuel bir etkile\u015fim gerektirebilir veya Rancher API'si \u00fczerinden yap\u0131labilir. Rancher UI \u00fczerinden, \"Import Existing\" se\u00e7ene\u011fini kullanarak RKE2 k\u00fcmenizi kolayca ekleyebilirsiniz. Rancher size bir <code>kubectl apply -f ...<\/code> komutu verecektir. Bu komutu, kontrol makinenizden veya RKE2 k\u00fcmenizdeki herhangi bir sunucu \u00fczerinden \u00e7al\u0131\u015ft\u0131rarak RKE2 k\u00fcmenizi Rancher'a kaydedebilirsiniz. Bu sayede, RKE2 k\u00fcmeniz art\u0131k Rancher'\u0131n merkezi y\u00f6netiminden izlenebilir ve y\u00f6netilebilir hale gelir. Bu otomasyon ad\u0131mlar\u0131 sayesinde, hem RKE2 k\u00fcmesini hem de Rancher y\u00f6netimini h\u0131zl\u0131 ve hatas\u0131z bir \u015fekilde kurarak operasyonel s\u00fcre\u00e7lerinizi \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131rabilirsiniz.<\/p>\n<h2>Geli\u015fmi\u015f Konfig\u00fcrasyonlar ve En \u0130yi Uygulamalar: Otomasyonu Bir \u00dcst Seviyeye Ta\u015f\u0131y\u0131n<\/h2>\n<p>RKE2 ve Rancher kurulumlar\u0131n\u0131n temel otomasyonunu ger\u00e7ekle\u015ftirdikten sonra, daha karma\u015f\u0131k senaryolar\u0131 ele almak ve operasyonel g\u00fcvenli\u011fi ve verimlili\u011fi art\u0131rmak i\u00e7in ileri d\u00fczey Ansible tekniklerini ve en iyi uygulamalar\u0131 ke\u015ffetmek \u00f6nemlidir. Bu b\u00f6l\u00fcm, otomasyon s\u00fcre\u00e7lerinizi bir \u00fcst seviyeye ta\u015f\u0131yacak ipu\u00e7lar\u0131n\u0131 ve y\u00f6ntemleri sunmaktad\u0131r.<\/p>\n<h3>Ansible Vault ile Hassas Veri Y\u00f6netimi<\/h3>\n<p>Otomasyon betikleri genellikle API anahtarlar\u0131, parolalar, \u00f6zel anahtarlar gibi hassas bilgiler i\u00e7erir. Bu t\u00fcr verileri playbook'larda a\u00e7\u0131k metin olarak tutmak ciddi bir g\u00fcvenlik riskidir. Ansible Vault, hassas verileri \u015fifrelemek ve g\u00fcvenli bir \u015fekilde y\u00f6netmek i\u00e7in tasarlanm\u0131\u015ft\u0131r. Vault kullanmak, g\u00fcvenlik ilkelerine uyumu sa\u011flar ve yetkisiz eri\u015fimi engeller.<\/p>\n<pre><code>\n# Yeni bir \u015fifreli dosya olu\u015fturma\nansible-vault create vars\/secret_vars.yml\n\n# Mevcut bir dosyay\u0131 d\u00fczenleme\nansible-vault edit vars\/secret_vars.yml\n\n# \u015eifreli bir dosyay\u0131 g\u00f6r\u00fcnt\u00fcleme\nansible-vault view vars\/secret_vars.yml\n<\/pre>\n<p><\/code><\/p>\n<p>\u015eifreli dosyan\u0131zda \u015fu t\u00fcr bilgiler saklayabilirsiniz:<\/p>\n<pre><code>\n# vars\/secret_vars.yml (\u015fifreli)\nrke2_token: \"super_secret_rke2_token_123\"\nrancher_bootstrap_password: \"MySecureRancherPass\"\n<\/pre>\n<p><\/code><\/p>\n<p>Playbook'unuzda bu de\u011fi\u015fkenleri di\u011fer de\u011fi\u015fkenler gibi kullanabilirsiniz. Playbook'u \u00e7al\u0131\u015ft\u0131r\u0131rken Ansible, Vault parolas\u0131n\u0131 isteyecek veya <code>--vault-password-file<\/code> arg\u00fcman\u0131 ile parolay\u0131 sa\u011flayabilirsiniz:<\/p>\n<pre><code>\nansible-playbook rke2_install.yml --ask-vault-pass\n# veya\nansible-playbook rke2_install.yml --vault-password-file ~\/.ansible_vault_pass\n<\/pre>\n<p><\/code><\/p>\n<h3>Ansible Rolleri ile Mod\u00fclerlik<\/h3>\n<p>B\u00fcy\u00fck ve karma\u015f\u0131k projelerde, t\u00fcm g\u00f6revleri tek bir playbook i\u00e7inde tutmak y\u00f6netimi zorla\u015ft\u0131rabilir. Ansible Rolleri, g\u00f6revleri, \u015fablonlar\u0131, de\u011fi\u015fkenleri ve i\u015fleyicileri mant\u0131ksal bir yap\u0131 alt\u0131nda gruplayarak otomasyonunuzu mod\u00fcler hale getirir. Her rol, belirli bir i\u015flevi (\u00f6rne\u011fin, \"rke2-server\", \"rke2-agent\", \"rancher-install\") yerine getirir. Bu, kod tekrar\u0131n\u0131 azalt\u0131r, okunabilirli\u011fi art\u0131r\u0131r ve bak\u0131m\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<pre><code>\n# Rol dizini yap\u0131s\u0131 \u00f6rne\u011fi\nroles\/\n\u251c\u2500\u2500 rke2-server\/\n\u2502   \u251c\u2500\u2500 tasks\/\n\u2502   \u2502   \u2514\u2500\u2500 main.yml\n\u2502   \u251c\u2500\u2500 vars\/\n\u2502   \u2502   \u2514\u2500\u2500 main.yml\n\u2502   \u2514\u2500\u2500 templates\/\n\u251c\u2500\u2500 rke2-agent\/\n\u2502   \u251c\u2500\u2500 tasks\/\n\u2502   \u2502   \u2514\u2500\u2500 main.yml\n\u2502   \u2514\u2500\u2500 vars\/\n\u2502       \u2514\u2500\u2500 main.yml\n\u2514\u2500\u2500 rancher-install\/\n    \u251c\u2500\u2500 tasks\/\n    \u2502   \u2514\u2500\u2500 main.yml\n    \u2514\u2500\u2500 vars\/\n        \u2514\u2500\u2500 main.yml\n<\/pre>\n<p><\/code><\/p>\n<p>Ana playbook'unuzda rolleri \u015fu \u015fekilde \u00e7a\u011f\u0131rabilirsiniz:<\/p>\n<pre><code>\n---\n- name: RKE2 ve Rancher Da\u011f\u0131t\u0131m\u0131\n  hosts: all\n  become: yes\n\n  roles:\n    - role: rke2-server\n      when: inventory_hostname in groups['rke2_servers']\n    - role: rke2-agent\n      when: inventory_hostname in groups['rke2_agents']\n    - role: rancher-install\n      when: inventory_hostname in groups['rancher_node']\n  <\/pre>\n<p><\/code><\/p>\n<p>Bu yap\u0131, farkl\u0131 ortamlar veya farkl\u0131 k\u00fcme tipleri i\u00e7in playbook'lar\u0131 kolayca yeniden kullanman\u0131za olanak tan\u0131r.<\/p>\n<h3>Hata Y\u00f6netimi ve Idempotency (Tekrarlanabilirlik) Prensipleri<\/h3>\n<p>Ansible'\u0131n temel g\u00fc\u00e7lerinden biri idempotency'dir. Bir playbook'u defalarca \u00e7al\u0131\u015ft\u0131rsan\u0131z bile sistemin istenen duruma gelmesini ve bu durumu korumas\u0131n\u0131 sa\u011flar. Bu, \u00f6zellikle g\u00fcncellemeler veya beklenmedik durumlar sonras\u0131nda sistemleri h\u0131zl\u0131ca kurtarmak i\u00e7in hayati \u00f6neme sahiptir. Playbook'lar\u0131n\u0131z\u0131 yazarken her g\u00f6revin idempotent oldu\u011fundan emin olun. \u00d6rne\u011fin, bir paketi y\u00fcklerken, <code>state: present<\/code> kullanmak, paketin zaten y\u00fckl\u00fc olup olmad\u0131\u011f\u0131n\u0131 kontrol eder ve yaln\u0131zca y\u00fckl\u00fc de\u011filse i\u015flemi ger\u00e7ekle\u015ftirir.<\/p>\n<p>Hata y\u00f6netimi i\u00e7in ise <code>ignore_errors<\/code> veya <code>block\/rescue\/always<\/code> yap\u0131lar\u0131n\u0131 kullanabilirsiniz. \u00d6rne\u011fin, bir servis yeniden ba\u015flat\u0131l\u0131rken k\u0131sa s\u00fcreli bir kesinti tolere edilebilirse <code>ignore_errors: yes<\/code> kullanabilirsiniz. Ancak kritik durumlarda, <code>block<\/code> ile bir dizi g\u00f6revi sarmalay\u0131p, <code>rescue<\/code> blo\u011funda kurtarma ad\u0131mlar\u0131n\u0131 tan\u0131mlayabilirsiniz.<\/p>\n<pre><code>\n    - name: Servisi Yeniden Ba\u015flat (Hata olursa devam et)\n      ansible.builtin.systemd:\n        name: my-service\n        state: restarted\n      ignore_errors: true # Hata olsa bile playbook \u00e7al\u0131\u015fmaya devam eder\n  <\/pre>\n<p><\/code><\/p>\n<div class=\"expert-tip\">\n    Uzman \u0130pucu: Mobil uyumlu y\u00f6netim panelleri i\u00e7in CSS'te media query kullan\u0131n. \u00d6rne\u011fin:<\/p>\n<pre><code>@media (max-width: 768px) {\n      .sidebar {\n        display: none;\n      }\n      .main-content {\n        width: 100%;\n      }\n    }<\/pre>\n<p><\/code><br \/>\n    Bu sayede, Rancher gibi y\u00f6netim panelleri mobil cihazlarda veya k\u00fc\u00e7\u00fck ekranlarda daha iyi bir kullan\u0131c\u0131 deneyimi sunabilir. Her ne kadar Rancher'\u0131n kendi UI's\u0131 responsif olsa da, \u00f6zel bir aray\u00fcz geli\u015ftiriyorsan\u0131z bu prensibi akl\u0131n\u0131zda bulundurun.\n  <\/div>\n<h3>Monitoring ve Logging Entegrasyonu (K\u0131saca)<\/h3>\n<p>RKE2 ve Rancher k\u00fcmelerinizin sa\u011fl\u0131kl\u0131 \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in izleme ve g\u00fcnl\u00fckleme \u00e7\u00f6z\u00fcmlerinin entegrasyonu kritik \u00f6neme sahiptir. Ansible, Prometheus, Grafana, ELK Stack (Elasticsearch, Logstash, Kibana) veya Loki gibi ara\u00e7lar\u0131 k\u00fcmelerinize da\u011f\u0131tmak i\u00e7in kullan\u0131labilir. Playbook'lar arac\u0131l\u0131\u011f\u0131yla Helm grafikleri ile bu ara\u00e7lar\u0131 kolayca kurabilir ve yap\u0131land\u0131rabilirsiniz. Bu sayede, k\u00fcme kaynaklar\u0131n\u0131n kullan\u0131m\u0131n\u0131, uygulama performans\u0131n\u0131 ve olas\u0131 sorunlar\u0131 proaktif olarak tespit edebilirsiniz.<\/p>\n<p>\u00d6rne\u011fin, bir Prometheus ve Grafana kurulumu i\u00e7in ayr\u0131 bir Ansible rol\u00fc olu\u015fturabilir ve bunu Rancher kurulumunuzdan sonra \u00e7al\u0131\u015ft\u0131rabilirsiniz. Bu, u\u00e7tan uca otomasyon stratejinizin ayr\u0131lmaz bir par\u00e7as\u0131 olmal\u0131d\u0131r.<\/p>\n<p>Bu ileri d\u00fczey teknikler, otomasyon projelerinizin \u00f6l\u00e7eklenebilirli\u011fini, g\u00fcvenli\u011fini ve bak\u0131m kolayl\u0131\u011f\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131racakt\u0131r. Ansible'\u0131n esnekli\u011fi sayesinde, karma\u015f\u0131k altyap\u0131 da\u011f\u0131t\u0131mlar\u0131n\u0131 bile basit, okunabilir ve y\u00f6netilebilir ad\u0131mlara b\u00f6lebilirsiniz.<\/p>\n<h2>Otomasyonun G\u00fcc\u00fc: RKE2 ve Rancher Y\u00f6netiminde Yeni Bir D\u00f6nem<\/h2>\n<p>Bu makale boyunca, RKE2 k\u00fcmelerinin ve Rancher y\u00f6netim platformunun Ansible ile nas\u0131l otomatize edilece\u011fini ayr\u0131nt\u0131l\u0131 bir \u015fekilde inceledik. Gerek temel kurulum ad\u0131mlar\u0131 gerekse ileri d\u00fczey yap\u0131land\u0131rma teknikleri ile operasyonel s\u00fcre\u00e7lerinizi d\u00f6n\u00fc\u015ft\u00fcrmenin yollar\u0131n\u0131 ke\u015ffettik. Manuel m\u00fcdahalelerin getirdi\u011fi zorluklar\u0131 a\u015farak, h\u0131zl\u0131, tutarl\u0131 ve g\u00fcvenilir altyap\u0131 da\u011f\u0131t\u0131mlar\u0131n\u0131n kap\u0131s\u0131n\u0131 aralad\u0131k.<\/p>\n<p>Otomasyon, g\u00fcn\u00fcm\u00fcz\u00fcn dinamik ve rekabet\u00e7i BT ortam\u0131nda art\u0131k bir l\u00fcks de\u011fil, bir zorunluluktur. Ansible gibi g\u00fc\u00e7l\u00fc bir ara\u00e7la RKE2 ve Rancher entegrasyonu, \u015firketlerin DevOps hedeflerine ula\u015fmas\u0131nda, \u00fcr\u00fcnlerini pazara daha h\u0131zl\u0131 sunmas\u0131nda ve operasyonel maliyetlerini d\u00fc\u015f\u00fcrmesinde kritik bir rol oynamaktad\u0131r. Altyap\u0131y\u0131 kod olarak y\u00f6netme (Infrastructure as Code - IaC) prensibini benimseyerek, altyap\u0131n\u0131z\u0131n versiyon kontrol\u00fc alt\u0131nda olmas\u0131n\u0131 sa\u011flar, de\u011fi\u015fikliklerin izlenebilirli\u011fini art\u0131r\u0131r ve felaket kurtarma senaryolar\u0131nda h\u0131zl\u0131 iyile\u015fme s\u00fcreleri sunars\u0131n\u0131z.<\/p>\n<p>Bu yakla\u015f\u0131m sayesinde, m\u00fchendislik ekipleri tekrarlayan ve zaman al\u0131c\u0131 g\u00f6revlerden kurtularak inovatif projelere ve i\u015f de\u011ferine odaklanabilir. Daha az hata, daha y\u00fcksek tutarl\u0131l\u0131k ve daha h\u0131zl\u0131 da\u011f\u0131t\u0131m d\u00f6ng\u00fcleri, otomatize edilmi\u015f bir altyap\u0131n\u0131n do\u011frudan sonu\u00e7lar\u0131d\u0131r. Rancher'\u0131n \u00e7oklu k\u00fcme y\u00f6netim yetenekleri ile RKE2'nin g\u00fcvenlik ve hafiflik avantajlar\u0131n\u0131 Ansible'\u0131n otomasyon g\u00fcc\u00fcyle birle\u015ftirmek, gelece\u011fin bulut yerel altyap\u0131s\u0131n\u0131n temelini olu\u015fturmaktad\u0131r. Bu yolculukta edindi\u011finiz bilgiler ve pratik \u00f6rnekler, kendi altyap\u0131 otomasyon stratejinizi olu\u015fturman\u0131z i\u00e7in sa\u011flam bir temel sunmaktad\u0131r. Unutmay\u0131n, otomasyon s\u00fcrekli bir iyile\u015ftirme s\u00fcrecidir; playbook'lar\u0131n\u0131z\u0131 d\u00fczenli olarak g\u00f6zden ge\u00e7irmek, g\u00fcncellemek ve yeni senaryolar\u0131 dahil etmek, sisteminizin \u00e7evikli\u011fini ve g\u00fcvenli\u011fini s\u00fcrekli k\u0131lacakt\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<p><strong>1. RKE2 ve K3s aras\u0131ndaki temel fark nedir?<\/strong><\/p>\n<p>Cevap: RKE2 ve K3s her ikisi de hafif Kubernetes da\u011f\u0131t\u0131mlar\u0131d\u0131r ve Rancher Labs taraf\u0131ndan geli\u015ftirilmi\u015ftir. Temel fark, RKE2'nin kurumsal d\u00fczeyde g\u00fcvenlik ve uyumluluk standartlar\u0131na (\u00f6rne\u011fin FIPS 140-2, CIS Benchmark) daha fazla odaklanmas\u0131d\u0131r. K3s ise daha \u00e7ok IoT, edge ve d\u00fc\u015f\u00fck kaynakl\u0131 ortamlara y\u00f6nelikken, RKE2 daha sa\u011flam ve kurumsal i\u015f y\u00fckleri i\u00e7in tasarlanm\u0131\u015ft\u0131r.<\/p>\n<p><strong>2. Ansible playbooks'lar\u0131nda hassas bilgileri nas\u0131l g\u00fcvenli tutabilirim?<\/strong><\/p>\n<p>Cevap: Hassas bilgileri (parolalar, API anahtarlar\u0131 vb.) a\u00e7\u0131k metin olarak tutmaktan ka\u00e7\u0131n\u0131n. Ansible Vault kullanarak bu verileri \u015fifreleyebilirsiniz. Vault dosyalar\u0131n\u0131 versiyon kontrol sisteminize (Git gibi) ekleyebilir, ancak parolay\u0131 ayr\u0131 ve g\u00fcvenli bir \u015fekilde saklamal\u0131s\u0131n\u0131z. Genellikle, <code>--vault-password-file<\/code> arg\u00fcman\u0131yla parola dosyas\u0131n\u0131n yolunu belirtmek en iyi y\u00f6ntemdir.<\/p>\n<p><strong>3. RKE2 ve Rancher kurulumunda y\u00fcksek eri\u015filebilirlik (HA) nas\u0131l sa\u011flan\u0131r?<\/strong><\/p>\n<p>Cevap: RKE2 taraf\u0131nda HA i\u00e7in en az \u00fc\u00e7 sunucu d\u00fc\u011f\u00fcm\u00fc kullanmal\u0131 ve RKE2 yap\u0131land\u0131rma dosyas\u0131nda (config.yaml) di\u011fer sunucular\u0131n adreslerini belirtmelisiniz. Veri taban\u0131 olarak Etcd yerine harici bir PostgreSQL veya MySQL k\u00fcmesi de kullanabilirsiniz. Rancher i\u00e7in de, birden fazla RKE2 sunucu d\u00fc\u011f\u00fcm\u00fcne Rancher'\u0131 kurarak ve bir y\u00fck dengeleyici \u00f6n\u00fcne alarak HA sa\u011flayabilirsiniz. Rancher'\u0131n kendisi Kubernetes \u00fczerine kuruldu\u011fu i\u00e7in, temel Kubernetes HA prensipleri Rancher i\u00e7in de ge\u00e7erlidir.<\/p>\n<p><strong>4. Mevcut bir RKE2 k\u00fcmesini Rancher'a nas\u0131l ekleyebilirim?<\/strong><\/p>\n<p>Cevap: Rancher UI'da oturum a\u00e7t\u0131ktan sonra, \"Cluster Management\" (K\u00fcme Y\u00f6netimi) b\u00f6l\u00fcm\u00fcne gidin ve \"Import Existing\" (Mevcut K\u00fcmeyi \u0130\u00e7e Aktar) se\u00e7ene\u011fini se\u00e7in. Rancher size bir <code>kubectl<\/code> komutu verecektir. Bu komutu, RKE2 k\u00fcmenize eri\u015febilen bir makineden (\u00f6rne\u011fin Ansible kontrol makinesi veya RKE2 sunucu d\u00fc\u011f\u00fcm\u00fc) \u00e7al\u0131\u015ft\u0131r\u0131n. Bu komut, Rancher agent'lar\u0131n\u0131 RKE2 k\u00fcmenize da\u011f\u0131tarak Rancher'\u0131n k\u00fcmenizi y\u00f6netmesini sa\u011flar.<\/p>\n<p><strong>5. Ansible ile RKE2 ve Rancher g\u00fcncellemelerini nas\u0131l otomatize edebilirim?<\/strong><\/p>\n<p>Cevap: RKE2 ve Rancher g\u00fcncellemeleri i\u00e7in mevcut playbook'lar\u0131n\u0131z\u0131 yeni versiyon numaralar\u0131yla g\u00fcncelleyerek ve tekrar \u00e7al\u0131\u015ft\u0131rarak otomatize edebilirsiniz. RKE2 g\u00fcncellemeleri genellikle ikili dosyalar\u0131n de\u011fi\u015ftirilip servisin yeniden ba\u015flat\u0131lmas\u0131yla yap\u0131l\u0131r. Rancher g\u00fcncellemeleri ise Helm <code>upgrade<\/code> komutlar\u0131 ile ger\u00e7ekle\u015ftirilir. Ancak, g\u00fcncelleme \u00f6ncesinde mutlaka yedekleme yapmal\u0131 ve \u00f6ncelikle geli\u015ftirme\/test ortamlar\u0131nda denemelisiniz. Canl\u0131 ortamda kademeli g\u00fcncellemeler ve kesinti s\u00fcrelerini minimize edecek stratejiler (\u00f6rne\u011fin Canary da\u011f\u0131t\u0131mlar\u0131) kullanmak \u00f6nemlidir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Modern bulut altyap\u0131lar\u0131nda Kubernetes k\u00fcmelerinin y\u00f6netimi, \u00f6zellikle b\u00fcy\u00fck \u00f6l\u00e7ekli ve dinamik ortamlar i\u00e7in olduk\u00e7a karma\u015f\u0131k olabilir. RKE2 ve&hellip;","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-31348","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>Ansible ile RKE2 ve Rancher Kurulumlar\u0131n\u0131 Otomatize Etmek<\/title>\n<meta name=\"description\" content=\"Modern bulut altyap\u0131lar\u0131nda Kubernetes k\u00fcmelerinin y\u00f6netimi, \u00f6zellikle b\u00fcy\u00fck \u00f6l\u00e7ekli ve dinamik ortamlar i\u00e7in olduk\u00e7a karma\u015f\u0131k olabilir. RKE2 ve Rancher gibi g\u00fc\u00e7l\u00fc ara\u00e7lar bu s\u00fcreci kolayla\u015ft\u0131rsa da, kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131n manuel olarak yap\u0131lmas\u0131 zaman al\u0131c\u0131 ve hataya a\u00e7\u0131k bir s\u00fcreci beraberinde getirir. Peki, bu s\u00fcreci Ansible\u2019\u0131n g\u00fcc\u00fcyle nas\u0131l otomatize edebiliriz? Bu makalede, RKE2 k\u00fcmelerinin ve Rancher y\u00f6netim platformunun Ansible ile nas\u0131l h\u0131zl\u0131, tutarl\u0131 ve tekrarlanabilir bir \u015fekilde da\u011f\u0131t\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Bu rehber sayesinde altyap\u0131n\u0131z\u0131 kod olarak y\u00f6netmenin (Infrastructure as Code) avantajlar\u0131n\u0131 ke\u015ffedecek ve operasyonel verimlili\u011finizi art\u0131racaks\u0131n\u0131z.\" \/>\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\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ansible ile RKE2 ve Rancher Kurulumlar\u0131n\u0131 Otomatize Etmek\" \/>\n<meta property=\"og:description\" content=\"Modern bulut altyap\u0131lar\u0131nda Kubernetes k\u00fcmelerinin y\u00f6netimi, \u00f6zellikle b\u00fcy\u00fck \u00f6l\u00e7ekli ve dinamik ortamlar i\u00e7in olduk\u00e7a karma\u015f\u0131k olabilir. RKE2 ve Rancher gibi g\u00fc\u00e7l\u00fc ara\u00e7lar bu s\u00fcreci kolayla\u015ft\u0131rsa da, kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131n manuel olarak yap\u0131lmas\u0131 zaman al\u0131c\u0131 ve hataya a\u00e7\u0131k bir s\u00fcreci beraberinde getirir. Peki, bu s\u00fcreci Ansible\u2019\u0131n g\u00fcc\u00fcyle nas\u0131l otomatize edebiliriz? Bu makalede, RKE2 k\u00fcmelerinin ve Rancher y\u00f6netim platformunun Ansible ile nas\u0131l h\u0131zl\u0131, tutarl\u0131 ve tekrarlanabilir bir \u015fekilde da\u011f\u0131t\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Bu rehber sayesinde altyap\u0131n\u0131z\u0131 kod olarak y\u00f6netmenin (Infrastructure as Code) avantajlar\u0131n\u0131 ke\u015ffedecek ve operasyonel verimlili\u011finizi art\u0131racaks\u0131n\u0131z.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-08T20:01:45+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=\"28 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ansible ile RKE2 ve Rancher Kurulumlar\u0131n\u0131 Otomatize Etmek\",\"datePublished\":\"2025-10-08T20:01:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/\"},\"wordCount\":4206,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/\",\"name\":\"Ansible ile RKE2 ve Rancher Kurulumlar\u0131n\u0131 Otomatize Etmek\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-08T20:01:45+00:00\",\"description\":\"Modern bulut altyap\u0131lar\u0131nda Kubernetes k\u00fcmelerinin y\u00f6netimi, \u00f6zellikle b\u00fcy\u00fck \u00f6l\u00e7ekli ve dinamik ortamlar i\u00e7in olduk\u00e7a karma\u015f\u0131k olabilir. RKE2 ve Rancher gibi g\u00fc\u00e7l\u00fc ara\u00e7lar bu s\u00fcreci kolayla\u015ft\u0131rsa da, kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131n manuel olarak yap\u0131lmas\u0131 zaman al\u0131c\u0131 ve hataya a\u00e7\u0131k bir s\u00fcreci beraberinde getirir. Peki, bu s\u00fcreci Ansible\u2019\u0131n g\u00fcc\u00fcyle nas\u0131l otomatize edebiliriz? Bu makalede, RKE2 k\u00fcmelerinin ve Rancher y\u00f6netim platformunun Ansible ile nas\u0131l h\u0131zl\u0131, tutarl\u0131 ve tekrarlanabilir bir \u015fekilde da\u011f\u0131t\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Bu rehber sayesinde altyap\u0131n\u0131z\u0131 kod olarak y\u00f6netmenin (Infrastructure as Code) avantajlar\u0131n\u0131 ke\u015ffedecek ve operasyonel verimlili\u011finizi art\u0131racaks\u0131n\u0131z.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ansible ile RKE2 ve Rancher Kurulumlar\u0131n\u0131 Otomatize Etmek\"}]},{\"@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":"Ansible ile RKE2 ve Rancher Kurulumlar\u0131n\u0131 Otomatize Etmek","description":"Modern bulut altyap\u0131lar\u0131nda Kubernetes k\u00fcmelerinin y\u00f6netimi, \u00f6zellikle b\u00fcy\u00fck \u00f6l\u00e7ekli ve dinamik ortamlar i\u00e7in olduk\u00e7a karma\u015f\u0131k olabilir. RKE2 ve Rancher gibi g\u00fc\u00e7l\u00fc ara\u00e7lar bu s\u00fcreci kolayla\u015ft\u0131rsa da, kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131n manuel olarak yap\u0131lmas\u0131 zaman al\u0131c\u0131 ve hataya a\u00e7\u0131k bir s\u00fcreci beraberinde getirir. Peki, bu s\u00fcreci Ansible\u2019\u0131n g\u00fcc\u00fcyle nas\u0131l otomatize edebiliriz? Bu makalede, RKE2 k\u00fcmelerinin ve Rancher y\u00f6netim platformunun Ansible ile nas\u0131l h\u0131zl\u0131, tutarl\u0131 ve tekrarlanabilir bir \u015fekilde da\u011f\u0131t\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Bu rehber sayesinde altyap\u0131n\u0131z\u0131 kod olarak y\u00f6netmenin (Infrastructure as Code) avantajlar\u0131n\u0131 ke\u015ffedecek ve operasyonel verimlili\u011finizi art\u0131racaks\u0131n\u0131z.","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\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/","og_locale":"tr_TR","og_type":"article","og_title":"Ansible ile RKE2 ve Rancher Kurulumlar\u0131n\u0131 Otomatize Etmek","og_description":"Modern bulut altyap\u0131lar\u0131nda Kubernetes k\u00fcmelerinin y\u00f6netimi, \u00f6zellikle b\u00fcy\u00fck \u00f6l\u00e7ekli ve dinamik ortamlar i\u00e7in olduk\u00e7a karma\u015f\u0131k olabilir. RKE2 ve Rancher gibi g\u00fc\u00e7l\u00fc ara\u00e7lar bu s\u00fcreci kolayla\u015ft\u0131rsa da, kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131n manuel olarak yap\u0131lmas\u0131 zaman al\u0131c\u0131 ve hataya a\u00e7\u0131k bir s\u00fcreci beraberinde getirir. Peki, bu s\u00fcreci Ansible\u2019\u0131n g\u00fcc\u00fcyle nas\u0131l otomatize edebiliriz? Bu makalede, RKE2 k\u00fcmelerinin ve Rancher y\u00f6netim platformunun Ansible ile nas\u0131l h\u0131zl\u0131, tutarl\u0131 ve tekrarlanabilir bir \u015fekilde da\u011f\u0131t\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Bu rehber sayesinde altyap\u0131n\u0131z\u0131 kod olarak y\u00f6netmenin (Infrastructure as Code) avantajlar\u0131n\u0131 ke\u015ffedecek ve operasyonel verimlili\u011finizi art\u0131racaks\u0131n\u0131z.","og_url":"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-08T20:01:45+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"28 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ansible ile RKE2 ve Rancher Kurulumlar\u0131n\u0131 Otomatize Etmek","datePublished":"2025-10-08T20:01:45+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/"},"wordCount":4206,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/","url":"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/","name":"Ansible ile RKE2 ve Rancher Kurulumlar\u0131n\u0131 Otomatize Etmek","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-08T20:01:45+00:00","description":"Modern bulut altyap\u0131lar\u0131nda Kubernetes k\u00fcmelerinin y\u00f6netimi, \u00f6zellikle b\u00fcy\u00fck \u00f6l\u00e7ekli ve dinamik ortamlar i\u00e7in olduk\u00e7a karma\u015f\u0131k olabilir. RKE2 ve Rancher gibi g\u00fc\u00e7l\u00fc ara\u00e7lar bu s\u00fcreci kolayla\u015ft\u0131rsa da, kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131n manuel olarak yap\u0131lmas\u0131 zaman al\u0131c\u0131 ve hataya a\u00e7\u0131k bir s\u00fcreci beraberinde getirir. Peki, bu s\u00fcreci Ansible\u2019\u0131n g\u00fcc\u00fcyle nas\u0131l otomatize edebiliriz? Bu makalede, RKE2 k\u00fcmelerinin ve Rancher y\u00f6netim platformunun Ansible ile nas\u0131l h\u0131zl\u0131, tutarl\u0131 ve tekrarlanabilir bir \u015fekilde da\u011f\u0131t\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Bu rehber sayesinde altyap\u0131n\u0131z\u0131 kod olarak y\u00f6netmenin (Infrastructure as Code) avantajlar\u0131n\u0131 ke\u015ffedecek ve operasyonel verimlili\u011finizi art\u0131racaks\u0131n\u0131z.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ansible-ile-rke2-ve-rancher-kurulumlarini-otomatize-etmek\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ansible ile RKE2 ve Rancher Kurulumlar\u0131n\u0131 Otomatize Etmek"}]},{"@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\/31348","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=31348"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31348\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}