{"id":39434,"date":"2026-02-21T12:40:49","date_gmt":"2026-02-21T09:40:49","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=39434"},"modified":"2026-02-21T12:40:49","modified_gmt":"2026-02-21T09:40:49","slug":"saltstack-altyapisi-salt-master-kurulumu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/","title":{"rendered":"SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu"},"content":{"rendered":"<p><body><\/p>\n<h2>SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu<\/h2>\n<p>SaltStack, modern IT altyap\u0131lar\u0131n\u0131n y\u00f6netimi i\u00e7in tasarlanm\u0131\u015f g\u00fc\u00e7l\u00fc, a\u00e7\u0131k kaynakl\u0131 bir yap\u0131land\u0131rma y\u00f6netimi ve uzaktan y\u00fcr\u00fctme sistemidir. B\u00fcy\u00fck \u00f6l\u00e7ekli, karma\u015f\u0131k ve dinamik sistemleri otomatikle\u015ftirmek, yap\u0131land\u0131rmak ve y\u00f6netmek i\u00e7in geli\u015ftirilmi\u015ftir. Bu makalede, SaltStack altyap\u0131s\u0131n\u0131n kalbi olan Salt Master bile\u015feninin kurulumunu, yap\u0131land\u0131rmas\u0131n\u0131 ve temel g\u00fcvenlik ad\u0131mlar\u0131n\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<h3>Giri\u015f: SaltStack Nedir ve Neden Kullan\u0131l\u0131r?<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen ve b\u00fcy\u00fcyen dijital d\u00fcnyas\u0131nda, sunucu ve servis y\u00f6netimini manuel olarak ger\u00e7ekle\u015ftirmek hem zaman al\u0131c\u0131 hem de hataya a\u00e7\u0131k bir s\u00fcre\u00e7tir. Bu noktada, otomasyon ara\u00e7lar\u0131 devreye girer. SaltStack, bu otomasyon ara\u00e7lar\u0131ndan biridir ve \u00f6zellikle y\u00fcksek performansl\u0131 uzaktan y\u00fcr\u00fctme (remote execution) yetenekleri ve esnek yap\u0131land\u0131rma y\u00f6netimi (configuration management) \u00f6zellikleri ile \u00f6ne \u00e7\u0131kar.<\/p>\n<p>SaltStack, &#8220;Master-Minion&#8221; mimarisine dayal\u0131 \u00e7al\u0131\u015f\u0131r. Merkezi bir &#8220;Salt Master&#8221; sunucusu, a\u011fdaki di\u011fer sunucular olan &#8220;Salt Minion&#8221;lar\u0131 y\u00f6netir. Master, Minion&#8217;lara komutlar g\u00f6nderir, yap\u0131land\u0131rmalar\u0131 uygular ve sistem durumlar\u0131n\u0131 denetler. Bu ileti\u015fim, h\u0131zl\u0131 ve g\u00fcvenli bir mesajla\u015fma katman\u0131 olan ZeroMQ \u00fczerinden ger\u00e7ekle\u015fir. Yap\u0131land\u0131rmalar genellikle YAML format\u0131nda tan\u0131mlanan &#8220;State&#8221; dosyalar\u0131 ve Jinja \u015fablonlama motoru kullan\u0131larak yaz\u0131l\u0131r, bu da yap\u0131land\u0131rmalar\u0131n okunabilirli\u011fini ve esnekli\u011fini art\u0131r\u0131r.<\/p>\n<p>SaltStack&#8217;in temel kullan\u0131m alanlar\u0131 \u015funlard\u0131r:<br \/>\n*   <strong>Yap\u0131land\u0131rma Y\u00f6netimi:<\/strong> Sunucular\u0131n, uygulamalar\u0131n ve servislerin belirli bir duruma (state) getirilmesini ve bu durumda kalmas\u0131n\u0131 sa\u011flar. \u00d6rne\u011fin, bir web sunucusunun Apache kurulu, belirli bir versiyonda ve belirli yap\u0131land\u0131rma dosyalar\u0131na sahip olmas\u0131n\u0131 garanti edebilirsiniz.<br \/>\n*   <strong>Uzaktan Y\u00fcr\u00fctme:<\/strong> Binlerce sunucuda ayn\u0131 anda veya belirli gruplarda an\u0131nda komutlar \u00e7al\u0131\u015ft\u0131rma yetene\u011fi sunar. Bu, yama y\u00f6netimi, yaz\u0131l\u0131m da\u011f\u0131t\u0131m\u0131 veya anl\u0131k sorun giderme i\u00e7in kritik \u00f6neme sahiptir.<br \/>\n*   <strong>Orkestrasyon:<\/strong> Karma\u015f\u0131k i\u015f ak\u0131\u015flar\u0131n\u0131 ve \u00e7ok ad\u0131ml\u0131 da\u011f\u0131t\u0131mlar\u0131 y\u00f6netir. Birden fazla sunucu veya servis aras\u0131nda ba\u011f\u0131ml\u0131l\u0131klar\u0131 olan i\u015flemleri s\u0131ral\u0131 bir \u015fekilde y\u00fcr\u00fctebilir.<br \/>\n*   <strong>Bulut Provizyonlama:<\/strong> Salt Cloud mod\u00fcl\u00fc ile \u00e7e\u015fitli bulut sa\u011flay\u0131c\u0131lar\u0131 (AWS, Azure, Google Cloud vb.) \u00fczerinde sanal makinelerin olu\u015fturulmas\u0131, yap\u0131land\u0131r\u0131lmas\u0131 ve y\u00f6netilmesi otomatize edilebilir.<\/p>\n<p>Di\u011fer pop\u00fcler otomasyon ara\u00e7lar\u0131 olan Ansible, Puppet ve Chef ile kar\u015f\u0131la\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda, SaltStack \u00f6zellikle h\u0131z ve \u00f6l\u00e7eklenebilirlik a\u00e7\u0131s\u0131ndan avantajlar sunar. ZeroMQ tabanl\u0131 ileti\u015fim ve event-driven mimarisi sayesinde, \u00e7ok say\u0131da minion ile bile h\u0131zl\u0131 yan\u0131t s\u00fcreleri elde edilebilir. Ayr\u0131ca, SaltStack&#8217;in mod\u00fcler yap\u0131s\u0131, farkl\u0131 ihtiya\u00e7lara g\u00f6re kolayca geni\u015fletilebilmesini sa\u011flar.<\/p>\n<h3>SaltStack Mimarisi: Temel Bile\u015fenler<\/h3>\n<p>SaltStack&#8217;in etkin bir \u015fekilde kullan\u0131labilmesi i\u00e7in temel mimari bile\u015fenlerini anlamak \u00f6nemlidir. Bu bile\u015fenler, sistemin nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve birbiriyle nas\u0131l etkile\u015fim kurdu\u011funu g\u00f6sterir.<\/p>\n<h4>Salt Master<\/h4>\n<p>Salt Master, SaltStack altyap\u0131s\u0131n\u0131n merkezi kontrol noktas\u0131d\u0131r. T\u00fcm yap\u0131land\u0131rma dosyalar\u0131 (states, pillars), mod\u00fcller ve otomasyon mant\u0131\u011f\u0131 Master \u00fczerinde bulunur. Minion&#8217;lardan gelen verileri al\u0131r, komutlar\u0131 i\u015fler ve Minion&#8217;lara g\u00f6nderilecek talimatlar\u0131 belirler. Bir a\u011fda genellikle tek bir Master sunucusu bulunur, ancak y\u00fcksek kullan\u0131labilirlik i\u00e7in birden fazla Master da yap\u0131land\u0131r\u0131labilir (Active\/Passive veya Active\/Active, Syndic ile). Master, Minion&#8217;larla ileti\u015fim kurmak i\u00e7in belirli TCP portlar\u0131n\u0131 (varsay\u0131lan olarak 4505 ve 4506) kullan\u0131r.<\/p>\n<h4>Salt Minion<\/h4>\n<p>Salt Minion, Master taraf\u0131ndan y\u00f6netilen her bir sunucu veya sanal makine \u00fczerinde \u00e7al\u0131\u015fan ajand\u0131r. Master&#8217;dan gelen komutlar\u0131 dinler, yap\u0131land\u0131rmalar\u0131 uygular ve sonu\u00e7lar\u0131 Master&#8217;a geri g\u00f6nderir. Her Minion&#8217;un Master ile g\u00fcvenli bir \u015fekilde ileti\u015fim kurabilmesi i\u00e7in bir kimlik do\u011frulama anahtar\u0131na (key) sahip olmas\u0131 gerekir. Bu anahtar, Master taraf\u0131ndan kabul edildi\u011finde Minion, Master&#8217;\u0131n komutlar\u0131n\u0131 almaya ba\u015flar. Minion&#8217;lar, farkl\u0131 i\u015fletim sistemlerinde (Linux, Windows, macOS) \u00e7al\u0131\u015fabilir.<\/p>\n<h4>Salt Key<\/h4>\n<p>Salt Key, Master ile Minion aras\u0131ndaki g\u00fcvenli ileti\u015fimi sa\u011flayan RSA anahtar \u00e7iftlerini y\u00f6netmek i\u00e7in kullan\u0131lan bir mekanizmad\u0131r. Bir Minion ilk kez Master&#8217;a ba\u011flanmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131nda, kendi genel anahtar\u0131n\u0131 Master&#8217;a g\u00f6nderir. Master y\u00f6neticisi, bu anahtar\u0131 <code>salt-key<\/code> komutu ile kabul etmelidir. Anahtar kabul edildikten sonra, Master ve Minion aras\u0131ndaki t\u00fcm ileti\u015fim \u015fifreli ve g\u00fcvenli hale gelir. Bu, yetkisiz Minion&#8217;lar\u0131n sisteme ba\u011flanmas\u0131n\u0131 engeller ve g\u00fcvenlik sa\u011flar.<\/p>\n<h4>Di\u011fer Bile\u015fenler (K\u0131sa Bir Bak\u0131\u015f)<\/h4>\n<p>*   <strong>Salt Proxy Minion:<\/strong> Geleneksel Minion kurulamayan (\u00f6rne\u011fin a\u011f cihazlar\u0131, IoT cihazlar\u0131) veya API \u00fczerinden y\u00f6netilen cihazlar i\u00e7in kullan\u0131l\u0131r. Minion gibi davran\u0131r ancak do\u011frudan cihaza de\u011fil, API&#8217;si arac\u0131l\u0131\u011f\u0131yla cihaza ba\u011flan\u0131r.<br \/>\n*   <strong>Salt Syndic:<\/strong> \u00c7oklu Master ortamlar\u0131nda veya b\u00fcy\u00fck \u00f6l\u00e7ekli hiyerar\u015fik yap\u0131larda kullan\u0131l\u0131r. Bir &#8220;Master of Masters&#8221; gibi davranarak alt Master&#8217;lar\u0131 y\u00f6netir ve komutlar\u0131 da\u011f\u0131t\u0131r.<br \/>\n*   <strong>ZeroMQ ve MSGPack:<\/strong> SaltStack&#8217;in y\u00fcksek performansl\u0131 ileti\u015fim katman\u0131n\u0131 olu\u015fturan temel teknolojilerdir. ZeroMQ, h\u0131zl\u0131, asenkron mesajla\u015fma sa\u011flarken, MSGPack veri serile\u015ftirme i\u00e7in kullan\u0131l\u0131r ve JSON&#8217;dan daha kompakt ve h\u0131zl\u0131d\u0131r.<\/p>\n<h3>Salt Master Kurulum \u00d6ncesi Haz\u0131rl\u0131klar<\/h3>\n<p>Salt Master kurulumuna ba\u015flamadan \u00f6nce, sorunsuz bir kurulum ve kararl\u0131 bir \u00e7al\u0131\u015fma ortam\u0131 sa\u011flamak i\u00e7in baz\u0131 \u00f6n haz\u0131rl\u0131klar yapmak \u00f6nemlidir. Bu ad\u0131mlar, potansiyel sorunlar\u0131 \u00f6nlemeye yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h4>Sistem Gereksinimleri<\/h4>\n<p>Salt Master&#8217;\u0131n \u00e7al\u0131\u015faca\u011f\u0131 sunucunun donan\u0131m gereksinimleri, y\u00f6netilecek Minion say\u0131s\u0131 ve y\u00fcr\u00fct\u00fclecek g\u00f6revlerin karma\u015f\u0131kl\u0131\u011f\u0131na ba\u011fl\u0131d\u0131r.<br \/>\n*   <strong>\u0130\u015fletim Sistemi:<\/strong> \u00c7o\u011fu Linux da\u011f\u0131t\u0131m\u0131 desteklenir (Ubuntu, Debian, CentOS, RHEL, Fedora, OpenSUSE). SaltStack, Windows ve macOS \u00fczerinde de \u00e7al\u0131\u015fabilir ancak genellikle Linux sunucular tercih edilir. Bu makalede Linux kurulumlar\u0131na odaklanaca\u011f\u0131z.<br \/>\n*   <strong>CPU:<\/strong> K\u00fc\u00e7\u00fck ortamlar i\u00e7in 1-2 \u00e7ekirdek yeterli olabilirken, y\u00fczlerce veya binlerce Minion y\u00f6netilecekse 4-8 veya daha fazla \u00e7ekirdek gerekebilir.<br \/>\n*   <strong>RAM:<\/strong> Temel bir kurulum i\u00e7in 2GB RAM yeterli olabilir. Ancak, Minion say\u0131s\u0131 artt\u0131k\u00e7a, karma\u015f\u0131k state&#8217;ler \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131k\u00e7a veya Salt API gibi ek bile\u015fenler kullan\u0131ld\u0131k\u00e7a RAM ihtiyac\u0131 4GB, 8GB veya daha fazlas\u0131na \u00e7\u0131kabilir.<br \/>\n*   <strong>Disk Alan\u0131:<\/strong> SaltStack&#8217;in kendisi \u00e7ok fazla disk alan\u0131 kaplamaz. Ancak, log dosyalar\u0131, state dosyalar\u0131, pillar verileri ve \u00f6zellikle Minion&#8217;lardan gelen verilerin depolanmas\u0131 i\u00e7in yeterli alan ayr\u0131lmal\u0131d\u0131r. Minimum 20-40GB \u00f6nerilir.<\/p>\n<h4>A\u011f Gereksinimleri<\/h4>\n<p>Salt Master ve Minion&#8217;lar aras\u0131ndaki ileti\u015fim belirli portlar \u00fczerinden ger\u00e7ekle\u015fir. Bu portlar\u0131n g\u00fcvenlik duvar\u0131nda a\u00e7\u0131k olmas\u0131 ve eri\u015filebilir olmas\u0131 kritik \u00f6neme sahiptir.<br \/>\n*   <strong>TCP 4505 (publish_port):<\/strong> Salt Master, Minion&#8217;lara komutlar\u0131 ve olaylar\u0131 bu port \u00fczerinden yay\u0131nlar.<br \/>\n*   <strong>TCP 4506 (ret_port):<\/strong> Minion&#8217;lar, Master&#8217;a komut sonu\u00e7lar\u0131n\u0131 ve d\u00f6n\u00fc\u015f verilerini bu port \u00fczerinden g\u00f6nderir.<br \/>\n*   Bu portlar\u0131n Master sunucusunda dinleniyor olmas\u0131 ve Minion&#8217;lar\u0131n bu portlara eri\u015febiliyor olmas\u0131 gerekir.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Salt Master sunucusunda \u00e7al\u0131\u015fan g\u00fcvenlik duvar\u0131 (\u00f6rn. <code>ufw<\/code> veya <code>firewalld<\/code>), yukar\u0131da belirtilen 4505 ve 4506 numaral\u0131 TCP portlar\u0131na gelen ba\u011flant\u0131lara izin verecek \u015fekilde yap\u0131land\u0131r\u0131lmal\u0131d\u0131r.<br \/>\n*   <strong>Ubuntu\/Debian (UFW):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 4505\/tcp\n    sudo ufw allow 4506\/tcp\n    sudo ufw enable\n    sudo ufw status<\/code><\/pre>\n<p>*   <strong>CentOS\/RHEL (firewalld):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo firewall-cmd --zone=public --add-port=4505\/tcp --permanent\n    sudo firewall-cmd --zone=public --add-port=4506\/tcp --permanent\n    sudo firewall-cmd --reload\n    sudo firewall-cmd --list-all<\/code><\/pre>\n<h4>DNS ve Hostname Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Salt Master ve Minion&#8217;lar aras\u0131nda do\u011fru ileti\u015fimi sa\u011flamak i\u00e7in DNS \u00e7\u00f6z\u00fcn\u00fcrl\u00fc\u011f\u00fc veya <code>\/etc\/hosts<\/code> dosyas\u0131 yap\u0131land\u0131rmas\u0131 \u00f6nemlidir.<br \/>\n*   Master&#8217;\u0131n hostname&#8217;i do\u011fru bir \u015fekilde ayarlanmal\u0131 ve Minion&#8217;lar taraf\u0131ndan \u00e7\u00f6z\u00fcmlenebilir olmal\u0131d\u0131r.<br \/>\n*   Minion&#8217;lar, Master&#8217;\u0131n IP adresini veya hostname&#8217;ini bilmelidir. Genellikle Minion&#8217;lar\u0131n yap\u0131land\u0131rma dosyas\u0131nda ( <code>\/etc\/salt\/minion<\/code> ) <code>master:<\/code> parametresi ile Master&#8217;\u0131n hostname&#8217;i veya IP adresi belirtilir. DNS kayd\u0131 kullanmak, IP de\u011fi\u015fikliklerinde esneklik sa\u011flar.<\/p>\n<h3>Salt Master Kurulum Ad\u0131mlar\u0131 (Linux Da\u011f\u0131t\u0131mlar\u0131na G\u00f6re)<\/h3>\n<p>Salt Master&#8217;\u0131 kurman\u0131n en \u00f6nerilen yolu, SaltStack taraf\u0131ndan sa\u011flanan resmi paket depolar\u0131n\u0131 kullanmakt\u0131r. Bu, en g\u00fcncel ve kararl\u0131 s\u00fcr\u00fcmlere eri\u015fimi sa\u011flar.<\/p>\n<h4>Ubuntu\/Debian \u00dczerine Kurulum<\/h4>\n<p>Ubuntu veya Debian tabanl\u0131 bir sistemde Salt Master kurulumu a\u015fa\u011f\u0131daki ad\u0131mlarla ger\u00e7ekle\u015ftirilir:<\/p>\n<p>1.  <strong>GPG Anahtar\u0131n\u0131 Ekleme:<\/strong> SaltStack paketlerinin g\u00fcvenilirli\u011fini do\u011frulamak i\u00e7in GPG anahtar\u0131n\u0131 sisteminize ekleyin.<\/p>\n<pre><code class=\"language-bash\">sudo apt update\n    sudo apt install -y wget apt-transport-https gnupg2\n    wget -O - https:\/\/repo.saltproject.io\/py3\/ubuntu\/22.04\/amd64\/archive\/2023.7.2\/SALTSTACK-GPG-KEY.pub | sudo gpg --dearmor -o \/usr\/share\/keyrings\/salt-archive-keyring.gpg<\/code><\/pre>\n<p>    <em>Not: Yukar\u0131daki URL&#8217;deki <code>22.04<\/code> Ubuntu s\u00fcr\u00fcm\u00fcn\u00fcze ve <code>2023.7.2<\/code> SaltStack s\u00fcr\u00fcm\u00fcne g\u00f6re de\u011fi\u015febilir. En g\u00fcncel URL&#8217;yi SaltStack&#8217;in resmi dok\u00fcmantasyonundan kontrol etmeniz \u00f6nerilir.<\/em><\/p>\n<p>2.  <strong>SaltStack Deposunu Ekleme:<\/strong> Sisteminizin paket y\u00f6neticisinin SaltStack depolar\u0131n\u0131 bilmesini sa\u011flay\u0131n.<\/p>\n<pre><code class=\"language-bash\">echo \"deb [signed-by=\/usr\/share\/keyrings\/salt-archive-keyring.gpg arch=amd64] https:\/\/repo.saltproject.io\/py3\/ubuntu\/22.04\/amd64\/archive\/2023.7.2 jammy main\" | sudo tee \/etc\/apt\/sources.list.d\/salt.list<\/code><\/pre>\n<p>    <em>Not: <code>jammy<\/code> (Ubuntu 22.04) ifadesini kendi Ubuntu s\u00fcr\u00fcm\u00fcn\u00fcz\u00fcn kod ad\u0131yla de\u011fi\u015ftirin (\u00f6rn. <code>focal<\/code> for 20.04, <code>bionic<\/code> for 18.04).<\/em><\/p>\n<p>3.  <strong>Paket Listesini G\u00fcncelleme:<\/strong> Yeni depoyu ekledikten sonra paket listesini g\u00fcncelleyin.<\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<p>4.  <strong><code>salt-master<\/code> Paketini Y\u00fckleme:<\/strong> Salt Master paketini ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00fckleyin.<\/p>\n<pre><code class=\"language-bash\">sudo apt install -y salt-master<\/code><\/pre>\n<p>5.  <strong>Servisi Ba\u015flatma ve Etkinle\u015ftirme:<\/strong> Salt Master servisini ba\u015flat\u0131n ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirin.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start salt-master\n    sudo systemctl enable salt-master\n    sudo systemctl status salt-master<\/code><\/pre>\n<p>    <code>systemctl status salt-master<\/code> komutu, servisin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 (active (running)) g\u00f6stermelidir.<\/p>\n<h4>CentOS\/RHEL \u00dczerine Kurulum<\/h4>\n<p>CentOS veya RHEL tabanl\u0131 bir sistemde Salt Master kurulumu a\u015fa\u011f\u0131daki ad\u0131mlarla ger\u00e7ekle\u015ftirilir:<\/p>\n<p>1.  <strong>EPEL Deposunu Etkinle\u015ftirme (Gerekliyse):<\/strong> Baz\u0131 SaltStack ba\u011f\u0131ml\u0131l\u0131klar\u0131 EPEL (Extra Packages for Enterprise Linux) deposunda bulunabilir. E\u011fer sisteminizde etkin de\u011filse, etkinle\u015ftirin.<\/p>\n<pre><code class=\"language-bash\">sudo dnf install -y epel-release # CentOS 8 \/ RHEL 8+\n    # sudo yum install -y epel-release # CentOS 7 \/ RHEL 7<\/code><\/pre>\n<p>2.  <strong>SaltStack Deposunu Ekleme:<\/strong> SaltStack deposu i\u00e7in bir <code>.repo<\/code> dosyas\u0131 olu\u015fturun.<\/p>\n<pre><code class=\"language-bash\">sudo dnf install -y https:\/\/repo.saltproject.io\/py3\/redhat\/salt-py3-repo-latest.el8.noarch.rpm\n    # Veya spesifik bir s\u00fcr\u00fcm i\u00e7in:\n    # sudo dnf install -y https:\/\/repo.saltproject.io\/py3\/redhat\/salt-py3-repo-2023.7.2.el8.noarch.rpm<\/code><\/pre>\n<p>    <em>Not: Yukar\u0131daki URL&#8217;deki <code>el8<\/code> ifadesi RHEL\/CentOS 8 i\u00e7indir. Kendi i\u015fletim sistemi s\u00fcr\u00fcm\u00fcn\u00fcze g\u00f6re <code>el7<\/code> veya <code>el9<\/code> olarak de\u011fi\u015ftirmeniz gerekebilir. En g\u00fcncel URL&#8217;yi SaltStack&#8217;in resmi dok\u00fcmantasyonundan kontrol etmeniz \u00f6nerilir.<\/em><\/p>\n<p>3.  <strong><code>salt-master<\/code> Paketini Y\u00fckleme:<\/strong> Salt Master paketini ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00fckleyin.<\/p>\n<pre><code class=\"language-bash\">sudo dnf install -y salt-master # CentOS 8 \/ RHEL 8+\n    # sudo yum install -y salt-master # CentOS 7 \/ RHEL 7<\/code><\/pre>\n<p>4.  <strong>Servisi Ba\u015flatma ve Etkinle\u015ftirme:<\/strong> Salt Master servisini ba\u015flat\u0131n ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirin.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start salt-master\n    sudo systemctl enable salt-master\n    sudo systemctl status salt-master<\/code><\/pre>\n<p>    <code>systemctl status salt-master<\/code> komutu, servisin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 (active (running)) g\u00f6stermelidir.<\/p>\n<h3>Salt Master Temel Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Salt Master kurulumundan sonra, varsay\u0131lan yap\u0131land\u0131rma genellikle \u00e7o\u011fu senaryo i\u00e7in yeterli olsa da, baz\u0131 temel ayarlar\u0131 \u00f6zelle\u015ftirmek isteyebilirsiniz. Salt Master&#8217;\u0131n ana yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/salt\/master<\/code> dizinindedir.<\/p>\n<p>Bu dosya, YAML format\u0131nda d\u00fczenlenmi\u015f bir\u00e7ok parametre i\u00e7erir. \u0130\u015fte en s\u0131k kullan\u0131lan ve \u00f6nemli olanlardan baz\u0131lar\u0131:<\/p>\n<p>*   <strong><code>interface<\/code>:<\/strong> Master&#8217;\u0131n hangi a\u011f aray\u00fcz\u00fcnde dinleyece\u011fini belirtir. Varsay\u0131lan olarak t\u00fcm aray\u00fczlerde dinler (<code>0.0.0.0<\/code>). E\u011fer Master&#8217;\u0131n belirli bir IP adresinde dinlemesini istiyorsan\u0131z, buraya o IP adresini yazabilirsiniz.<\/p>\n<pre><code class=\"language-yaml\">interface: 192.168.1.100<\/code><\/pre>\n<p>*   <strong><code>publish_port<\/code> ve <code>ret_port<\/code>:<\/strong> Master&#8217;\u0131n Minion&#8217;larla ileti\u015fim kurmak i\u00e7in kulland\u0131\u011f\u0131 portlard\u0131r. Varsay\u0131lan de\u011ferler s\u0131ras\u0131yla 4505 ve 4506&#8217;d\u0131r. G\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131zla tutarl\u0131 olmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-yaml\">publish_port: 4505\n    ret_port: 4506<\/code><\/pre>\n<p>*   <strong><code>file_roots<\/code>:<\/strong> Salt State dosyalar\u0131n\u0131n (SLS dosyalar\u0131) ve di\u011fer Salt mod\u00fcllerinin depoland\u0131\u011f\u0131 dizinleri belirtir. Bu, SaltStack&#8217;in yap\u0131land\u0131rma y\u00f6netimi i\u00e7in kulland\u0131\u011f\u0131 temel dosya sistemidir. Genellikle <code>\/srv\/salt<\/code> dizini kullan\u0131l\u0131r. Farkl\u0131 ortamlar (dev, test, prod) veya projeler i\u00e7in farkl\u0131 k\u00f6k dizinler tan\u0131mlanabilir.<\/p>\n<pre><code class=\"language-yaml\">file_roots:\n      base:\n        - \/srv\/salt\n      dev:\n        - \/srv\/salt\/dev<\/code><\/pre>\n<p>    Burada <code>base<\/code> varsay\u0131lan ortamd\u0131r. Minion&#8217;lar varsay\u0131lan olarak <code>base<\/code> ortam\u0131ndaki state&#8217;leri arar.<\/p>\n<p>*   <strong><code>pillar_roots<\/code>:<\/strong> Hassas verilerin (parolalar, API anahtarlar\u0131, \u00f6zel yap\u0131land\u0131rma de\u011ferleri) depoland\u0131\u011f\u0131 dizinleri belirtir. Pillar verileri, Minion&#8217;lara \u00f6zel olarak \u015fifrelenir ve yaln\u0131zca o Minion&#8217;un eri\u015fimine izin verilir. Bu, g\u00fcvenli\u011fi art\u0131r\u0131r. Genellikle <code>\/srv\/pillar<\/code> dizini kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-yaml\">pillar_roots:\n      base:\n        - \/srv\/pillar<\/code><\/pre>\n<p>*   <strong><code>log_level<\/code> ve <code>log_file<\/code>:<\/strong> G\u00fcnl\u00fckleme seviyesini ve g\u00fcnl\u00fck dosyas\u0131n\u0131n konumunu ayarlar. Hata ay\u0131klama veya sorun giderme i\u00e7in \u00f6nemlidir. Olas\u0131 seviyeler: <code>debug<\/code>, <code>info<\/code>, <code>warning<\/code>, <code>error<\/code>, <code>critical<\/code>. Varsay\u0131lan olarak <code>warning<\/code> veya <code>info<\/code> olabilir.<\/p>\n<pre><code class=\"language-yaml\">log_level: info\n    log_file: \/var\/log\/salt\/master<\/code><\/pre>\n<p>*   <strong><code>auto_accept<\/code>:<\/strong> Yeni Minion anahtarlar\u0131n\u0131n otomatik olarak kabul edilip edilmeyece\u011fini belirler. Varsay\u0131lan olarak <code>False<\/code>&#8216;tur ve g\u00fcvenlik nedeniyle <code>False<\/code> olarak b\u0131rak\u0131lmas\u0131 \u015fiddetle tavsiye edilir. <code>True<\/code> olarak ayarlanmas\u0131, herhangi bir Minion&#8217;un Master&#8217;a ba\u011flanmas\u0131na izin verir ki bu b\u00fcy\u00fck bir g\u00fcvenlik riski olu\u015fturur. Anahtarlar\u0131n manuel olarak kabul edilmesi, Minion kimlik do\u011frulamas\u0131n\u0131n \u00f6nemli bir par\u00e7as\u0131d\u0131r.<\/p>\n<pre><code class=\"language-yaml\">auto_accept: False<\/code><\/pre>\n<p>Yap\u0131land\u0131rma dosyas\u0131nda herhangi bir de\u011fi\u015fiklik yapt\u0131ktan sonra, Salt Master servisini yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart salt-master<\/code><\/pre>\n<h3>Salt Master G\u00fcvenli\u011fi<\/h3>\n<p>Salt Master, t\u00fcm altyap\u0131n\u0131z\u0131n kontrol noktas\u0131nda oldu\u011fu i\u00e7in g\u00fcvenli\u011fi son derece \u00f6nemlidir. Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir Master, t\u00fcm Minion&#8217;lar\u0131 tehlikeye atabilir.<\/p>\n<h4>Kimlik Do\u011frulama (Minion Key Kabul\u00fc)<\/h4>\n<p>Daha \u00f6nce belirtildi\u011fi gibi, <code>auto_accept: False<\/code> ayar\u0131 kritik \u00f6neme sahiptir. Yeni bir Minion Master&#8217;a ba\u011fland\u0131\u011f\u0131nda, Minion&#8217;un genel anahtar\u0131 Master&#8217;\u0131n &#8220;unaccepted&#8221; anahtarlar listesine eklenir. Y\u00f6netici olarak bu anahtar\u0131 manuel olarak kabul etmelisiniz.<br \/>\n*   <strong>Bekleyen anahtarlar\u0131 listeleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo salt-key -L<\/code><\/pre>\n<p>    Bu komut, <code>Accepted Keys<\/code>, <code>Denied Keys<\/code>, <code>Unaccepted Keys<\/code> ve <code>Rejected Keys<\/code> listelerini g\u00f6sterecektir.<\/p>\n<p>*   <strong>Anahtar\u0131 kabul etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo salt-key -a <minion_id><\/code><\/pre>\n<p>    <code><minion_id><\/code> yerine Minion&#8217;un hostname&#8217;i veya yap\u0131land\u0131rma dosyas\u0131nda ( <code>\/etc\/salt\/minion<\/code> ) belirtilen <code>id<\/code> de\u011feri yaz\u0131l\u0131r.<\/p>\n<p>*   <strong>T\u00fcm bekleyen anahtarlar\u0131 kabul etme (dikkatli kullan\u0131lmal\u0131):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo salt-key -A<\/code><\/pre>\n<h4>G\u00fcvenlik Duvar\u0131 Kurallar\u0131<\/h4>\n<p>Master sunucusundaki g\u00fcvenlik duvar\u0131n\u0131n sadece 4505 ve 4506 TCP portlar\u0131na gelen ba\u011flant\u0131lara izin verdi\u011finden emin olun. Ayr\u0131ca, bu portlara yaln\u0131zca bilinen Minion IP adreslerinden eri\u015fime izin veren k\u0131s\u0131tlay\u0131c\u0131 kurallar uygulamak daha da g\u00fcvenlidir.<\/p>\n<h4>SSL\/TLS Kullan\u0131m\u0131 (\u0130leri Seviye)<\/h4>\n<p>SaltStack, varsay\u0131lan olarak ZeroMQ \u00fczerinde kendi kimlik do\u011frulama ve \u015fifreleme mekanizmalar\u0131n\u0131 kullan\u0131r. Ancak, baz\u0131 ortamlar ek TLS\/SSL \u015fifrelemesi gerektirebilir. Bu, Salt Master yap\u0131land\u0131rma dosyas\u0131nda (<code>\/etc\/salt\/master<\/code>) <code>ssl_enable<\/code>, <code>ssl_cert<\/code>, <code>ssl_key<\/code> gibi parametrelerle yap\u0131land\u0131r\u0131labilir. Bu, genellikle daha karma\u015f\u0131k bir kurulum gerektirir ve PKI (Public Key Infrastructure) bilgisi gerektirir.<\/p>\n<h4>Kullan\u0131c\u0131 Yetkilendirmesi (eauth)<\/h4>\n<p>SaltStack, farkl\u0131 kullan\u0131c\u0131lar\u0131n Master \u00fczerinde belirli yetkilerle komut \u00e7al\u0131\u015ft\u0131rmas\u0131na izin veren <code>eauth<\/code> (external authentication) sistemine sahiptir. PAM, LDAP, GitHub, vSphere gibi farkl\u0131 kimlik do\u011frulama arka u\u00e7lar\u0131 kullan\u0131labilir. Bu sayede, Salt Master&#8217;a eri\u015fen kullan\u0131c\u0131lar\u0131n hangi Minion&#8217;larda hangi komutlar\u0131 \u00e7al\u0131\u015ft\u0131rabilece\u011fi veya hangi state&#8217;leri uygulayabilece\u011fi detayl\u0131 bir \u015fekilde kontrol edilebilir.<br \/>\n\u00d6rnek bir eauth yap\u0131land\u0131rmas\u0131 (<code>\/etc\/salt\/master<\/code>):<\/p>\n<pre><code class=\"language-yaml\">external_auth:\n  pam:\n    saltuser:\n      - .*<\/code><\/pre>\n<p>Bu \u00f6rnek, <code>saltuser<\/code> adl\u0131 bir PAM kullan\u0131c\u0131s\u0131n\u0131n t\u00fcm Minion&#8217;larda (<code>.*<\/code>) herhangi bir komutu \u00e7al\u0131\u015ft\u0131rmas\u0131na izin verir. Bu yetkilendirme, <code>\/etc\/salt\/master<\/code> dosyas\u0131nda tan\u0131mlanan ACL (Access Control List) kurallar\u0131 ile detayland\u0131r\u0131l\u0131r.<\/p>\n<h4>G\u00fcvenli Pillar Kullan\u0131m\u0131<\/h4>\n<p>Pillar verileri, hassas bilgileri i\u00e7erdi\u011fi i\u00e7in \u00f6zel bir g\u00fcvenlik katman\u0131na sahiptir. Pillar&#8217;lar, Minion&#8217;a \u00f6zel olarak \u015fifrelenir ve yaln\u0131zca ilgili Minion taraf\u0131ndan okunabilir. Ancak, Pillar&#8217;lar\u0131n d\u00fcz metin olarak depolanmas\u0131 yerine, HashiCorp Vault gibi harici bir s\u0131r y\u00f6neticisi ile entegre etmek, hassas verilerin g\u00fcvenli\u011fini daha da art\u0131r\u0131r. SaltStack, Vault gibi ara\u00e7larla entegrasyon i\u00e7in yerle\u015fik mod\u00fcllere sahiptir.<\/p>\n<h3>\u0130lk Testler ve Kontroller<\/h3>\n<p>Salt Master kurulumunu tamamlad\u0131ktan ve temel yap\u0131land\u0131rmalar\u0131 yapt\u0131ktan sonra, her \u015feyin beklendi\u011fi gibi \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in baz\u0131 kontroller yapmak \u00f6nemlidir.<\/p>\n<p>1.  <strong><code>salt-master<\/code> Servis Durumunu Kontrol Etme:<\/strong><br \/>\n    Servisin \u00e7al\u0131\u015f\u0131r durumda oldu\u011funu do\u011frulay\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status salt-master<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131da <code>active (running)<\/code> ifadesini g\u00f6rmelisiniz.<\/p>\n<p>2.  <strong>Portlar\u0131n Dinlendi\u011fini Do\u011frulama:<\/strong><br \/>\n    Master&#8217;\u0131n 4505 ve 4506 portlar\u0131n\u0131 dinledi\u011fini kontrol edin.<\/p>\n<pre><code class=\"language-bash\">sudo netstat -tulnp | grep 450<\/code><\/pre>\n<p>    Veya, e\u011fer <code>netstat<\/code> kurulu de\u011filse:<\/p>\n<pre><code class=\"language-bash\">sudo ss -tulnp | grep 450<\/code><\/pre>\n<p>    Bu komutlar, <code>salt-master<\/code> s\u00fcrecinin ilgili portlarda dinledi\u011fini g\u00f6stermelidir.<\/p>\n<p>3.  <strong>Mevcut Anahtarlar\u0131 Listeleme:<\/strong><br \/>\n    \u015eu anda kabul edilmi\u015f veya bekleyen Minion anahtarlar\u0131n\u0131n olup olmad\u0131\u011f\u0131n\u0131 kontrol edin. Yeni bir kurulumda ve hen\u00fcz Minion ba\u011flanmad\u0131\u011f\u0131nda, <code>Unaccepted Keys<\/code> ve <code>Accepted Keys<\/code> listeleri bo\u015f olacakt\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo salt-key -L<\/code><\/pre>\n<p>4.  <strong>Basit Bir Minion Kurulumu ve \u0130lk Ba\u011flant\u0131y\u0131 Test Etme (Ping):<\/strong><br \/>\n    Master&#8217;\u0131n do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 test etmenin en iyi yolu, bir Minion kurup Master&#8217;a ba\u011flamakt\u0131r.<br \/>\n    *   <strong>Minion Kurulumu (\u00d6rnek: Ubuntu):<\/strong><\/p>\n<pre><code class=\"language-bash\"># Minion sunucusunda\n        sudo apt update\n        sudo apt install -y salt-minion<\/code><\/pre>\n<p>    *   <strong>Minion Yap\u0131land\u0131rmas\u0131:<\/strong> Minion&#8217;un <code>\/etc\/salt\/minion<\/code> dosyas\u0131n\u0131 d\u00fczenleyin ve Master&#8217;\u0131n IP adresini veya hostname&#8217;ini belirtin:<\/p>\n<pre><code class=\"language-yaml\"># \/etc\/salt\/minion\n        master: <MASTER_IP_ADRESI_VEYA_HOSTNAME><\/code><\/pre>\n<p>    *   <strong>Minion Servisini Ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl start salt-minion\n        sudo systemctl enable salt-minion\n        sudo systemctl status salt-minion<\/code><\/pre>\n<p>    *   <strong>Master&#8217;da Minion Anahtar\u0131n\u0131 Kabul Etme:<\/strong><br \/>\n        Minion servisi ba\u015flad\u0131ktan sonra, Master&#8217;da <code>salt-key -L<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n. Minion&#8217;un anahtar\u0131n\u0131 <code>Unaccepted Keys<\/code> alt\u0131nda g\u00f6rmelisiniz. Ard\u0131ndan kabul edin:<\/p>\n<pre><code class=\"language-bash\"># Master sunucusunda\n        sudo salt-key -a <minion_id> # \u00f6rn: sudo salt-key -a myminion01<\/code><\/pre>\n<p>    *   <strong>Minion&#8217;a Ping G\u00f6nderme:<\/strong> Anahtar kabul edildikten sonra, Master&#8217;dan Minion&#8217;a bir test komutu g\u00f6nderin:<\/p>\n<pre><code class=\"language-bash\"># Master sunucusunda\n        sudo salt '<minion_id>' test.ping<\/code><\/pre>\n<p>        E\u011fer \u00e7\u0131kt\u0131 <code><minion_id>: True<\/code> \u015feklinde ise, Salt Master ve Minion aras\u0131ndaki ileti\u015fim ba\u015far\u0131l\u0131 bir \u015fekilde kurulmu\u015f demektir.<\/p>\n<h3>Sorun Giderme (Troubleshooting)<\/h3>\n<p>Kurulum veya ilk ba\u011flant\u0131 testleri s\u0131ras\u0131nda sorunlarla kar\u015f\u0131la\u015fmak olas\u0131d\u0131r. \u0130\u015fte yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcm \u00f6nerileri:<\/p>\n<p>1.  <strong><code>salt-master<\/code> Servisi Ba\u015flam\u0131yor:<\/strong><br \/>\n    *   <strong>Loglar\u0131 Kontrol Edin:<\/strong> En \u00f6nemli ad\u0131m, log dosyalar\u0131n\u0131 kontrol etmektir: <code>\/var\/log\/salt\/master<\/code>. Hata mesajlar\u0131, sorunun k\u00f6k nedenini genellikle a\u00e7\u0131k\u00e7a belirtir.<br \/>\n    *   <strong>Yap\u0131land\u0131rma Dosyas\u0131 Hatas\u0131:<\/strong> <code>\/etc\/salt\/master<\/code> dosyas\u0131nda bir YAML s\u00f6zdizimi hatas\u0131 (bo\u015fluklar, girintiler) olabilir. YAML dosyalar\u0131 girintilere kar\u015f\u0131 \u00e7ok hassast\u0131r. Bir YAML linter arac\u0131 kullanabilirsiniz.<br \/>\n    *   <strong>Port \u00c7ak\u0131\u015fmas\u0131:<\/strong> Master&#8217;\u0131n kullanmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131 4505 veya 4506 portlar\u0131 ba\u015fka bir servis taraf\u0131ndan kullan\u0131l\u0131yor olabilir. <code>sudo netstat -tulnp<\/code> veya <code>sudo ss -tulnp<\/code> komutlar\u0131yla kontrol edin.<\/p>\n<p>2.  <strong>Minionlar Master&#8217;a Ba\u011flanam\u0131yor:<\/strong><br \/>\n    *   <strong>G\u00fcvenlik Duvar\u0131:<\/strong> Master&#8217;daki g\u00fcvenlik duvar\u0131n\u0131n 4505 ve 4506 portlar\u0131na gelen ba\u011flant\u0131lara izin verdi\u011finden emin olun. Minion&#8217;dan Master&#8217;\u0131n bu portlar\u0131na <code>telnet<\/code> veya <code>nc<\/code> (netcat) ile ba\u011flant\u0131 kurmay\u0131 deneyerek test edebilirsiniz: <code>telnet <MASTER_IP> 4505<\/code>.<br \/>\n    *   <strong>A\u011f Ba\u011flant\u0131s\u0131:<\/strong> Master ve Minion aras\u0131nda temel a\u011f ba\u011flant\u0131s\u0131 oldu\u011fundan emin olun (ping testi).<br \/>\n    *   <strong>DNS \u00c7\u00f6z\u00fcn\u00fcrl\u00fc\u011f\u00fc:<\/strong> Minion&#8217;un <code>\/etc\/salt\/minion<\/code> dosyas\u0131ndaki <code>master:<\/code> parametresinin do\u011fru IP adresini veya hostname&#8217;i i\u00e7erdi\u011finden ve Minion&#8217;un bu hostname&#8217;i do\u011fru \u00e7\u00f6zebildi\u011finden emin olun.<br \/>\n    *   <strong>Minion Loglar\u0131:<\/strong> Minion taraf\u0131ndaki loglar\u0131 kontrol edin: <code>\/var\/log\/salt\/minion<\/code>. Ba\u011flant\u0131 hatalar\u0131 veya anahtar sorunlar\u0131 burada g\u00f6r\u00fclebilir.<br \/>\n    *   <strong>Minion Servisi Durumu:<\/strong> Minion servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun: <code>sudo systemctl status salt-minion<\/code>.<\/p>\n<p>3.  <strong>Minion Anahtar\u0131 Kabul Edilemiyor veya G\u00f6r\u00fcnm\u00fcyor:<\/strong><br \/>\n    *   Minion servisi do\u011fru yap\u0131land\u0131r\u0131lm\u0131\u015f ve ba\u015flat\u0131lm\u0131\u015f m\u0131?<br \/>\n    *   Master&#8217;\u0131n g\u00fcvenlik duvar\u0131 portlar\u0131 a\u00e7\u0131k m\u0131?<br \/>\n    *   Master&#8217;\u0131n <code>\/etc\/salt\/master<\/code> dosyas\u0131nda <code>auto_accept: False<\/code> ayar\u0131 do\u011fru mu?<br \/>\n    *   Minion&#8217;un <code>\/etc\/salt\/minion<\/code> dosyas\u0131nda <code>master:<\/code> parametresi do\u011fru mu?<br \/>\n    *   Master ve Minion aras\u0131ndaki saatler senkronize mi? (NTP kullan\u0131lmas\u0131 \u00f6nerilir)<\/p>\n<p>4.  <strong>Salt Komutlar\u0131 \u00c7al\u0131\u015fm\u0131yor:<\/strong><br \/>\n    *   Minion anahtar\u0131 Master taraf\u0131ndan kabul edildi mi? <code>sudo salt-key -L<\/code> ile kontrol edin.<br \/>\n    *   Minion servisi \u00e7al\u0131\u015f\u0131yor mu?<br \/>\n    *   Master&#8217;\u0131n <code>\/etc\/salt\/master<\/code> dosyas\u0131nda <code>file_roots<\/code> ve <code>pillar_roots<\/code> do\u011fru yap\u0131land\u0131r\u0131lm\u0131\u015f m\u0131?<br \/>\n    <em>   Komut s\u00f6zdizimi do\u011fru mu? \u00d6rne\u011fin, <code>sudo salt '<\/em>' test.ping<\/code> yerine <code>sudo salt 'myminion01' test.ping<\/code> kullan\u0131l\u0131yor mu?<\/p>\n<h3>Geli\u015fmi\u015f Yap\u0131land\u0131rma ve Sonraki Ad\u0131mlar<\/h3>\n<p>Salt Master&#8217;\u0131 kurup temel ileti\u015fimi sa\u011flad\u0131ktan sonra, SaltStack&#8217;in sundu\u011fu zengin \u00f6zellik setini ke\u015ffetmeye ba\u015flayabilirsiniz.<\/p>\n<p>*   <strong>Harici Veri Depolar\u0131 (External Pillars):<\/strong> Pillar verilerini sadece dosyalarda tutmak yerine, LDAP, SQL veritabanlar\u0131, HashiCorp Vault gibi harici kaynaklardan \u00e7ekmek i\u00e7in External Pillars kullanabilirsiniz. Bu, daha dinamik ve g\u00fcvenli bir yap\u0131land\u0131rma y\u00f6netimi sa\u011flar.<br \/>\n*   <strong>GitFS\/SVNFS:<\/strong> State ve Pillar dosyalar\u0131n\u0131 geleneksel dosya sisteminde tutmak yerine, Git veya SVN gibi s\u00fcr\u00fcm kontrol sistemlerinde y\u00f6netmek i\u00e7in GitFS veya SVNFS kullanabilirsiniz. Bu, yap\u0131land\u0131rma de\u011fi\u015fikliklerinin izlenmesini, geri al\u0131nmas\u0131n\u0131 ve i\u015fbirli\u011fini kolayla\u015ft\u0131r\u0131r.<br \/>\n*   <strong>Salt-API:<\/strong> Salt Master ile programatik olarak etkile\u015fim kurmak i\u00e7in Salt-API&#8217;yi kullanabilirsiniz. RESTful API arac\u0131l\u0131\u011f\u0131yla Salt komutlar\u0131n\u0131 tetikleyebilir, Minion durumlar\u0131n\u0131 sorgulayabilir ve otomasyonu di\u011fer sistemlerle entegre edebilirsiniz.<br \/>\n*   <strong>Salt-Cloud:<\/strong> \u00c7e\u015fitli bulut sa\u011flay\u0131c\u0131lar\u0131 (AWS, Azure, Google Cloud, DigitalOcean, OpenStack vb.) \u00fczerinde sanal makineleri provizyonlamak, yap\u0131land\u0131rmak ve y\u00f6netmek i\u00e7in Salt-Cloud mod\u00fcl\u00fcn\u00fc kullanabilirsiniz.<br \/>\n*   <strong>Orkestrasyon:<\/strong> Birden fazla Minion \u00fczerinde karma\u015f\u0131k ve s\u0131ral\u0131 g\u00f6revleri otomatikle\u015ftirmek i\u00e7in Salt Orchestration Runner&#8217;lar\u0131 kullanabilirsiniz. Bu, uygulama da\u011f\u0131t\u0131m\u0131, veritaban\u0131 y\u00fckseltmeleri veya altyap\u0131 de\u011fi\u015fiklikleri gibi \u00e7ok ad\u0131ml\u0131 s\u00fcre\u00e7ler i\u00e7in idealdir.<br \/>\n*   <strong>Reakt\u00f6r (Reactor):<\/strong> Salt Master&#8217;daki olay ak\u0131\u015f\u0131n\u0131 (event bus) dinleyerek belirli olaylara tepki vermek i\u00e7in Reactor sistemini kullanabilirsiniz. \u00d6rne\u011fin, bir Minion&#8217;un \u00e7evrimd\u0131\u015f\u0131 olmas\u0131 durumunda otomatik olarak bir e-posta g\u00f6ndermek veya yeni bir Minion ba\u011fland\u0131\u011f\u0131nda otomatik olarak belirli state&#8217;leri uygulamak gibi senaryolar\u0131 otomatize edebilirsiniz.<\/p>\n<p>Bu ileri seviye konular, SaltStack&#8217;in g\u00fcc\u00fcn\u00fc tam olarak anlaman\u0131za ve altyap\u0131 otomasyonunuzu bir sonraki seviyeye ta\u015f\u0131man\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>SaltStack altyap\u0131s\u0131n\u0131n temel ta\u015f\u0131 olan Salt Master&#8217;\u0131n kurulumu, modern ve \u00f6l\u00e7eklenebilir bir yap\u0131land\u0131rma y\u00f6netimi \u00e7\u00f6z\u00fcm\u00fcn\u00fcn ilk ve en kritik ad\u0131m\u0131d\u0131r. Bu makalede, SaltStack&#8217;in ne oldu\u011funu, temel mimarisini, Salt Master&#8217;\u0131n kurulum \u00f6ncesi haz\u0131rl\u0131klar\u0131n\u0131, Ubuntu\/Debian ve CentOS\/RHEL tabanl\u0131 sistemler \u00fczerindeki kurulum ad\u0131mlar\u0131n\u0131, temel yap\u0131land\u0131rma parametrelerini, g\u00fcvenlik hususlar\u0131n\u0131 ve ilk testleri detayl\u0131 bir \u015fekilde ele ald\u0131k. Ayr\u0131ca, olas\u0131 sorun giderme senaryolar\u0131na ve SaltStack&#8217;in sundu\u011fu geli\u015fmi\u015f \u00f6zelliklere k\u0131sa bir bak\u0131\u015f sunduk.<\/p>\n<p>Do\u011fru bir \u015fekilde kurulmu\u015f ve yap\u0131land\u0131r\u0131lm\u0131\u015f bir Salt Master, IT operasyonlar\u0131n\u0131z\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131rabilir, insan hatas\u0131n\u0131 azaltabilir ve altyap\u0131n\u0131z\u0131n tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flayabilir. SaltStack&#8217;in sundu\u011fu esneklik ve performans, \u00f6zellikle b\u00fcy\u00fck ve dinamik ortamlar i\u00e7in onu cazip bir se\u00e7enek haline getirir. Kurulumu tamamlad\u0131ktan sonra, SaltStack&#8217;in zengin dok\u00fcmantasyonunu ve topluluk kaynaklar\u0131n\u0131 kullanarak yeteneklerinizi geli\u015ftirmeye devam edebilir ve altyap\u0131 otomasyon yolculu\u011funuzda yeni ufuklar a\u00e7abilirsiniz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu\nSaltStack, modern IT altyap\u0131lar\u0131n\u0131n y\u00f6netimi i\u00e7in tasarlanm\u0131\u015f g\u00fc\u00e7l\u00fc, a\u00e7\u0131k kaynakl\u0131 bir yap\u0131","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-39434","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>SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu - 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\/saltstack-altyapisi-salt-master-kurulumu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu\" \/>\n<meta property=\"og:description\" content=\"SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu SaltStack, modern IT altyap\u0131lar\u0131n\u0131n y\u00f6netimi i\u00e7in tasarlanm\u0131\u015f g\u00fc\u00e7l\u00fc, a\u00e7\u0131k kaynakl\u0131 bir yap\u0131\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-21T09:40:49+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\/saltstack-altyapisi-salt-master-kurulumu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu\",\"datePublished\":\"2026-02-21T09:40:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/\"},\"wordCount\":3593,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/\",\"name\":\"SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-21T09:40:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu\"}]},{\"@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":"SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu - 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\/saltstack-altyapisi-salt-master-kurulumu\/","og_locale":"tr_TR","og_type":"article","og_title":"SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu","og_description":"SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu SaltStack, modern IT altyap\u0131lar\u0131n\u0131n y\u00f6netimi i\u00e7in tasarlanm\u0131\u015f g\u00fc\u00e7l\u00fc, a\u00e7\u0131k kaynakl\u0131 bir yap\u0131","og_url":"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-21T09:40:49+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\/saltstack-altyapisi-salt-master-kurulumu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu","datePublished":"2026-02-21T09:40:49+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/"},"wordCount":3593,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/","url":"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/","name":"SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-21T09:40:49+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/saltstack-altyapisi-salt-master-kurulumu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SaltStack Altyap\u0131s\u0131: Salt Master Kurulumu"}]},{"@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\/39434","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=39434"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39434\/revisions"}],"predecessor-version":[{"id":39435,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39434\/revisions\/39435"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39434"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39434"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}