linuxakademi.com.tr puppet ile linux sistem …...sshkeys: ssh key'lerinin yönetimi tam liste:...
TRANSCRIPT
![Page 1: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/1.jpg)
Puppet ile Linux Sistem Yönetimi Otomasyonu
Çağrı [email protected]
http://linuxakademi.com.trhttp://syslogs.org
https://twitter.com/CagriErsen
![Page 2: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/2.jpg)
Sistem Yönetimi Temelleri
![Page 3: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/3.jpg)
Nedir, Ne Yapar ?
Ağ servisleri sunan sistemlerin yönetilmesi.❖ Kurma/Kaldırma/Güncelleme/Yapılandırma❖ Disk / Storage / Dosya Sistemi Yönetimi❖ Kullanıcı / Grup Yönetimi❖ Yedekleme İşleri❖ Performans Analizi / Micro Management❖ Güvenlik Yönetimi
![Page 4: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/4.jpg)
Anahtar Kelime: Yapılandırma
Sonuç olarak; sistem yönetimi sürekli olarak “bir şeylerin” yapılandırılmasından ibarettir.
Ömrünüz genellikle yapılandırma komutları ve dosyaları içerisinde geçer.
![Page 5: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/5.jpg)
Yapılandırma Seçenekleri
Genel olarak üç yol tercih edilebilir,1. Manual Yapılandırma2. Kurulum Sırasında Otomatik Yapılandırma
(Post-Installation Script)3. Bir Otomasyon Aracı Kullanarak Yapılandırma
![Page 6: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/6.jpg)
Manual Yapılandırma
![Page 7: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/7.jpg)
Manual Yapılandırma (1)
Az sayıda sunucu yönetiyorsanız sorun yok!Herşeyi manual yapsanız da olur (mu acaba ?)
❖ Kolay❖ Az sunucuda az zamanda az iş
![Page 8: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/8.jpg)
Manual Yapılandırma (2)
Fakat…
❖ Kesin olarak unuttuğunuz bir şeyler olur.❖ Değişiklikleri takip edemezsiniz.❖ Aynı ayarlarla kolayca yeni bir sunucu
kuramazsınız.
![Page 9: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/9.jpg)
Çok sayıda sunucu yönetiyorsanız “en kötü” ve “en uygulanamaz” seçenektir!
Manual Yapılandırma (3)
![Page 10: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/10.jpg)
Kurulum Sırasında Otomatik Yapılandırma (Post-Installation Scripts)
![Page 11: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/11.jpg)
Post Installation Scripts (1)
Standart kurulumun ardından, yazdığımız küçük yapılandırma scriptlerini çalıştırmak.
❖ Çok sayıda sunucu hızlıca yapılandırılabilir.❖ Kısmen merkezi bir yönetim sağlanmış olur.
![Page 12: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/12.jpg)
Post Installation Scripts (2)
Fakat:
❖ Yapılandırmanın sürekli aynı kalacağını garanti edemezsiniz.
❖ Değişiklik yapmak kolay değildir.❖ Değişiklik geçmişini takip edemezsiniz.
![Page 13: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/13.jpg)
Post Installation Scripts (3)
ve kalabalık bir ekipseniz...
![Page 14: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/14.jpg)
Bir Otomasyon Aracı Kullanarak Yapılandırma
![Page 15: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/15.jpg)
Otomasyon Araçları Kullanmak (1)
Seçenekler arasında açık ara en iyi alternatif.● Sunucularınızı nasıl yapılandırmak
istediğinizi tarif edersiniz,● Otomasyon aracı yapılandırmayı tarifinize
göre uygular.● Ayarların hep aynı durumda kalmasını sağlar
![Page 16: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/16.jpg)
Otomasyon Araçları Kullanmak (2)
❖ Altyapıya yeni bir sunucu eklemek kolaydır.❖ Çöken bir sunucu eski durumuna süratle
döndürülebilir.❖ Yapılandırma değişiklikleri zahmetsizdir.❖ Değişiklik geçmişi tutulabilir.
![Page 17: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/17.jpg)
Otomasyon Araçları Kullanmak (3)
HIZ
TUTARLILIK
![Page 18: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/18.jpg)
PUPPET
![Page 19: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/19.jpg)
Puppet Nedir ?
❖ Gelişmiş bir Configuration Management Tool❖ 2005 - Luke Kanie tarafından❖ Ruby❖ Son Sürüm 3.4.3❖ Açık Kaynak Kod❖ Declarative❖ Kendine ait DSL (Domain Spesifik Language)❖ Server / Client Mimari
![Page 20: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/20.jpg)
Desteklediği Platformlar
RHEL CentOS Fedora Debian
Ubuntu SUSE Gentoo Mandriva
FreeBSD OpenBSD
Mac OS X
Solaris
Arch HP-UX
NetBSD
Windows
![Page 21: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/21.jpg)
Yönetebildiği bazı “şeyler”
Paketler Servisler KullanıcılarGruplar Komutlar
SSH Anahtarları Cron Dosyalar
Dizinler Mount
ve daha fazlası...
![Page 22: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/22.jpg)
Çalışma Mod’ları
❖ Server / Client (Master / Agent)
❖ Standalone (Serverless)
![Page 23: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/23.jpg)
Client / Server Mode (1)
Puppet Server (Master)❖ Tüm config dosyaları master’da tutulur.❖ Üzerinde bir CA vardır, SSL keyleri tutar.
Bir ya da daha fazla client (Node)❖ Node 30 dakikada bir sistem bilgilerini Master’a yollar.❖ Master, node’a “istenilen yapılandırma durumunu”
belirten bir katalog gönderir.❖ Node kataloğu uygular, master’a raporlar.
![Page 24: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/24.jpg)
SSL
Client / Server Mode (2)
Puppet Master
Node Node Node
RaporKatalog
VCS
![Page 25: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/25.jpg)
Client / Server Mode (3)
![Page 26: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/26.jpg)
Puppet: Standalone Mode (1)
Üzerinde Puppet Paketi Kurulu Bir Host
➢ Master / Agent modundan tek fark yapılandırma dosyalarının localde tutuluyor olmasıdır.
➢ Çok sunucudan oluşan altyapılar için ideal değildir.
![Page 27: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/27.jpg)
Standalone Mode (2)
![Page 28: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/28.jpg)
Puppet Mimarisi ve Bileşenler
![Page 29: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/29.jpg)
Declarative Language
user { 'crom':
ensure => present,
uid => '512',
gid => 'admin',
shell => '/bin/bash',
home => '/home/crom',
managehome => true,
}
Yapılandırma deklare edilir (Desired state)
![Page 30: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/30.jpg)
OS Bağımsız
package { 'openssh-server':
ensure => present,
}
Sistem yöneticisi ile sistem arasındaki katmandır!
![Page 31: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/31.jpg)
Puppet: Resources (1)
Resource’lar sistem yapılandırmasını meydana getiren her bir bileşene verilen isimdir.
❖ Bir kullanıcı❖ Bir paket❖ Bir dosya❖ Bir servis❖ ...
![Page 32: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/32.jpg)
Puppet: Resources (2)
user { 'crom':
ensure => present,
uid => '512',
gid => 'admin',
shell => '/bin/bash',
home => '/home/crom',
managehome => true,
}
Attributes
Type
Title
Values
![Page 33: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/33.jpg)
Puppet: Resource Types❖ packages: Paket kurma kaldırma, update❖ file: Dosya/Dizin işlemleri içerik, izinleri, sahibi ❖ service: Servis başlatma durdurma, enable/disable,❖ exec: Komut çalıştırma işlemleri❖ cron: Zamanlanmış görevlerin yönetilmesi, ekle/kaldır/düzelt❖ user: Kullanıcı işlemleri ekle/kaldır❖ group: Grup ekle/çıkar, kullanıcı ekle❖ mount: disk bağlama işlemleri❖ sshkeys: SSH Key'lerinin yönetimi
Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization mailalias maillist mcx mount nagios* notify package resources router schedule scheduled_task selboolean selmodule service ssh_authorized_key sshkey stage tidy uservlan yumrepo zfs zone zpool
![Page 34: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/34.jpg)
Puppet: Resources (Örnek - 1)
Resource Type: Service
service { 'NetworkManager': ensure => 'stopped', enable => 'false',}
![Page 35: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/35.jpg)
Puppet: Resources (Örnek - 2)
Resource Type: File
file {'testfile': path=> '/tmp/testfile', ensure => present, mode=> 0640, content => "I'm a test file.",}
![Page 36: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/36.jpg)
Puppet: Resources (Örnek - 3)
Resource Type: Cron
cron { logrotate: command => "/usr/sbin/logrotate", user => root, hour => 2, minute => 0}
![Page 37: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/37.jpg)
Puppet: Manifests (1)❖ .pp uzantılı Puppet scriptleri.
❖ Yapılandırma bu dosyalar içerisinde tanımlanır.
❖ Default → /etc/puppet/manifests/site.pp
❖ Tüm tanımlamalar site.pp içinde yapılabilir,
❖ Ya da birden çok .pp dosyası içersinde tanımlanıp, site.pp içerisinden “include” edilebilir.
![Page 38: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/38.jpg)
Puppet: Manifests (2)
# vi /etc/puppet/manifests/kullanici-sil.pp
user {'crom': ensure => absent, }
# puppet apply /etc/puppet/manifests/kullanici-sil.pp
![Page 39: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/39.jpg)
Puppet: Manifests - Ordering package { 'openssh-server': ensure => present, before => File['/etc/ssh/sshd_config'], } file { '/etc/ssh/sshd_config': ensure => file, mode => 600, source => 'puppet:///modules/sshd/sshd_config', } service { 'sshd': ensure => running, enable => true, subscribe => File['/etc/ssh/sshd_config'], }
sshd_config değişikliklerini
işlemeden önce ssh paketinin kurulu
olduğundan emin ol.
Bu dosyada değişiklik yaparsan ssh servisini restart
et.
![Page 40: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/40.jpg)
Puppet: VariablesPuppet scriptleri içerisinde değişkenler tanımlayabilir; built-in değişkenleri (facts) kullanabilirsiniz.
$longthing = "BURADA-SSH-KEY-VAR" file {'authorized_keys': path => '/root/.ssh/authorized_keys', content => $longthing, }
![Page 41: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/41.jpg)
Puppet: Facts● Önceden tanımlanmış built-in değişkenler:file {'motd':
ensure => file,path => '/etc/motd',
mode => 0644, content => "IP: ${ipaddress}, FQDN: ${fqdn} OS: ${operatingsystem} Version: ${operatingsystemrelease} Puppet Version: ${puppetversion}. ", }
![Page 42: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/42.jpg)
Puppet: Facter● Fact’leri toplamak için kullanılan Puppet Tool’u# facterarchitecture => x86_64bios_vendor => Phoenix Technologies LTDbios_version => 6.00blockdevice_sda_model => VMware Virtual Sblockdevice_sda_size => 5368709120blockdevice_sda_vendor => VMware,boardmanufacturer => Intel Corporationdomain => crom.labfacterversion => 1.7.5filesystems => ext4,iso9660fqdn => puppetmaster01.crom.labhardwareisa => x86_64……...
![Page 43: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/43.jpg)
Puppet: Conditionals StatementsIF kullanımı:
if is_virtual => “true’ { --> Facter variable service {'ntpd': ensure => stopped, enable => false, } } else { service { 'ntpd': name => 'ntpd', ensure => running, enable => true, hasrestart => true, require => Package['ntp'], } }
![Page 44: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/44.jpg)
Puppet: Conditionals StatementsCase kullanımı:
case $operatingsystem { centos, redhat: { $apache = "httpd" } debian, ubuntu: { $apache = "apache2" } default: { fail("Unrecognized operating system for webserver") } } package {'apache': name => $apache, ensure => latest, }
![Page 45: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/45.jpg)
Puppet: Classes❖ Puppet yapılandırmalarını parçalara bölmek
için kullanılan kod blokları.
❖ Amaç tanımlamaların okunaklı ve anlaşılır olmasını sağlamaktır.
❖ Tanımlanan class’lar manifest dosyaları içerisinden isimleri ile çağırılabilirler (include).
![Page 46: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/46.jpg)
Puppet: Classes (2)
class add_my_user {
user { 'crom':
ensure => present,
uid => '507',
gid => 'wheel',
shell => '/bin/bash',
home => '/home/crom',
managehome => true,
}
}
include add_my_user
Define
Declare
# vi /etc/puppet/manifests/site.pp
![Page 47: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/47.jpg)
Puppet: Modules❖ Puppet scriptlerini ve dosyalarını hiyerarşik bir
düzende tutmaya yarayan “dizin”’lerdir.
❖ Örneğin SSHd ve NTP servislerini yöneten manifest’ler birbirlerinden ayrı modüller olarak tutulabilir.
❖ Default module dizini: /etc/puppet/modules/
![Page 48: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/48.jpg)
Puppet: Modules - Dizin Yapısı (1)Module dizinlerinde üç önemli altdizin bulunur.- /etc/puppet/modules/common/manifestsBu dizinde .pp uzantılı manifest dosyaları ve bunların include edildiği init.pp isimli ana manifest dosyası bulunur.
-rw-r--r-- 1 root root 200 Mar 25 17:12 add-users.pp
-rw-r--r-- 1 root root 69 Mar 25 20:25 init.pp
-rw-r--r-- 1 root root 162 Mar 25 20:24 motd.pp
-rw-r--r-- 1 root root 239 Mar 25 20:18 sudoers.pp
![Page 49: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/49.jpg)
Puppet: Modules - Dizin Yapısı (2)❖ init.pp dosyasında modül ile aynı isimli bir class bulunur,❖ Dizindeki diğer .pp dosyalarında tanımlı class’lar, bu default
class içerisinden include edilir.
# vi /etc/puppet/modules/common/manifests/init.pp.class common {
include add-users
include sudoers
include motd
}
![Page 50: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/50.jpg)
Puppet: Modules - Dizin Yapısı (3)- /etc/puppet/modules/common/files
❖ Bu dizinde tarif edilen yapılandırma için gerekli olan static conf dosyaları bulunur. (örn: sudoers)
❖ Master / Agent mode’da, dosyalar manifest’ler / class’lar içerisinden puppet:///modules/isim/conf_dosyasi şeklinde çağırılır:
file { '/etc/sudoers':
ensure => file,
mode => 440,
source => "puppet:///modules/common/sudoers",
}
![Page 51: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/51.jpg)
Puppet: Modules - Dizin Yapısı (4) class ntp { case $operatingsystem { centos, redhat: { $conf_file = 'ntp.conf.el' } debian, ubuntu: { $conf_file = 'ntp.conf.debian' } }
file { 'ntp.conf': path => '/etc/ntp.conf', ensure => file, require => Package['ntp'], source => "puppet:///modules/sshd/${conf_file}" }
RHEL tabanlı conf
Debian tabanlı conf
/etc/puppet/modules/ntp/files/ntp.conf.*
![Page 52: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/52.jpg)
Puppet: Modules - Dizin Yapısı (5)- /etc/puppet/modules/common/templates
❖ Templates dizininde, dinamik içerikli conf dosyaları tutulur.❖ .erb uzantılıdırlar.❖ Çok sayıda static conf dosyası oluşmasını önlemek içindir.
file { 'ntp.conf':
path => '/etc/ntp.conf',
ensure => file,
require => Package['ntp'],
content => template("ntp/ntp.erb"),
}
/etc/puppet/modules/ntp/templates/ntp.erb
![Page 53: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/53.jpg)
Puppet: Modules - “Puppet Forge”❖ Kendi modüllerinizi yazabileceğiniz gibi,
başkalarının yazdığı modülleri de kurabilirsiniz.
❖ Puppet Forge Open Source Modül Reposu’dur.http://forge.puppetlabs.com/
# puppet module install puppetlabs-mysql
# puppet module list
![Page 54: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/54.jpg)
Puppet: Nodes (1) Hangi manifest, class ya da module’lerin hangi client’larda çalıştırılacağı “node” kod bloğu içerisinden belirtilir.
# vi /etc/puppet/manifests/site.pp
node 'www1.example.com' { include common include apache include squid } node 'db1.example.com' { include common include mysql }
![Page 55: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/55.jpg)
Puppet: Nodes (2) ❖ Birden fazla node’u aynı block içinde tanımlayabilirsiniz:
node 'www1.example.com', 'www2.example.com' { include common include apache, squid}
❖ Regex kullanabilirsiniz:
node /^(foo|bar)\.example\.com$/ { include common}
![Page 56: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/56.jpg)
Son OlarakOtomatikleştirilebilecek hiç
bir şeyi hiç bir zaman manual yapmayın….
![Page 57: linuxakademi.com.tr Puppet ile Linux Sistem …...sshkeys: SSH Key'lerinin yönetimi Tam Liste: augeas computer cron exec file filebucket group host interface k5login macauthorization](https://reader030.vdocuments.site/reader030/viewer/2022040505/5e3d07c11b94ee3a074dade1/html5/thumbnails/57.jpg)
Teşekkürler