Takip et

Puppet 4’ü Ubuntu 16.04 Üzerine Kurulum Rehberi

Puppet 4’ü Ubuntu 16.04 Üzerine Kurulum Rehberi Bulut bilişim ve DevOps kültürünün yükselişiyle birlikte, sunucu ve altyapı yönetiminde ot

Puppet 4’ü Ubuntu 16.04 Üzerine Kurulum Rehberi

Bulut bilişim ve DevOps kültürünün yükselişiyle birlikte, sunucu ve altyapı yönetiminde otomasyonun önemi giderek artmaktadır. Puppet, bu otomasyon araçlarının en güçlülerinden biridir. Sunucularınızın yapılandırmasını kod olarak tanımlamanıza, dağıtmanıza ve sürekli olarak sürdürmenize olanak tanır. Bu sayede, tutarlılık sağlanır, insan hataları azalır ve altyapı yönetimi çok daha verimli hale gelir.

Bu kapsamlı rehberde, Puppet’ın temel mimarisi, kurulum adımları ve ilk yapılandırma örnekleri dahil olmak üzere, Puppet 4’ü Ubuntu 16.04 işletim sistemi üzerine nasıl kuracağınızı adım adım öğreneceksiniz. Ubuntu 16.04, uzun süreli destek (LTS) sunan stabil bir sürüm olmasına rağmen, Puppet 4’ün de belirli bir olgunluğa ulaşmış bir sürüm olduğunu unutmamak önemlidir. Bu rehber, hem Puppet Master (sunucu) hem de Puppet Agent (istemci) kurulumunu detaylandıracaktır.

Puppet Nedir ve Neden Kullanmalıyız?

Puppet, sunucularınızın ve diğer altyapı bileşenlerinizin yapılandırmasını otomatikleştirmek için kullanılan bir yapılandırma yönetimi aracıdır. Ruby dilinde yazılmıştır ve declarative (bildirimsel) bir dil olan Puppet DSL (Domain Specific Language) kullanır. Bu dil, sistemlerinizin “nasıl olması gerektiğini” tanımlamanıza olanak tanır, “nasıl yapılacağını” değil. Örneğin, bir dosyanın var olması gerektiğini, belirli bir içeriğe sahip olması gerektiğini veya bir servisin çalışıyor olması gerektiğini belirtirsiniz. Puppet, bu durumu sağlamak için gerekli adımları kendisi atar.

Puppet kullanmanın başlıca faydaları şunlardır:

* Tutarlılık: Tüm sunucularınızda aynı yapılandırmanın uygulanmasını sağlar.
* Hata Azaltma: Manuel yapılandırma hatalarını ortadan kaldırır.
* Hız: Yeni sunucuların hızlı bir şekilde devreye alınmasını sağlar.
* Ölçeklenebilirlik: Yüzlerce, hatta binlerce sunucuyu kolayca yönetmenize olanak tanır.
* Dokümantasyon: Yapılandırma kodunuz, altyapınızın bir dokümantasyonu görevi görür.
* Değişim Yönetimi: Yapılandırma değişikliklerinin izlenmesini ve geri alınmasını kolaylaştırır.

Puppet, Master-Agent mimarisini kullanır. Puppet Master, yapılandırma dosyalarını (manifestler) barındırır ve Agent’ların isteklerine yanıt verir. Puppet Agent’lar ise, Master’dan yapılandırma bilgilerini alır ve kendi üzerlerinde uygular. Bu süreç, genellikle 30 dakikada bir tekrarlanır, ancak manuel olarak da tetiklenebilir.

Ön Gereksinimler

Puppet kurulumuna başlamadan önce aşağıdaki ön gereksinimlerin karşılandığından emin olun:

* İki Adet Ubuntu 16.04 Sunucusu: Biri Puppet Master, diğeri Puppet Agent olarak görev yapacak. Her iki sunucunun da en az 1GB RAM’e sahip olması önerilir (Puppet Master için 2GB+ daha iyi performans sağlar).
* Sudo Yetkileri: Her iki sunucuda da sudo yetkilerine sahip bir kullanıcı.
* Ağ Bağlantısı: Sunucular arasında ağ bağlantısı ve Puppet Master’ın 8140 portunun erişilebilir olması.
* Hostname ve DNS Yapılandırması: Sunucularınızın doğru hostname’lere sahip olması ve birbirlerini isimleriyle çözümleyebilmesi kritik öneme sahiptir. Bu, /etc/hosts dosyası üzerinden veya bir DNS sunucusu aracılığıyla sağlanabilir.

Bu rehberde, aşağıdaki hostname’leri kullanacağız:
* Puppet Master: puppetmaster.example.com
* Puppet Agent: puppetagent1.example.com

Lütfen bu isimleri kendi ortamınıza uygun olarak değiştirin veya örnekteki gibi kullanın.

Puppet Master Kurulumu

Puppet Master, tüm yapılandırma dosyalarını ve sertifika yetkilisi (CA) işlevini barındıran merkezi sunucudur.

Sistem Güncellemesi ve Temel Ayarlar

Kuruluma başlamadan önce, her zaman olduğu gibi sisteminizi güncelleyin:

sudo apt update
sudo apt upgrade -y

Hostname ve /etc/hosts Yapılandırması

Puppet, sunucuların birbirini isimleriyle tanıması için doğru hostname ve DNS çözümlemesine ihtiyaç duyar.

Puppet Master Üzerinde:

1. Hostname’i ayarlayın:

sudo hostnamectl set-hostname puppetmaster.example.com

2. /etc/hosts dosyasını düzenleyin. Bu dosya, Puppet Master’ın kendisini ve Puppet Agent’ı isimleriyle çözebilmesini sağlamalıdır.

sudo nano /etc/hosts

Dosyaya aşağıdaki satırları ekleyin (IP adreslerini kendi sunucularınızınkilerle değiştirin):

127.0.0.1 localhost
    127.0.1.1 puppetmaster.example.com puppetmaster

    # Puppet Master'ın kendi IP'si
    192.168.1.10 puppetmaster.example.com puppetmaster

    # Puppet Agent'ın IP'si
    192.168.1.20 puppetagent1.example.com puppetagent1

Dosyayı kaydedip kapatın (Ctrl+O, Enter, Ctrl+X).

Değişikliklerin uygulanması için sistemi yeniden başlatmanız gerekebilir veya sudo systemctl restart hostname.service komutunu kullanabilirsiniz. Ancak genellikle hostnamectl komutu anında etkili olur.

Puppet Repository Ekleme

Puppet paketleri Ubuntu’nun varsayılan depolarında bulunmaz. Bu yüzden Puppet Labs’ın kendi deposunu eklememiz gerekir. Puppet 4 için Ubuntu 16.04 (Xenial) sürümüne özel depoyu ekleyeceğiz.

1. Puppet 4 release paketini indirin:

wget https://apt.puppet.com/puppet4-release-xenial.deb

Not: Bu URL, Puppet 4’ün Ubuntu 16.04 için özel deposudur. Daha yeni Puppet sürümleri veya Ubuntu sürümleri için farklı URL’ler kullanmanız gerekebilir.
2. İndirilen .deb paketini kurun:

sudo dpkg -i puppet4-release-xenial.deb

3. Yeni depoyu sisteminize tanıtmak için apt depolarını güncelleyin:

sudo apt update

Puppet Server Kurulumu

Depo eklendikten sonra Puppet Server paketini kurabiliriz:

sudo apt install puppetserver -y

Kurulum biraz zaman alabilir, çünkü Puppet Server Java tabanlıdır ve bağımlılıkları yüklenir.

Java Bellek Ayarları

Puppet Server, Java Sanal Makinesi (JVM) üzerinde çalışır ve varsayılan olarak yüksek bellek tahsis edebilir. Küçük ortamlar için bu bellek miktarını düşürmek, sistem kaynaklarının daha verimli kullanılmasına yardımcı olur. Genellikle 512MB başlangıç ve 1GB maksimum bellek yeterli olacaktır.

1. Puppet Server’ın varsayılan ayarlarını içeren dosyayı düzenleyin:

sudo nano /etc/default/puppetserver

2. JAVA_ARGS satırını bulun ve aşağıdaki gibi düzenleyin (veya ekleyin):

JAVA_ARGS="-Xms512m -Xmx1g"

Bu ayar, JVM’ye başlangıçta 512MB ve maksimum 1GB bellek kullanmasını söyler. Daha büyük ortamlar için bu değerleri artırmanız gerekebilir.

Puppet Server’ı Başlatma ve Etkinleştirme

Ayarları yaptıktan sonra Puppet Server servisini başlatın ve sistem başlangıcında otomatik olarak başlaması için etkinleştirin:

sudo systemctl start puppetserver
sudo systemctl enable puppetserver

Servisin durumunu kontrol edin:

sudo systemctl status puppetserver

Çıktıda Active: active (running) ifadesini görmelisiniz.

Güvenlik Duvarı Yapılandırması

Puppet Master, Puppet Agent’lardan gelen bağlantıları kabul etmek için 8140 portunu kullanır. Eğer bir güvenlik duvarı (örneğin UFW) kullanıyorsanız, bu portu açmanız gerekir:

sudo ufw allow 8140/tcp
sudo ufw enable # Eğer UFW aktif değilse

Puppet Agent Kurulumu

Şimdi Puppet Agent’ı kuracağımız sunucuya geçelim. Bu sunucu, Puppet Master’dan yapılandırma bilgilerini alacak ve uygulayacaktır.

Sistem Güncellemesi ve Temel Ayarlar

Puppet Agent sunucusunda da sistemi güncelleyerek başlayın:

sudo apt update
sudo apt upgrade -y

Hostname ve /etc/hosts Yapılandırması

Puppet Agent’ın da doğru hostname’e sahip olması ve Puppet Master’ı isimleriyle çözebilmesi gerekir.

Puppet Agent Üzerinde:

1. Hostname’i ayarlayın:

sudo hostnamectl set-hostname puppetagent1.example.com

2. /etc/hosts dosyasını düzenleyin. Bu dosya, Puppet Agent’ın kendisini ve Puppet Master’ı isimleriyle çözebilmesini sağlamalıdır.

sudo nano /etc/hosts

Dosyaya aşağıdaki satırları ekleyin (IP adreslerini kendi sunucularınızınkilerle değiştirin):

127.0.0.1 localhost
    127.0.1.1 puppetagent1.example.com puppetagent1

    # Puppet Agent'ın kendi IP'si
    192.168.1.20 puppetagent1.example.com puppetagent1

    # Puppet Master'ın IP'si
    192.168.1.10 puppetmaster.example.com puppetmaster

Dosyayı kaydedip kapatın.

Puppet Repository Ekleme

Puppet Master’da yaptığımız gibi, Puppet Agent’a da Puppet 4 deposunu eklememiz gerekiyor:

1. Puppet 4 release paketini indirin:

wget https://apt.puppet.com/puppet4-release-xenial.deb

2. İndirilen .deb paketini kurun:

sudo dpkg -i puppet4-release-xenial.deb

3. Yeni depoyu sisteminize tanıtmak için apt depolarını güncelleyin:

sudo apt update

Puppet Agent Kurulumu

Depo eklendikten sonra Puppet Agent paketini kurabiliriz:

sudo apt install puppet-agent -y

Puppet Agent Yapılandırması

Puppet Agent’ın hangi Puppet Master’a bağlanacağını bilmesi gerekir. Bu bilgiyi /etc/puppetlabs/puppet/puppet.conf dosyasına ekleyeceğiz.

1. Yapılandırma dosyasını düzenleyin:

sudo nano /etc/puppetlabs/puppet/puppet.conf

2. [main] bloğunun altına server = puppetmaster.example.com satırını ekleyin:

# Bu dosya Puppet Agent'ın yapılandırma ayarlarını içerir.
    [main]
    logdir = /var/log/puppetlabs/puppet
    rundir = /var/run/puppetlabs
    ssldir = /etc/puppetlabs/puppet/ssl
    server = puppetmaster.example.com # Bu satırı ekleyin veya düzenleyin

Dosyayı kaydedip kapatın.

Puppet Agent’ı Başlatma ve Etkinleştirme

Puppet Agent servisini başlatın ve sistem başlangıcında otomatik olarak başlaması için etkinleştirin:

sudo systemctl start puppet
sudo systemctl enable puppet

Servisin durumunu kontrol edin:

sudo systemctl status puppet

Çıktıda Active: active (running) ifadesini görmelisiniz.

Sertifika İmzalama (Certificate Signing)

Puppet Master ve Agent arasındaki iletişim, SSL sertifikaları kullanılarak güvenli hale getirilir. Her Puppet Agent, ilk bağlantısında Master’dan bir sertifika ister. Master bu isteği onaylamalı ve sertifikayı imzalamalıdır.

Agent’tan Sertifika İsteği Gönderme

Puppet Agent Üzerinde:

Agent’ın Master’a bir sertifika isteği göndermesi için bir kez Puppet Agent’ı test modunda çalıştırması gerekir:

sudo /opt/puppetlabs/bin/puppet agent --test

Bu komutu çalıştırdığınızda, Agent Master’a bağlanmaya çalışacak, sertifika isteği oluşturacak ve Master’ın sertifika yetkilisine (CA) gönderecektir. Çıktıda genellikle “Exiting; no certificate found and waitforcert is disabled” veya “Waiting for certificate from puppetmaster.example.com” gibi bir mesaj göreceksiniz. Bu normaldir, çünkü sertifika henüz imzalanmamıştır.

Master’da Sertifika İsteklerini Listeleme ve İmzalama

Puppet Master Üzerinde:

1. Bekleyen sertifika isteklerini listeleyin:

sudo /opt/puppetlabs/bin/puppet cert list

Çıktıda, puppetagent1.example.com gibi bekleyen bir istek görmelisiniz. Genellikle başında " ile işaretlenir.

"puppetagent1.example.com" (SHA256) A1B2C3D4E5F6G7H8I9J0...

2. Agent’ın sertifikasını imzalayın:

sudo /opt/puppetlabs/bin/puppet cert sign puppetagent1.example.com

Başarılı bir imzalama sonrası “Signed certificate for puppetagent1.example.com” gibi bir mesaj almalısınız.

Agent’ın Bağlantıyı Doğrulama

Puppet Agent Üzerinde:

Sertifika imzalandıktan sonra, Agent’ın tekrar Master ile iletişim kurarak imzalı sertifikayı alması ve bağlantıyı doğrulaması gerekir:

sudo /opt/puppetlabs/bin/puppet agent --test

Bu sefer, Agent Master’dan yapılandırmayı başarıyla almalı ve uygulamalıdır. Henüz bir manifest tanımlamadığımız için, “Notice: Applied catalog in X.XX seconds” gibi bir mesaj görmelisiniz, ancak herhangi bir kaynak değişikliği olmayacaktır.

Artık Puppet Master ve Agent arasında güvenli bir bağlantı kurulmuştur.

İlk Manifest Oluşturma ve Uygulama

Puppet’ın temelini manifestler oluşturur. Manifestler, Puppet’ın anlayabileceği şekilde sistemlerin yapılandırmasını tanımlayan dosyalardır. Şimdi basit bir manifest oluşturarak Puppet’ın nasıl çalıştığını görelim.

Puppet Kavramları: Manifestler, Kaynaklar, Sınıflar, Modüller

* Manifest (Bildirge): Puppet DSL kullanılarak yazılmış, sistemin istenen durumunu tanımlayan dosyalardır. Genellikle .pp uzantılıdır.
* Kaynak (Resource): Yönetilen bir sistemin temel yapı taşıdır (örneğin, bir dosya, bir servis, bir paket, bir kullanıcı). Her kaynağın bir türü (file, service, package, user) ve bir dizi özelliği (ensure, content, mode, enable, running) vardır.
* Sınıf (Class): İlgili kaynakların ve diğer sınıfların mantıksal bir gruplandırmasıdır. Tekrar kullanılabilirliği artırır.
* Modül (Module): Sınıfları, tanımları, dosyaları, şablonları ve diğer eklentileri bir araya getiren dizin yapısıdır. Puppet Forge’dan hazır modüller indirilebilir veya kendi modüllerinizi oluşturabilirsiniz.

Basit Bir Manifest Oluşturma

Şimdi, Puppet Agent üzerinde /tmp/puppet_test.txt adında bir dosya oluşturacak ve içine belirli bir metin yazacak basit bir manifest oluşturalım.

Puppet Master Üzerinde:

1. Puppet’ın varsayılan üretim ortamının manifestler dizinine gidin:

cd /etc/puppetlabs/code/environments/production/manifests/

2. site.pp dosyasını düzenleyin (veya oluşturun). Bu dosya, varsayılan olarak tüm Puppet Agent’lar için geçerli olan manifestleri içerir.

sudo nano site.pp

3. Dosyaya aşağıdaki içeriği ekleyin:

# site.pp - Puppet Master'ın ana manifest dosyası

    # puppetagent1.example.com için özel yapılandırma
    node 'puppetagent1.example.com' {
      # /tmp/puppet_test.txt adında bir dosya kaynağı tanımla
      file { '/tmp/puppet_test.txt':
        ensure  => file,                       # Dosyanın var olmasını sağla
        content => 'Bu dosya Puppet tarafından oluşturuldu ve yönetiliyor!', # Dosyanın içeriği
        mode    => '0644',                     # Dosya izinleri
        owner   => 'root',                     # Dosyanın sahibi
        group   => 'root',                     # Dosyanın grubu
      }

      # Bir paket kaynağı tanımla (örneğin, htop paketinin yüklü olmasını sağla)
      package { 'htop':
        ensure => installed,
      }
    }

    # Diğer nodelar için varsayılan yapılandırma (isteğe bağlı)
    # node default {
    #   notify { 'Bu, varsayılan node için bir bildirimdir.': }
    # }

Dosyayı kaydedip kapatın.

Bu manifest, puppetagent1.example.com adlı node için iki kaynak tanımlar:
* /tmp/puppet_test.txt adında bir dosya, belirli bir içerik ve izinlerle.
* htop paketi, yüklü durumda olacak.

node bloğu, belirli bir hostname’e sahip Agent’lar için özel yapılandırma yapmanızı sağlar.

Manifest’i Uygulama

Manifest’i oluşturduktan sonra, Puppet Agent’ın bu yapılandırmayı Master’dan alıp kendi üzerinde uygulamasını sağlayalım.

Puppet Agent Üzerinde:

Puppet Agent’ı tekrar test modunda çalıştırın:

sudo /opt/puppetlabs/bin/puppet agent --test

Bu komut, Agent’ın Master’dan yeni kataloğu (yapılandırma bilgilerini) çekmesini ve uygulamasını tetikleyecektir. Çıktıda aşağıdaki gibi değişiklikleri görmelisiniz:

Info: Retrieving pluginfacts
Info: Retrieving plugins
Info: Loading facts
Info: Caching catalog for puppetagent1.example.com
Info: Applying configuration version '1678886400'
Notice: /Stage[main]/Main/Node[puppetagent1.example.com]/File[/tmp/puppet_test.txt]/ensure: defined content as '{md5}...'
Notice: /Stage[main]/Main/Node[puppetagent1.example.com]/Package[htop]/ensure: created
Notice: Applied catalog in X.XX seconds

Bu çıktı, Puppet’ın /tmp/puppet_test.txt dosyasını oluşturduğunu ve htop paketini kurduğunu gösterir.

Şimdi Agent sunucusunda bu değişiklikleri doğrulayalım:

1. Dosyanın içeriğini kontrol edin:

cat /tmp/puppet_test.txt

Çıktı olarak “Bu dosya Puppet tarafından oluşturuldu ve yönetiliyor!” metnini görmelisiniz.
2. htop paketinin yüklü olup olmadığını kontrol edin:

dpkg -l htop

Veya doğrudan htop komutunu çalıştırın:

htop

htop komutu çalışırsa, paket başarıyla yüklenmiş demektir.

Tebrikler! İlk Puppet manifestinizi başarıyla oluşturdunuz ve uyguladınız.

Modüller ve Daha Gelişmiş Kullanım

Tek bir site.pp dosyası ile tüm yapılandırmayı yönetmek, küçük ortamlar için mümkün olsa da, büyük ve karmaşık altyapılarda sürdürülebilir değildir. Puppet, bu sorunu modüllerle çözer.

Modüller Nedir?

Modüller, ilgili sınıfları, kaynakları, tanımları, şablonları ve dosyaları mantıksal bir dizin yapısı altında bir araya getiren birimlerdir. Bir web sunucusu (Nginx, Apache), bir veritabanı (MySQL, PostgreSQL) veya bir uygulama gibi belirli bir bileşenin yapılandırmasını yönetmek için modüller kullanılır.

Modül Dizini Yapısı:

Puppet Master’da modüller genellikle /etc/puppetlabs/code/environments/production/modules/ dizini altında bulunur. Bir modülün temel yapısı şöyledir:

/
├── manifests/
│   ├── init.pp          # Modülün ana sınıfı
│   ├── params.pp        # Parametreler için sınıf (isteğe bağlı)
│   └── .pp
├── files/               # Static dosyalar
├── templates/           # Şablon dosyaları (ERB veya EPP)
├── lib/                 # Özel faktörler, tipler, sağlayıcılar
├── spec/                # Testler
└── metadata.json        # Modülün meta verileri

Modül Kullanımına Kısa Bir Bakış

Örneğin, bir Nginx web sunucusunu kurmak ve yapılandırmak için bir Nginx modülü kullanabilirsiniz. Puppet Forge (forge.puppet.com) adresinden binlerce hazır modül bulabilirsiniz.

Puppet Master Üzerinde:

1. Modül Kurulumu (Örnek):
Puppet Forge’dan bir modülü indirmek için puppet module install komutunu kullanabilirsiniz. Örneğin, Nginx modülünü kuralım:

sudo /opt/puppetlabs/bin/puppet module install puppetlabs-nginx

Bu komut, puppetlabs-nginx modülünü /etc/puppetlabs/code/environments/production/modules/ dizinine indirecektir.
2. Manifest’te Modülü Kullanma:
site.pp dosyanızı düzenleyerek Nginx modülünü Agent’a uygulayabilirsiniz:

sudo nano /etc/puppetlabs/code/environments/production/manifests/site.pp

node 'puppetagent1.example.com' bloğuna aşağıdaki satırı ekleyin:

node 'puppetagent1.example.com' {
      # ... önceki kaynaklar ...

      # Nginx modülünü dahil et
      class { 'nginx':
        nginx_ensure => 'present',
        nginx_package_name => 'nginx',
        nginx_service_name => 'nginx',
      }

      # Nginx'in varsayılan web kök dizinine bir dosya yerleştir
      file { '/var/www/html/index.nginx-debian.html':
        ensure  => file,
        content => '',
        mode    => '0644',
        require => Class['nginx'], # Nginx modülü kurulduktan sonra çalıştır
      }
    }

Bu örnek, nginx sınıfını puppetagent1.example.com node’una dahil eder ve Nginx’in kurulmasını sağlar. Ardından, Nginx’in web kök dizinine basit bir HTML dosyası yerleştirir.

3. Uygulama:
Puppet Agent Üzerinde:

sudo /opt/puppetlabs/bin/puppet agent --test

Bu komut çalıştıktan sonra, Puppet Agent’a Nginx’in kurulduğunu ve /var/www/html/index.nginx-debian.html dosyasının oluşturulduğunu göreceksiniz. Agent sunucusunun IP adresine bir web tarayıcısı üzerinden erişerek Nginx’in çalıştığını doğrulayabilirsiniz.

Modüller, Puppet ile karmaşık altyapıları yönetmenin anahtarıdır. Kendi modüllerinizi yazarak veya Puppet Forge’dan mevcut modülleri kullanarak yapılandırma yönetimini çok daha güçlü ve esnek hale getirebilirsiniz.

Sorun Giderme (Troubleshooting)

Puppet kurulumu veya yapılandırması sırasında karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:

* Ağ Bağlantısı/Güvenlik Duvarı: Puppet Master’ın 8140 portunun açık olduğundan ve Agent’ın Master’a erişebildiğinden emin olun. telnet puppetmaster.example.com 8140 veya nc -vz puppetmaster.example.com 8140 komutlarıyla kontrol edebilirsiniz.
* Hostname/DNS Çözümlemesi: Hem Master hem de Agent’ın birbirlerini doğru hostname’lerle çözebildiğinden emin olun. /etc/hosts dosyalarını tekrar kontrol edin veya DNS sunucunuzun doğru yapılandırıldığından emin olun. ping puppetmaster.example.com ve ping puppetagent1.example.com komutlarını her iki sunucudan da deneyin.
* Sertifika Sorunları:
* Agent’ın sertifika isteği gönderdiğinden emin olun (puppet cert list komutu Master’da).
* Master’ın sertifikayı imzaladığından emin olun (puppet cert sign).
* Eğer yanlış bir sertifika imzalandıysa veya eski bir sertifika sorun yaratıyorsa, sertifikaları temizlemeniz gerekebilir:
* Agent’ta: sudo rm -rf /etc/puppetlabs/puppet/ssl
* Master’da: sudo /opt/puppetlabs/bin/puppet cert clean puppetagent1.example.com
* Sonra Agent’tan tekrar sertifika isteği gönderin ve Master’da imzalayın.
* Puppet Server Bellek Sorunları: Puppet Master’da puppetserver servisi başlamıyorsa veya çok yavaş çalışıyorsa, /etc/default/puppetserver dosyasındaki JAVA_ARGS ayarlarını kontrol edin. Yeterli bellek tahsis edildiğinden emin olun. Log dosyalarını kontrol edin.
* Log Dosyaları: Sorunları teşhis etmek için Puppet’ın log dosyalarını inceleyin:
* Puppet Master: /var/log/puppetlabs/puppetserver/puppetserver.log
* Puppet Agent: /var/log/puppetlabs/puppet/agent.log
* puppet config print: Bu komut, Puppet’ın mevcut yapılandırma ayarlarını gösterir ve sorun giderme için faydalıdır. Özellikle server ayarını kontrol edin.

sudo /opt/puppetlabs/bin/puppet config print server

* Servis Durumu: Hem puppetserver (Master’da) hem de puppet (Agent’ta) servislerinin çalıştığından emin olun:

sudo systemctl status puppetserver # Master'da
    sudo systemctl status puppet       # Agent'ta

Sonuç

Bu rehberde, Puppet 4’ü Ubuntu 16.04 üzerinde Puppet Master ve Puppet Agent olarak nasıl kuracağınızı, sertifika iletişimini nasıl sağlayacağınızı ve ilk basit manifestinizi nasıl oluşturup uygulayacağınızı adım adım öğrendiniz. Artık temel bir Puppet altyapısına sahipsiniz ve yapılandırma yönetimi otomasyonuna ilk adımı atmış bulunuyorsunuz.

Puppet, karmaşık altyapıları yönetmek için son derece güçlü ve esnek bir araçtır. Bu kurulum, Puppet yolculuğunuzun sadece başlangıcıdır. Daha fazla bilgi edinmek ve yeteneklerinizi geliştirmek için şunları yapabilirsiniz:

* Puppet DSL’i Derinlemesine Öğrenin: Farklı kaynak türlerini, koşullu ifadeleri, döngüleri ve işlevleri keşfedin.
* Modülleri Kullanın ve Oluşturun: Puppet Forge’daki hazır modülleri inceleyin ve kendi özel ihtiyaçlarınız için modüller yazmayı öğrenin.
* Hiera’yı Keşfedin: Hiera, yapılandırma verilerini (örneğin, şifreler, port numaraları) koddan ayırarak daha esnek ve yeniden kullanılabilir manifestler yazmanızı sağlar.
* Ortamları Kullanın: Geliştirme, test ve üretim gibi farklı ortamlar oluşturarak yapılandırma değişikliklerini güvenli bir şekilde yönetin.
* Sürüm Kontrolü (Git) ile Entegre Edin: Manifestlerinizi ve modüllerinizi Git gibi bir sürüm kontrol sistemiyle yöneterek değişiklikleri takip edin ve işbirliğini kolaylaştırın.

Puppet ile altyapınızın yönetimini otomatikleştirmek, uzun vadede size büyük zaman ve çaba tasarrufu sağlayacaktır. Başarılar dileriz!

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version