{"id":36920,"date":"2025-12-24T23:40:51","date_gmt":"2025-12-24T20:40:51","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=36920"},"modified":"2025-12-24T23:40:51","modified_gmt":"2025-12-24T20:40:51","slug":"puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/","title":{"rendered":"Puppet 4&#8217;\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>Puppet 4&#8217;\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k IT altyap\u0131lar\u0131nda, sunucular\u0131n ve di\u011fer sistemlerin tutarl\u0131 bir \u015fekilde yap\u0131land\u0131r\u0131lmas\u0131 ve y\u00f6netilmesi hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Y\u00fczlerce veya binlerce sunucuyu manuel olarak yap\u0131land\u0131rmak, hem zaman al\u0131c\u0131 hem de hataya a\u00e7\u0131k bir s\u00fcre\u00e7tir. \u0130\u015fte bu noktada otomasyon ara\u00e7lar\u0131 devreye girer. Konfig\u00fcrasyon y\u00f6netimi ara\u00e7lar\u0131, altyap\u0131n\u0131z\u0131n durumunu tan\u0131mlaman\u0131za, da\u011f\u0131tman\u0131za ve s\u00fcrd\u00fcrmenize olanak tan\u0131r. Bu ara\u00e7lardan biri de a\u00e7\u0131k kaynakl\u0131 bir yaz\u0131l\u0131m olan Puppet&#8217;tir.<\/p>\n<p>Puppet, sistem y\u00f6neticilerinin sunucu yap\u0131land\u0131rmalar\u0131n\u0131 kod olarak tan\u0131mlamas\u0131na olanak tan\u0131yan, Ruby tabanl\u0131 bir konfig\u00fcrasyon y\u00f6netim arac\u0131d\u0131r. Bu sayede, &#8220;altyap\u0131 kod olarak&#8221; (Infrastructure as Code &#8211; IaC) prensibi benimsenir. Puppet, deklaratif bir dil kullanarak sistemlerin son durumunu tan\u0131mlar ve bu duruma ula\u015fmak i\u00e7in gerekli ad\u0131mlar\u0131 otomatik olarak atar. \u00d6rne\u011fin, belirli bir paketin y\u00fckl\u00fc olmas\u0131n\u0131, bir servisin \u00e7al\u0131\u015fmas\u0131n\u0131 veya bir dosyan\u0131n belirli bir i\u00e7eri\u011fe sahip olmas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<p>Puppet&#8217;in temel mimarisi &#8220;Master-Agent&#8221; (Ana-Arac\u0131) modeline dayan\u0131r. Bu modelde, bir merkezi Puppet Master sunucusu bulunur ve bu sunucu, t\u00fcm konfig\u00fcrasyon tan\u0131mlar\u0131n\u0131 (manifestler, mod\u00fcller) bar\u0131nd\u0131r\u0131r. A\u011fdaki di\u011fer sunucular ise Puppet Agent olarak g\u00f6rev yapar. Agent&#8217;lar belirli aral\u0131klarla Master ile ileti\u015fime ge\u00e7erek kendi konfig\u00fcrasyonlar\u0131n\u0131 ister, Master&#8217;dan gelen komutlar\u0131 uygular ve konfig\u00fcrasyon durumlar\u0131n\u0131 Master&#8217;a raporlar.<\/p>\n<p>Bu makalede, Puppet&#8217;in 4. s\u00fcr\u00fcm\u00fcn\u00fc CentOS 7 i\u015fletim sistemi \u00fczerinde bir Master-Agent mimarisinde nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve temel bir konfig\u00fcrasyonu nas\u0131l uygulayaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m anlataca\u011f\u0131z. Puppet 4, \u00f6nceki s\u00fcr\u00fcmlere g\u00f6re performans iyile\u015ftirmeleri, daha modern bir kod taban\u0131 ve baz\u0131 yeni \u00f6zellikler sunmu\u015ftur. CentOS 7 ise kurumsal ortamlarda yayg\u0131n olarak kullan\u0131lan stabil ve g\u00fcvenilir bir Linux da\u011f\u0131t\u0131m\u0131d\u0131r. Bu rehber, Puppet ile otomasyon d\u00fcnyas\u0131na ad\u0131m atmak isteyen sistem y\u00f6neticileri ve DevOps m\u00fchendisleri i\u00e7in kapsaml\u0131 bir ba\u015flang\u0131\u00e7 noktas\u0131 olacakt\u0131r.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Puppet Master ve Agent kurulumuna ba\u015flamadan \u00f6nce, ortam\u0131n\u0131z\u0131n belirli gereksinimleri kar\u015f\u0131lad\u0131\u011f\u0131ndan emin olman\u0131z gerekmektedir. Bu gereksinimler, kurulumun sorunsuz ilerlemesi ve sistemin d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h4>\u0130\u015fletim Sistemi<\/h4>\n<ul>\n<li>Her iki sunucu (Master ve Agent) i\u00e7in de <strong>CentOS 7<\/strong> y\u00fckl\u00fc ve g\u00fcncel olmal\u0131d\u0131r. G\u00fcncellemeleri yapmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:\n<pre><code class=\"language-bash\">sudo yum update -y<\/code><\/pre>\n<\/li>\n<\/ul>\n<h4>A\u011f Yap\u0131land\u0131rmas\u0131<\/h4>\n<ul>\n<li><strong>Statik IP Adresleri:<\/strong> Hem Puppet Master hem de Puppet Agent sunucular\u0131n\u0131n statik IP adreslerine sahip olmas\u0131 \u00f6nerilir. Dinamik IP adresleri, sunucular yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda de\u011fi\u015febilir ve bu da ileti\u015fimi bozabilir.<\/li>\n<li><strong>Hostname \u00c7\u00f6z\u00fcmlemesi:<\/strong> Sunucular aras\u0131nda hostname ile ileti\u015fim kurulabilmesi i\u00e7in isim \u00e7\u00f6z\u00fcmlemesinin d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 gerekir.\n<ul>\n<li>Her iki sunucunun da kendi hostname&#8217;i do\u011fru bir \u015fekilde ayarlanmal\u0131d\u0131r. \u00d6rne\u011fin:\n<pre><code class=\"language-bash\">sudo hostnamectl set-hostname puppetmaster.example.com<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo hostnamectl set-hostname puppetagent.example.com<\/code><\/pre>\n<\/li>\n<li><strong>DNS Kay\u0131tlar\u0131:<\/strong> E\u011fer bir DNS sunucunuz varsa, Master ve Agent sunucular\u0131n\u0131n A kay\u0131tlar\u0131n\u0131 ve PTR kay\u0131tlar\u0131n\u0131 (iste\u011fe ba\u011fl\u0131) eklemeniz en iyi y\u00f6ntemdir.<\/li>\n<li><strong><code>\/etc\/hosts<\/code> Dosyas\u0131:<\/strong> DNS sunucusu olmayan ortamlarda veya k\u00fc\u00e7\u00fck kurulumlarda, her iki sunucunun <code>\/etc\/hosts<\/code> dosyas\u0131na di\u011fer sunucunun IP adresi ve hostname&#8217;i eklenmelidir.\n<p><strong>Puppet Master&#8217;\u0131n <code>\/etc\/hosts<\/code> dosyas\u0131na ekleyin:<\/strong><\/p>\n<pre><code class=\"language-bash\">192.168.1.100 puppetmaster.example.com puppetmaster\n192.168.1.101 puppetagent.example.com puppetagent<\/code><\/pre>\n<p><strong>Puppet Agent&#8217;\u0131n <code>\/etc\/hosts<\/code> dosyas\u0131na ekleyin:<\/strong><\/p>\n<pre><code class=\"language-bash\">192.168.1.100 puppetmaster.example.com puppetmaster\n192.168.1.101 puppetagent.example.com puppetagent<\/code><\/pre>\n<p><em>Not: IP adreslerini ve hostname&#8217;leri kendi ortam\u0131n\u0131za g\u00f6re d\u00fczenlemeyi unutmay\u0131n.<\/em><\/p>\n<\/li>\n<li><strong>Ba\u011flant\u0131 Testi:<\/strong> Sunucular aras\u0131nda ping veya SSH ile ba\u011flant\u0131 kurabildi\u011finizden emin olun.\n<pre><code class=\"language-bash\">ping puppetmaster.example.com<\/code><\/pre>\n<pre><code class=\"language-bash\">ping puppetagent.example.com<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>SELinux ve Firewall Durumu<\/h4>\n<ul>\n<li><strong>SELinux:<\/strong> CentOS 7&#8217;de SELinux varsay\u0131lan olarak etkindir ve baz\u0131 durumlarda Puppet&#8217;in d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131n\u0131 engelleyebilir. Kurulum s\u0131ras\u0131nda sorun ya\u015famamak i\u00e7in ge\u00e7ici olarak devre d\u0131\u015f\u0131 b\u0131rakabilir veya uygun kurallar\u0131 ekleyebilirsiniz. G\u00fcvenlik nedeniyle kal\u0131c\u0131 olarak devre d\u0131\u015f\u0131 b\u0131rakmak yerine, gerekli izinleri tan\u0131mlamak daha do\u011fru bir yakla\u015f\u0131md\u0131r.\n<p><strong>Ge\u00e7ici olarak devre d\u0131\u015f\u0131 b\u0131rakmak i\u00e7in:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo setenforce 0<\/code><\/pre>\n<p><strong>Kal\u0131c\u0131 olarak devre d\u0131\u015f\u0131 b\u0131rakmak i\u00e7in <code>\/etc\/selinux\/config<\/code> dosyas\u0131n\u0131 d\u00fczenleyin:<\/strong><\/p>\n<pre><code class=\"language-bash\">SELINUX=enforcing  # Bunu enforcing yerine disabled yap\u0131n\nsudo reboot<\/code><\/pre>\n<p><em>Makalenin ilerleyen b\u00f6l\u00fcmlerinde SELinux&#8217;u etkin tutmak i\u00e7in gerekli ayarlamalardan bahsedece\u011fiz.<\/em><\/p>\n<\/li>\n<li><strong>Firewall (firewalld):<\/strong> CentOS 7&#8217;de varsay\u0131lan olarak <code>firewalld<\/code> etkindir. Puppet Master sunucusunun, Agent&#8217;lardan gelen ba\u011flant\u0131lar\u0131 kabul edebilmesi i\u00e7in 8140 TCP portunun a\u00e7\u0131lmas\u0131 gerekmektedir.\n<p><strong>Puppet Master&#8217;da 8140 portunu a\u00e7mak i\u00e7in:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo firewall-cmd --add-port=8140\/tcp --permanent\nsudo firewall-cmd --reload<\/code><\/pre>\n<p>Puppet Agent sunucusunda d\u0131\u015far\u0131dan gelen bir ba\u011flant\u0131 olaca\u011f\u0131 i\u00e7in \u00f6zel bir firewall ayar\u0131 yapmaya gerek yoktur. Ancak Agent&#8217;\u0131n Master&#8217;a 8140 portundan eri\u015febildi\u011finden emin olun.<\/p>\n<\/li>\n<\/ul>\n<h4>Sistem Kaynaklar\u0131<\/h4>\n<ul>\n<li><strong>Puppet Master:<\/strong> Puppet Master, Agent&#8217;lardan gelen istekleri i\u015fledi\u011fi ve konfig\u00fcrasyonlar\u0131 derledi\u011fi i\u00e7in daha fazla kayna\u011fa ihtiya\u00e7 duyar.\n<ul>\n<li><strong>RAM:<\/strong> En az 2 GB RAM (k\u00fc\u00e7\u00fck ortamlar i\u00e7in), daha b\u00fcy\u00fck ortamlar i\u00e7in 4 GB veya daha fazlas\u0131 \u00f6nerilir. Puppet Server Java tabanl\u0131 oldu\u011fu i\u00e7in bellek t\u00fcketimi y\u00fcksek olabilir.<\/li>\n<li><strong>CPU:<\/strong> En az 2 CPU \u00e7ekirde\u011fi.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Puppet Agent:<\/strong> Agent&#8217;lar daha az kayna\u011fa ihtiya\u00e7 duyar.\n<ul>\n<li><strong>RAM:<\/strong> En az 512 MB RAM.<\/li>\n<li><strong>CPU:<\/strong> En az 1 CPU \u00e7ekirde\u011fi.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Bu \u00f6n gereksinimleri tamamlad\u0131ktan sonra, Puppet Master ve Agent kurulum ad\u0131mlar\u0131na ge\u00e7meye haz\u0131r\u0131z.<\/p>\n<h3>Master Sunucu Kurulumu<\/h3>\n<p>Puppet Master sunucusu, t\u00fcm konfig\u00fcrasyon y\u00f6netiminin merkezidir. Bu sunucu, Puppet manifestlerini, mod\u00fcllerini ve Agent&#8217;lar\u0131n konfig\u00fcrasyonunu derlemek i\u00e7in gereken t\u00fcm ara\u00e7lar\u0131 bar\u0131nd\u0131r\u0131r.<\/p>\n<h4>Puppet Labs Deposu Ekleme<\/h4>\n<p>Puppet paketleri CentOS&#8217;un varsay\u0131lan depolar\u0131nda bulunmaz. Bu nedenle, Puppet Labs&#8217;\u0131n kendi deposunu sisteme eklememiz gerekmektedir. Bu depo, Puppet Server ve Agent paketlerini i\u00e7erir.<\/p>\n<pre><code class=\"language-bash\">sudo rpm -Uvh https:\/\/yum.puppet.com\/puppet4\/puppet4-release-el-7.noarch.rpm<\/code><\/pre>\n<p>Bu komut, Puppet 4 i\u00e7in gerekli olan RPM deposunu sisteminize ekleyecektir. <code>yum<\/code> komutlar\u0131 art\u0131k bu depodan Puppet paketlerini bulabilir.<\/p>\n<h4>Puppet Server Kurulumu<\/h4>\n<p>Depoyu ekledikten sonra, <code>puppetserver<\/code> paketini y\u00fckleyebiliriz:<\/p>\n<pre><code class=\"language-bash\">sudo yum install -y puppetserver<\/code><\/pre>\n<p>Bu komut, Puppet Master sunucusunun \u00e7al\u0131\u015fmas\u0131 i\u00e7in gerekli olan t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131 ve <code>puppetserver<\/code> uygulamas\u0131n\u0131 y\u00fckleyecektir.<\/p>\n<h4>Java Bellek Ayarlar\u0131<\/h4>\n<p>Puppet Server, Java Sanal Makinesi (JVM) \u00fczerinde \u00e7al\u0131\u015f\u0131r ve varsay\u0131lan olarak belirli bir bellek miktar\u0131 ile yap\u0131land\u0131r\u0131l\u0131r. K\u00fc\u00e7\u00fck ortamlar i\u00e7in varsay\u0131lan ayarlar yeterli olabilirken, daha b\u00fcy\u00fck ortamlar veya y\u00fcksek y\u00fck alt\u0131nda \u00e7al\u0131\u015fan sunucular i\u00e7in JVM&#8217;e ayr\u0131lan belle\u011fi art\u0131rmak gerekebilir. Bu ayar, <code>\/etc\/sysconfig\/puppetserver<\/code> dosyas\u0131nda yap\u0131l\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo vi \/etc\/sysconfig\/puppetserver<\/code><\/pre>\n<p>Dosyay\u0131 a\u00e7t\u0131ktan sonra, <code>JAVA_ARGS<\/code> de\u011fi\u015fkenini bulun ve <code>-Xms<\/code> (ba\u015flang\u0131\u00e7 bellek boyutu) ve <code>-Xmx<\/code> (maksimum bellek boyutu) de\u011ferlerini ayarlay\u0131n. \u00d6rne\u011fin, 2 GB bellek ay\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">JAVA_ARGS=\"-Xms2g -Xmx2g -XX:MaxPermSize=256m\"<\/code><\/pre>\n<p><em>Not: <code>MaxPermSize<\/code> Puppet 8&#8217;den itibaren kald\u0131r\u0131lm\u0131\u015ft\u0131r, ancak Puppet 4&#8217;te hala kullan\u0131labilir. Ortam\u0131n\u0131z\u0131n RAM kapasitesine g\u00f6re bu de\u011ferleri ayarlay\u0131n.<\/em><\/p>\n<h4>Firewall Ayarlar\u0131<\/h4>\n<p>Puppet Master&#8217;\u0131n Agent&#8217;lardan gelen ba\u011flant\u0131lar\u0131 kabul edebilmesi i\u00e7in 8140 TCP portunun a\u00e7\u0131k olmas\u0131 gerekmektedir. Bu port, Puppet&#8217;in varsay\u0131lan ileti\u015fim portudur.<\/p>\n<pre><code class=\"language-bash\">sudo firewall-cmd --add-port=8140\/tcp --permanent\nsudo firewall-cmd --reload<\/code><\/pre>\n<p>Bu komutlar, <code>firewalld<\/code> servisine 8140 portunu kal\u0131c\u0131 olarak a\u00e7mas\u0131n\u0131 s\u00f6yler ve ard\u0131ndan firewall kurallar\u0131n\u0131 yeniden y\u00fckler.<\/p>\n<h4>SELinux Ayarlar\u0131 (Opsiyonel ama \u00d6nemli)<\/h4>\n<p>E\u011fer SELinux&#8217;u devre d\u0131\u015f\u0131 b\u0131rakmak istemiyorsan\u0131z (ki bu g\u00fcvenlik a\u00e7\u0131s\u0131ndan \u00f6nerilen bir yakla\u015f\u0131md\u0131r), Puppet Server&#8217;\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 i\u00e7in baz\u0131 SELinux politikalar\u0131n\u0131n ayarlanmas\u0131 gerekebilir. Genellikle, Puppet&#8217;in varsay\u0131lan kurulumu i\u00e7in SELinux politikalar\u0131 yeterlidir. Ancak \u00f6zel mod\u00fcller veya dosya eri\u015fim sorunlar\u0131 ya\u015farsan\u0131z, a\u015fa\u011f\u0131daki gibi izinler eklemeniz gerekebilir:<\/p>\n<pre><code class=\"language-bash\">sudo semanage fcontext -a -t puppet_var_lib_t \"\/opt\/puppetlabs\/server\/data\/puppetserver(\/.*)?\"\nsudo restorecon -Rv \/opt\/puppetlabs\/server\/data\/puppetserver<\/code><\/pre>\n<p>Bu, Puppet Server&#8217;\u0131n veri dizinleri i\u00e7in do\u011fru SELinux ba\u011flam\u0131n\u0131 ayarlar. \u00c7o\u011fu durumda, Puppet&#8217;in kendi politikalar\u0131 zaten bu t\u00fcr eri\u015fimleri y\u00f6netir. E\u011fer <code>setenforce 0<\/code> ile ge\u00e7ici olarak devre d\u0131\u015f\u0131 b\u0131rakt\u0131ysan\u0131z, kurulum sonras\u0131 testleri yap\u0131p SELinux&#8217;u tekrar <code>enforcing<\/code> moduna al\u0131p sorun olup olmad\u0131\u011f\u0131n\u0131 g\u00f6zlemleyebilirsiniz. Sorun ya\u015farsan\u0131z, <code>audit2allow<\/code> arac\u0131yla \u00f6zel kurallar olu\u015fturabilirsiniz.<\/p>\n<h4>Puppet Server Servisini Ba\u015flatma ve Etkinle\u015ftirme<\/h4>\n<p>T\u00fcm ayarlar\u0131 yapt\u0131ktan sonra, Puppet Server servisini ba\u015flatabilir ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirebiliriz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start puppetserver\nsudo systemctl enable puppetserver<\/code><\/pre>\n<p>Servisin durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status puppetserver<\/code><\/pre>\n<p>Durumun &#8220;active (running)&#8221; oldu\u011funu g\u00f6rmelisiniz. Herhangi bir hata durumunda, log dosyalar\u0131n\u0131 (<code>\/var\/log\/puppetlabs\/puppetserver\/puppetserver.log<\/code>) kontrol edin.<\/p>\n<h4>Path Ayarlar\u0131<\/h4>\n<p>Puppet komutlar\u0131n\u0131 (<code>puppet<\/code>, <code>puppetserver<\/code> vb.) do\u011frudan \u00e7al\u0131\u015ft\u0131rabilmek i\u00e7in, bu komutlar\u0131n bulundu\u011fu dizinlerin PATH ortam de\u011fi\u015fkeninde tan\u0131ml\u0131 olmas\u0131 faydal\u0131d\u0131r. Puppet 4, komutlar\u0131 <code>\/opt\/puppetlabs\/bin<\/code> dizinine y\u00fckler. Bu dizin genellikle varsay\u0131lan olarak PATH&#8217;e eklenir, ancak emin olmak i\u00e7in kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">echo $PATH<\/code><\/pre>\n<p>E\u011fer <code>\/opt\/puppetlabs\/bin<\/code> PATH&#8217;te yoksa, kullan\u0131c\u0131 profilinize ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">echo 'export PATH=$PATH:\/opt\/puppetlabs\/bin' >> ~\/.bashrc\nsource ~\/.bashrc<\/code><\/pre>\n<p>Bu ad\u0131m, Puppet komutlar\u0131n\u0131 her yerden kolayca \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131r.<\/p>\n<h3>Agent Sunucu Kurulumu<\/h3>\n<p>Puppet Agent sunucular\u0131, Puppet Master&#8217;dan konfig\u00fcrasyonlar\u0131 al\u0131r ve kendi \u00fczerlerinde uygular. Her Agent, Master ile belirli aral\u0131klarla ileti\u015fime ge\u00e7er ve konfig\u00fcrasyon durumunu raporlar.<\/p>\n<h4>Paket Deposu Ekleme<\/h4>\n<p>T\u0131pk\u0131 Master sunucusunda oldu\u011fu gibi, Agent sunucular\u0131na da Puppet Labs deposunu eklememiz gerekiyor:<\/p>\n<pre><code class=\"language-bash\">sudo rpm -Uvh https:\/\/yum.puppet.com\/puppet4\/puppet4-release-el-7.noarch.rpm<\/code><\/pre>\n<h4>Puppet Agent Kurulumu<\/h4>\n<p>Depoyu ekledikten sonra, <code>puppet-agent<\/code> paketini y\u00fckleyebiliriz:<\/p>\n<pre><code class=\"language-bash\">sudo yum install -y puppet-agent<\/code><\/pre>\n<p>Bu komut, Puppet Agent&#8217;\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in gerekli olan t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131 ve uygulamay\u0131 y\u00fckleyecektir.<\/p>\n<h4>Puppet Agent Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Agent&#8217;\u0131n Puppet Master&#8217;\u0131 bulabilmesi i\u00e7in <code>\/etc\/puppetlabs\/puppet\/puppet.conf<\/code> dosyas\u0131nda <code>server<\/code> ayar\u0131n\u0131 yapmam\u0131z gerekir.<\/p>\n<pre><code class=\"language-bash\">sudo vi \/etc\/puppetlabs\/puppet\/puppet.conf<\/code><\/pre>\n<p><code>[main]<\/code> b\u00f6l\u00fcm\u00fcn\u00fcn alt\u0131na veya bu b\u00f6l\u00fcm yoksa olu\u015fturarak a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyin:<\/p>\n<pre><code class=\"language-ini\">[main]\ncertname = puppetagent.example.com  # Agent'\u0131n hostname'i\nserver = puppetmaster.example.com   # Puppet Master'\u0131n hostname'i<\/code><\/pre>\n<p><code>certname<\/code> de\u011feri, Agent&#8217;\u0131n Puppet Master&#8217;a kendini tan\u0131taca\u011f\u0131 isimdir. Bu genellikle Agent&#8217;\u0131n tam nitelikli alan ad\u0131 (FQDN) olmal\u0131d\u0131r. <code>server<\/code> de\u011feri ise Puppet Master sunucusunun FQDN&#8217;sidir.<\/p>\n<h4>Firewall Ayarlar\u0131<\/h4>\n<p>Puppet Agent sunucusu, Master&#8217;a ba\u011flant\u0131 ba\u015flatt\u0131\u011f\u0131 i\u00e7in gelen ba\u011flant\u0131lar\u0131 kabul etmesi gerekmez. Bu nedenle, Agent taraf\u0131nda \u00f6zel bir firewall kural\u0131 eklemeye gerek yoktur. Ancak, Agent&#8217;\u0131n Master&#8217;\u0131n 8140 portuna eri\u015febildi\u011finden emin olun.<\/p>\n<h4>SELinux Ayarlar\u0131<\/h4>\n<p>Agent taraf\u0131nda da SELinux&#8217;un etkin olmas\u0131 durumunda, Puppet&#8217;in d\u00fczg\u00fcn \u00e7al\u0131\u015fabilmesi i\u00e7in gerekli izinlerin sa\u011flanmas\u0131 \u00f6nemlidir. Genellikle <code>puppet-agent<\/code> paketi, kurulum s\u0131ras\u0131nda gerekli SELinux ba\u011flamlar\u0131n\u0131 ayarlar. Ancak, \u00f6zel durumlar veya dosya eri\u015fim sorunlar\u0131 ya\u015farsan\u0131z, hata mesajlar\u0131n\u0131 kontrol ederek uygun SELinux kurallar\u0131n\u0131 eklemeniz gerekebilir. \u00c7o\u011fu durumda, Puppet Agent varsay\u0131lan SELinux politikalar\u0131yla sorunsuz \u00e7al\u0131\u015f\u0131r.<\/p>\n<h4>Puppet Agent Servisini Ba\u015flatma ve Etkinle\u015ftirme<\/h4>\n<p>Yap\u0131land\u0131rmay\u0131 tamamlad\u0131ktan sonra, Puppet Agent servisini ba\u015flatabilir ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirebiliriz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start puppet\nsudo systemctl enable puppet<\/code><\/pre>\n<p>Servisin durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status puppet<\/code><\/pre>\n<p>Durumun &#8220;active (running)&#8221; oldu\u011funu g\u00f6rmelisiniz. Agent varsay\u0131lan olarak 30 dakikada bir Master ile ileti\u015fime ge\u00e7meye \u00e7al\u0131\u015facakt\u0131r. Ancak biz bu i\u015flemi manuel olarak tetikleyece\u011fiz.<\/p>\n<h3>Master-Agent Aras\u0131 \u0130leti\u015fim ve Sertifika \u0130mzalama<\/h3>\n<p>Puppet, Master ve Agent aras\u0131ndaki ileti\u015fimi g\u00fcvenli hale getirmek i\u00e7in SSL sertifikalar\u0131n\u0131 kullan\u0131r. Her Agent, ilk ba\u011flant\u0131s\u0131nda Master&#8217;dan bir sertifika ister ve Master bu iste\u011fi onaylay\u0131p imzalamadan \u00f6nce Agent&#8217;\u0131n kimli\u011fini do\u011frular. Bu, Master&#8217;\u0131n yaln\u0131zca yetkili Agent&#8217;larla ileti\u015fim kurmas\u0131n\u0131 sa\u011flar.<\/p>\n<h4>Agent Taraf\u0131nda Sertifika \u0130ste\u011fi G\u00f6nderme<\/h4>\n<p>Agent sunucusunda, Master&#8217;a bir sertifika iste\u011fi g\u00f6ndermek i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo \/opt\/puppetlabs\/bin\/puppet agent --test --server puppetmaster.example.com<\/code><\/pre>\n<p>Veya daha k\u0131sa haliyle:<\/p>\n<pre><code class=\"language-bash\">sudo puppet agent -t --server puppetmaster.example.com<\/code><\/pre>\n<p>Bu komut, Agent&#8217;\u0131n Master&#8217;a ba\u011flanmas\u0131n\u0131 ve bir sertifika iste\u011fi g\u00f6ndermesini sa\u011flar. Komutun \u00e7\u0131kt\u0131s\u0131nda, Agent&#8217;\u0131n sertifika iste\u011fi g\u00f6nderdi\u011fini ve Master&#8217;\u0131n imzalamas\u0131n\u0131 bekledi\u011fini belirten bir mesaj g\u00f6rmelisiniz (\u00f6rn. &#8220;Exiting; no certificate found and waitforcert is disabled&#8221;).<\/p>\n<h4>Master Taraf\u0131nda Sertifika \u0130mzalama<\/h4>\n<p>Puppet Master sunucusuna ge\u00e7in. Agent&#8217;\u0131n sertifika iste\u011fini g\u00f6rmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo \/opt\/puppetlabs\/bin\/puppet cert list<\/code><\/pre>\n<p>Bu komut, bekleyen sertifika isteklerinin bir listesini g\u00f6sterecektir. \u00c7\u0131kt\u0131da <code>puppetagent.example.com<\/code> gibi Agent&#8217;\u0131n\u0131z\u0131n hostname&#8217;ini g\u00f6rmelisiniz (\u00f6rn. &#8221;  &#8220;puppetagent.example.com&#8221; (SHA256) &#8230;&#8221;).<\/p>\n<p>Agent&#8217;\u0131n sertifikas\u0131n\u0131 imzalamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo \/opt\/puppetlabs\/bin\/puppet cert sign puppetagent.example.com<\/code><\/pre>\n<p>Sertifika ba\u015far\u0131yla imzaland\u0131\u011f\u0131nda, &#8220;Notice: Signed certificate for puppetagent.example.com&#8221; gibi bir mesaj g\u00f6rmelisiniz. T\u00fcm sertifikalar\u0131 listelemek i\u00e7in <code>puppet cert list --all<\/code> komutunu kullanabilirsiniz.<\/p>\n<h4>Agent Taraf\u0131nda Sertifika Kontrol\u00fc<\/h4>\n<p>Sertifika imzaland\u0131ktan sonra, Agent sunucusuna geri d\u00f6n\u00fcn ve sertifikay\u0131 Master&#8217;dan almak ve konfig\u00fcrasyonu uygulamak i\u00e7in <code>puppet agent<\/code> komutunu tekrar \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo puppet agent -t --server puppetmaster.example.com<\/code><\/pre>\n<p>Bu sefer, Agent Master ile g\u00fcvenli bir \u015fekilde ileti\u015fim kurabilmeli ve herhangi bir konfig\u00fcrasyon de\u011fi\u015fikli\u011fi varsa bunlar\u0131 uygulayabilmelidir. E\u011fer hen\u00fcz bir konfig\u00fcrasyon tan\u0131mlamad\u0131ysak, &#8220;Notice: Applied catalog in &#8230;s&#8221; gibi bir mesaj g\u00f6rmelisiniz, bu da Agent&#8217;\u0131n Master&#8217;dan bir katalog ald\u0131\u011f\u0131n\u0131 ve uygulad\u0131\u011f\u0131n\u0131 g\u00f6sterir (\u015fu an i\u00e7in bo\u015f bir katalog olsa bile).<\/p>\n<p>Bu ad\u0131mlarla Master ve Agent aras\u0131ndaki g\u00fcvenli ileti\u015fim kurulmu\u015f ve sertifika de\u011fi\u015fimi tamamlanm\u0131\u015ft\u0131r. Art\u0131k Agent&#8217;lar, Master&#8217;dan konfig\u00fcrasyonlar\u0131 almaya haz\u0131rd\u0131r.<\/p>\n<h3>Basit Bir Puppet Manifest Olu\u015fturma ve Uygulama<\/h3>\n<p>Puppet&#8217;in temel g\u00fcc\u00fc, sistemlerin istenen durumunu tan\u0131mlayan manifestler arac\u0131l\u0131\u011f\u0131yla konfig\u00fcrasyonlar\u0131 otomatikle\u015ftirmesidir. Bu b\u00f6l\u00fcmde, Agent sunucusunda basit bir dosya olu\u015fturmak i\u00e7in bir Puppet mod\u00fcl\u00fc olu\u015fturacak ve bunu uygulayaca\u011f\u0131z.<\/p>\n<h4>Puppet Manifest Yap\u0131s\u0131<\/h4>\n<p>Puppet Master, konfig\u00fcrasyonlar\u0131 <code>\/etc\/puppetlabs\/code\/environments\/production<\/code> dizininde tutar. Bu dizinin alt\u0131nda iki ana b\u00f6l\u00fcm vard\u0131r:<\/p>\n<ul>\n<li><code>manifests<\/code>: Ana site manifest dosyalar\u0131n\u0131 (\u00f6rn. <code>site.pp<\/code>) i\u00e7erir.<\/li>\n<li><code>modules<\/code>: Yeniden kullan\u0131labilir konfig\u00fcrasyon birimleri olan mod\u00fclleri bar\u0131nd\u0131r\u0131r.<\/li>\n<\/ul>\n<h4>Master \u00dczerinde Mod\u00fcl Olu\u015fturma<\/h4>\n<p>Agent&#8217;a bir kar\u015f\u0131lama mesaj\u0131 (MOTD &#8211; Message of the Day) dosyas\u0131 olu\u015fturacak basit bir mod\u00fcl olu\u015ftural\u0131m. Mod\u00fcl\u00fcm\u00fcz\u00fcn ad\u0131 <code>my_motd<\/code> olsun.<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/etc\/puppetlabs\/code\/environments\/production\/modules\/my_motd\/{manifests,files}<\/code><\/pre>\n<p>\u015eimdi mod\u00fcl\u00fcn manifest dosyas\u0131n\u0131 olu\u015ftural\u0131m: <code>\/etc\/puppetlabs\/code\/environments\/production\/modules\/my_motd\/manifests\/init.pp<\/code><\/p>\n<pre><code class=\"language-bash\">sudo vi \/etc\/puppetlabs\/code\/environments\/production\/modules\/my_motd\/manifests\/init.pp<\/code><\/pre>\n<p>\u0130\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibi yap\u0131n:<\/p>\n<pre><code class=\"language-puppet\">class my_motd {\n  file { '\/etc\/motd':\n    ensure  => file,\n    content => \"Bu sunucu Puppet taraf\u0131ndan y\u00f6netilmektedir. Ho\u015f geldiniz!\\n\",\n    mode    => '0644',\n    owner   => 'root',\n    group   => 'root',\n  }\n}<\/code><\/pre>\n<p>Bu Puppet kodu, <code>\/etc\/motd<\/code> yolunda bir dosya (<code>file<\/code> kayna\u011f\u0131) olu\u015fturur. <code>ensure => file<\/code> dosyan\u0131n var olmas\u0131n\u0131 sa\u011flar, <code>content<\/code> i\u00e7eri\u011fini belirler, <code>mode<\/code> dosya izinlerini ayarlar, <code>owner<\/code> ve <code>group<\/code> ise dosyan\u0131n sahibi ve grubunu belirler.<\/p>\n<h4>Site Manifest D\u00fczenleme<\/h4>\n<p>\u015eimdi bu mod\u00fcl\u00fc Agent sunucumuza uygulamak i\u00e7in <code>site.pp<\/code> dosyas\u0131n\u0131 d\u00fczenlememiz gerekiyor. Bu dosya, belirli Agent&#8217;lara veya t\u00fcm Agent&#8217;lara hangi mod\u00fcllerin veya kaynaklar\u0131n uygulanaca\u011f\u0131n\u0131 tan\u0131mlar.<\/p>\n<pre><code class=\"language-bash\">sudo vi \/etc\/puppetlabs\/code\/environments\/production\/manifests\/site.pp<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7eri\u011fini a\u015fa\u011f\u0131daki gibi yap\u0131n:<\/p>\n<pre><code class=\"language-puppet\">node 'puppetagent.example.com' {\n  class { 'my_motd': }\n}<\/code><\/pre>\n<p>Bu kod, <code>puppetagent.example.com<\/code> hostname&#8217;ine sahip olan Agent&#8217;a <code>my_motd<\/code> s\u0131n\u0131f\u0131n\u0131 uygulamas\u0131n\u0131 s\u00f6yler. E\u011fer t\u00fcm Agent&#8217;lara uygulamak isterseniz <code>node default {}<\/code> blo\u011funu kullanabilirsiniz.<\/p>\n<p><em>Not: Puppet Master&#8217;da yapt\u0131\u011f\u0131n\u0131z her de\u011fi\u015fiklikten sonra, Puppet Server&#8217;\u0131 yeniden ba\u015flatmak genellikle gerekmez, \u00e7\u00fcnk\u00fc Puppet Server de\u011fi\u015fiklikleri otomatik olarak alg\u0131lar. Ancak bazen \u00f6nbellek sorunlar\u0131 ya\u015farsan\u0131z yeniden ba\u015flatmak faydal\u0131 olabilir: <code>sudo systemctl restart puppetserver<\/code><\/em><\/p>\n<h4>Agent Taraf\u0131nda Uygulama<\/h4>\n<p>Agent sunucusuna geri d\u00f6n\u00fcn ve Master&#8217;dan yeni konfig\u00fcrasyonu almak ve uygulamak i\u00e7in <code>puppet agent<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo puppet agent -t --server puppetmaster.example.com<\/code><\/pre>\n<p>Komutun \u00e7\u0131kt\u0131s\u0131nda, Puppet&#8217;in <code>my_motd<\/code> s\u0131n\u0131f\u0131n\u0131 uygulad\u0131\u011f\u0131n\u0131 ve <code>\/etc\/motd<\/code> dosyas\u0131n\u0131 olu\u015fturdu\u011funu veya g\u00fcncelledi\u011fini g\u00f6rmelisiniz. \u00d6rne\u011fin, &#8220;Notice: \/Stage[main]\/My_motd\/File[\/etc\/motd]\/content: content changed &#8216;&#8230;&#8217; to &#8216;&#8230;'&#8221; gibi bir sat\u0131r g\u00f6rebilirsiniz.<\/p>\n<p>\u015eimdi Agent sunucusunda <code>\/etc\/motd<\/code> dosyas\u0131n\u0131n i\u00e7eri\u011fini kontrol edin:<\/p>\n<pre><code class=\"language-bash\">cat \/etc\/motd<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;Bu sunucu Puppet taraf\u0131ndan y\u00f6netilmektedir. Ho\u015f geldiniz!&#8221; mesaj\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<p>Tebrikler! Puppet Master-Agent kurulumunu ba\u015far\u0131yla tamamlad\u0131n\u0131z ve ilk konfig\u00fcrasyonunuzu uygulad\u0131n\u0131z. Puppet Agent varsay\u0131lan olarak 30 dakikada bir Master ile ileti\u015fime ge\u00e7erek konfig\u00fcrasyonu otomatik olarak kontrol edecek ve uygulayacakt\u0131r. Bu periyodu <code>\/etc\/puppetlabs\/puppet\/puppet.conf<\/code> dosyas\u0131nda <code>runinterval<\/code> ayar\u0131yla de\u011fi\u015ftirebilirsiniz.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>Puppet kurulumu ve yap\u0131land\u0131rmas\u0131 s\u0131ras\u0131nda baz\u0131 yayg\u0131n sorunlarla kar\u015f\u0131la\u015f\u0131labilir. \u0130\u015fte bunlardan baz\u0131lar\u0131 ve olas\u0131 \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4>1. Sertifika Sorunlar\u0131<\/h4>\n<ul>\n<li><strong>Sorun:<\/strong> Agent, Master&#8217;a ba\u011flanam\u0131yor ve &#8220;certificate verify failed&#8221; veya &#8220;hostname does not match the server certificate&#8221; gibi hatalar al\u0131yor.\n<ul>\n<li><strong>\u00c7\u00f6z\u00fcm:<\/strong>\n<ul>\n<li><strong>Hostname \u00c7\u00f6z\u00fcmlemesi:<\/strong> Master ve Agent&#8217;\u0131n hostname&#8217;lerinin do\u011fru bir \u015fekilde \u00e7\u00f6z\u00fcmlendi\u011finden emin olun (DNS veya <code>\/etc\/hosts<\/code> dosyas\u0131).<\/li>\n<li><strong>Zaman Senkronizasyonu:<\/strong> Master ve Agent sunucular\u0131n\u0131n zamanlar\u0131n\u0131n senkronize oldu\u011fundan emin olun (NTP kullan\u0131n). Zaman farklar\u0131 sertifika hatalar\u0131na neden olabilir.<\/li>\n<li><strong>Yanl\u0131\u015f Sertifika:<\/strong> Agent daha \u00f6nce ba\u015fka bir Master ile ileti\u015fim kurduysa veya sertifikas\u0131 bozulduysa, Agent&#8217;taki ve Master&#8217;daki eski sertifikalar\u0131 temizlemeniz gerekebilir.\n<p><strong>Agent&#8217;ta:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo rm -rf \/etc\/puppetlabs\/puppet\/ssl<\/code><\/pre>\n<p><strong>Master&#8217;da:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo puppet cert clean puppetagent.example.com<\/code><\/pre>\n<p>Daha sonra Agent&#8217;ta tekrar sertifika iste\u011fi g\u00f6nderin ve Master&#8217;da imzalay\u0131n.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>2. Firewall Engellemeleri<\/h4>\n<ul>\n<li><strong>Sorun:<\/strong> Agent, Master&#8217;a ba\u011flanam\u0131yor ve &#8220;Connection refused&#8221; veya &#8220;Connection timed out&#8221; hatalar\u0131 al\u0131yor.\n<ul>\n<li><strong>\u00c7\u00f6z\u00fcm:<\/strong>\n<ul>\n<li><strong>Master Firewall:<\/strong> Puppet Master&#8217;da 8140 TCP portunun a\u00e7\u0131k oldu\u011fundan emin olun (<code>sudo firewall-cmd --list-all<\/code>).<\/li>\n<li><strong>A\u011f Ba\u011flant\u0131s\u0131:<\/strong> Master ve Agent aras\u0131nda a\u011f ba\u011flant\u0131s\u0131 oldu\u011fundan emin olun (ping testi).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>3. Hostname \u00c7\u00f6z\u00fcmleme Sorunlar\u0131<\/h4>\n<ul>\n<li><strong>Sorun:<\/strong> Puppet Master veya Agent, di\u011fer sunucuyu hostname ile bulam\u0131yor.\n<ul>\n<li><strong>\u00c7\u00f6z\u00fcm:<\/strong>\n<ul>\n<li><strong><code>\/etc\/hosts<\/code>:<\/strong> Her iki sunucunun <code>\/etc\/hosts<\/code> dosyas\u0131n\u0131n do\u011fru IP ve hostname e\u015fle\u015fmelerini i\u00e7erdi\u011finden emin olun.<\/li>\n<li><strong>DNS:<\/strong> DNS sunucusu kullan\u0131l\u0131yorsa, A kay\u0131tlar\u0131n\u0131n do\u011fru oldu\u011fundan emin olun.<\/li>\n<li><strong><code>puppet.conf<\/code>:<\/strong> Agent&#8217;taki <code>\/etc\/puppetlabs\/puppet\/puppet.conf<\/code> dosyas\u0131ndaki <code>server<\/code> ayar\u0131n\u0131n Master&#8217;\u0131n do\u011fru FQDN&#8217;sini g\u00f6sterdi\u011finden emin olun.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>4. Java Bellek Yetersizli\u011fi (Puppet Master)<\/h4>\n<ul>\n<li><strong>Sorun:<\/strong> Puppet Server ba\u015flam\u0131yor veya s\u00fcrekli \u00e7\u00f6k\u00fcyor, loglarda &#8220;java.lang.OutOfMemoryError&#8221; hatalar\u0131 g\u00f6r\u00fcn\u00fcyor.\n<ul>\n<li><strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>\/etc\/sysconfig\/puppetserver<\/code> dosyas\u0131ndaki <code>JAVA_ARGS<\/code> ayar\u0131nda <code>-Xmx<\/code> de\u011ferini art\u0131r\u0131n (\u00f6rn. <code>2g<\/code>, <code>4g<\/code>). Yeterli RAM&#8217;e sahip oldu\u011funuzdan emin olun.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>5. Puppet Agent&#8217;\u0131n \u00c7al\u0131\u015fmamas\u0131<\/h4>\n<ul>\n<li><strong>Sorun:<\/strong> <code>puppet agent -t<\/code> komutu \u00e7al\u0131\u015fm\u0131yor veya Agent servisi ba\u015flam\u0131yor.\n<ul>\n<li><strong>\u00c7\u00f6z\u00fcm:<\/strong>\n<ul>\n<li><strong>Servis Durumu:<\/strong> <code>sudo systemctl status puppet<\/code> komutuyla Agent servisinin durumunu kontrol edin. Hata mesajlar\u0131 i\u00e7in loglar\u0131 (<code>\/var\/log\/puppetlabs\/puppet\/puppet.log<\/code>) inceleyin.<\/li>\n<li><strong><code>puppet.conf<\/code>:<\/strong> Agent&#8217;taki <code>\/etc\/puppetlabs\/puppet\/puppet.conf<\/code> dosyas\u0131n\u0131n do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olun.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>6. SELinux Engellemeleri<\/h4>\n<ul>\n<li><strong>Sorun:<\/strong> Puppet, dosya olu\u015fturma veya servislere eri\u015fim gibi i\u015flemlerde hata veriyor ve loglarda &#8220;Permission denied&#8221; veya &#8220;SELinux is preventing&#8230;&#8221; gibi mesajlar g\u00f6r\u00fcn\u00fcyor.\n<ul>\n<li><strong>\u00c7\u00f6z\u00fcm:<\/strong>\n<ul>\n<li><strong>Denetim Loglar\u0131:<\/strong> <code>sudo ausearch -c 'puppet' --raw | audit2allow -M mypuppet<\/code> komutunu kullanarak \u00f6zel SELinux kurallar\u0131 olu\u015fturmay\u0131 deneyin.<\/li>\n<li><strong>Ge\u00e7ici Devre D\u0131\u015f\u0131 B\u0131rakma:<\/strong> Sorunu izole etmek i\u00e7in <code>sudo setenforce 0<\/code> ile SELinux&#8217;u ge\u00e7ici olarak devre d\u0131\u015f\u0131 b\u0131rak\u0131p test edin. E\u011fer sorun \u00e7\u00f6z\u00fcl\u00fcrse, kal\u0131c\u0131 bir SELinux politikas\u0131 olu\u015fturman\u0131z gerekecektir.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Sorun giderme s\u00fcrecinde, Puppet Master&#8217;\u0131n <code>\/var\/log\/puppetlabs\/puppetserver\/puppetserver.log<\/code> ve Agent&#8217;\u0131n <code>\/var\/log\/puppetlabs\/puppet\/puppet.log<\/code> dosyalar\u0131n\u0131 dikkatlice incelemek, hatan\u0131n kayna\u011f\u0131n\u0131 anlamak i\u00e7in en iyi ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Puppet 4&#8217;\u00fc CentOS 7 \u00fczerinde bir Master-Agent mimarisinde kurma ve temel bir konfig\u00fcrasyonu uygulama s\u00fcrecini ad\u0131m ad\u0131m ele ald\u0131k. Ba\u015flang\u0131\u00e7ta \u00f6n gereksinimleri haz\u0131rlad\u0131k, ard\u0131ndan Puppet Master ve Puppet Agent sunucular\u0131n\u0131 ayr\u0131 ayr\u0131 kurduk ve yap\u0131land\u0131rd\u0131k. En kritik ad\u0131mlardan biri olan Master-Agent aras\u0131ndaki g\u00fcvenli ileti\u015fimi SSL sertifikalar\u0131 arac\u0131l\u0131\u011f\u0131yla kurduk ve Agent&#8217;\u0131n sertifika iste\u011fini Master \u00fczerinde imzalad\u0131k. Son olarak, basit bir Puppet mod\u00fcl\u00fc olu\u015fturarak Agent&#8217;\u0131n <code>\/etc\/motd<\/code> dosyas\u0131n\u0131 yap\u0131land\u0131rmay\u0131 ba\u015fard\u0131k ve konfig\u00fcrasyonun ba\u015far\u0131yla uyguland\u0131\u011f\u0131n\u0131 do\u011frulad\u0131k.<\/p>\n<p>Puppet, tekrarlayan g\u00f6revleri otomatikle\u015ftirmek, sistem yap\u0131land\u0131rmalar\u0131n\u0131 standartla\u015ft\u0131rmak ve altyap\u0131y\u0131 kod olarak y\u00f6netmek i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Bu kurulum, Puppet ile otomasyon yolculu\u011funuzun sadece ba\u015flang\u0131c\u0131d\u0131r. Elde etti\u011finiz bu temel bilgi birikimiyle, daha karma\u015f\u0131k konfig\u00fcrasyonlar\u0131 y\u00f6netmeye ba\u015flayabilir ve Puppet&#8217;in sundu\u011fu geni\u015f \u00f6zellik yelpazesini ke\u015ffedebilirsiniz.<\/p>\n<p>\u0130leri d\u00fczey Puppet kullan\u0131m\u0131 i\u00e7in ke\u015ffedebilece\u011finiz baz\u0131 konular \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Hiera:<\/strong> Konfig\u00fcrasyon verilerini koddan ay\u0131rarak daha esnek ve y\u00f6netilebilir bir yap\u0131 sa\u011flar. Farkl\u0131 ortamlara veya d\u00fc\u011f\u00fcmlere \u00f6zg\u00fc de\u011ferleri kolayca y\u00f6netmenize olanak tan\u0131r.<\/li>\n<li><strong>Roles &#038; Profiles:<\/strong> Puppet kodunuzu daha mod\u00fcler, okunabilir ve s\u00fcrd\u00fcr\u00fclebilir hale getiren yayg\u0131n olarak kullan\u0131lan bir tasar\u0131m modelidir.<\/li>\n<li><strong>Control Repository:<\/strong> T\u00fcm Puppet kodunuzu (mod\u00fcller, manifestler, Hiera verileri) bir s\u00fcr\u00fcm kontrol sisteminde (\u00f6rn. Git) merkezi olarak y\u00f6netmenizi sa\u011flar. Bu, ekip \u00e7al\u0131\u015fmas\u0131n\u0131 kolayla\u015ft\u0131r\u0131r ve de\u011fi\u015fiklik takibini m\u00fcmk\u00fcn k\u0131lar.<\/li>\n<li><strong>Puppet Forge:<\/strong> Topluluk taraf\u0131ndan olu\u015fturulmu\u015f binlerce haz\u0131r mod\u00fcl\u00fc i\u00e7eren bir depodur. Bu mod\u00fcller, yayg\u0131n yaz\u0131l\u0131mlar\u0131n (Apache, Nginx, MySQL vb.) kurulumunu ve yap\u0131land\u0131rmas\u0131n\u0131 h\u0131zland\u0131r\u0131r.<\/li>\n<li><strong>Puppet Enterprise:<\/strong> Daha b\u00fcy\u00fck ve kurumsal ortamlar i\u00e7in GUI, raporlama, orkestrasyon ve geli\u015fmi\u015f hata ay\u0131klama \u00f6zellikleri sunan ticari bir Puppet s\u00fcr\u00fcm\u00fcd\u00fcr.<\/li>\n<\/ul>\n<p>Puppet&#8217;i etkin bir \u015fekilde kullanarak, IT altyap\u0131n\u0131z\u0131n y\u00f6netimini basitle\u015ftirebilir, hatalar\u0131 azaltabilir ve i\u015f s\u00fcre\u00e7lerinizi h\u0131zland\u0131rabilirsiniz. Bu rehberin, Puppet d\u00fcnyas\u0131na sa\u011flam bir ad\u0131m atman\u0131za yard\u0131mc\u0131 oldu\u011funu umuyoruz. Unutmay\u0131n, pratik yapmak ve belgeleri incelemek, Puppet yeteneklerinizi geli\u015ftirmenin anahtar\u0131d\u0131r.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Puppet 4&#8217;\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k IT altyap\u0131lar\u0131nda, sunucular\u0131n ve di\u011fer","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":[241],"tags":[],"class_list":{"0":"post-36920","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","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>Puppet 4&#039;\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber - 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\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Puppet 4&#039;\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber\" \/>\n<meta property=\"og:description\" content=\"Puppet 4&#039;\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k IT altyap\u0131lar\u0131nda, sunucular\u0131n ve di\u011fer\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-24T20:40:51+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=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Puppet 4&#8217;\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber\",\"datePublished\":\"2025-12-24T20:40:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/\"},\"wordCount\":3524,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/\",\"name\":\"Puppet 4'\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-24T20:40:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Puppet 4&#8217;\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber\"}]},{\"@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":"Puppet 4'\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber - 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\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Puppet 4'\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber","og_description":"Puppet 4'\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k IT altyap\u0131lar\u0131nda, sunucular\u0131n ve di\u011fer","og_url":"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-24T20:40:51+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Puppet 4&#8217;\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber","datePublished":"2025-12-24T20:40:51+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/"},"wordCount":3524,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/","name":"Puppet 4'\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-24T20:40:51+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/puppet-4u-centos-7-uzerinde-master-agent-kurulumu-adim-adim-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Puppet 4&#8217;\u00fc CentOS 7 \u00dczerinde Master-Agent Kurulumu: Ad\u0131m Ad\u0131m Rehber"}]},{"@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\/36920","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=36920"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36920\/revisions"}],"predecessor-version":[{"id":36921,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36920\/revisions\/36921"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=36920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=36920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=36920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}