Puppet6 Server/Agent Yapılandırılması
Bu dökümanda Puppet6 ‘da nasıl Server/Agent yapılandırılması yapılır onu öğreneceğiz. Umarım faydalı bir yazı olur.
Puppet Master ve Nodelar arasında iletişimi HTTPS üzerinden (SSL kullanarak) gerçekleştirir. Puppet nodeların doğrulama ve kimliklendirme işlemleri için bu yapıyı kullanır. Çalışma mantığı, nodelar ilk master sunucuya geldiğinde (ilk iletişimde) eğer istek güvenliyse master sunucu nodelar için sertifika oluşturur ve node sertifikayı alır ve master/node arasında iletişim başlamış olur.
#Kurulum Gereksinimleri
. Debian 10
. Puppet6 sunucu > puppetserver.domain.com > 192.168.1.230
. Puppet6 node1 > node1.domain.com > 192.168.1.231
. Puppet6 node2 > node2.domain.com > 192.168.1.232
#Bazı tanımlamaları aşağıdaki gibi çağıracağız.
Sunucu : Puppet Sunucu, Puppet Server, Puppet Master Sunucu, Master, Sunucu
İştemci : Puppet Node, Puppet Client, Node, Client, İstemci
#Tüm test ortamındaki linux makinalar için hosts dosyası düzenlemesi aşağıdaki gibi yapılır.
echo -e "192.168.1.230\tpuppetserver.domain.com\n192.168.1.231\tnode1.domain.com\n192.168.1.232\tnode2.domain.com" >> /etc/hosts
Not : 8140. portunu güvenlik duvarından izin vermeyi unutmayın.
#Sunucu Kurulumu (Master)
wget https://apt.puppetlabs.com/puppet6-release-buster.deb && dpkg -i puppet6-release-buster.deb && apt-get update
apt-get install puppetserver
puppet.conf dosyası aşağıdaki gibi düzenlenir.
vim /etc/puppetlabs/puppet/puppet.conf
[main]
certname = puppetserver.domain.com
server = puppetserver.domain.com
environment = production
runinterval = 1h
[master]
dns_alt_names = puppetserver.domain.com
environment_timeout = unlimited
# puppetserver servisi yeniden başlatılır.
systemctl restart puppetserver
Puppetserver JVM tabanlıdır. Ön tanımlı olarak java başlangıc ve maksimum hafıza ayarları 2Gb olarak ayarlanmıştır. Eğer ki sisteminiz 2Gb ‘dan küçük hafızaya sahipse aşağıdaki gibi hata alacaksınız.
Oct 16 10:35:54 puppetserver puppetserver[5399]: OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000780000000, 2147483648, 0) failed; error='Not enough space' (errno=12)
Oct 16 10:35:54 puppetserver puppetserver[5399]: #
Oct 16 10:35:54 puppetserver puppetserver[5399]: # There is insufficient memory for the Java Runtime Environment to continue.
Oct 16 10:35:54 puppetserver puppetserver[5399]: # Native memory allocation (mmap) failed to map 2147483648 bytes for committing reserved memory
Düzenlemek icin,
Xms: Başlangıç bellek havuzu
Xmx: Maksimum bellek havuzu
vim /etc/default/puppetserver
#Aşağıdaki satırda bulunan -Xms2g ve -Xmx2g kısımları değiştirilir.
JAVA_ARGS="-Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"
Benim sunucumda 1500Mb civarında ram olduğu için asağıdaki gibi bir değişiklik yaptım.
JAVA_ARGS="-Xms512m -Xmx1g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"
Değişiklikleri yaptıktan sonra servis aktif edilip yeniden başlatılır.
systemctl enable puppetserver.service
systemctl restart puppetserver.service
#İstemcilerin Kurulumu
wget https://apt.puppetlabs.com/puppet6-release-buster.deb && dpkg -i puppet6-release-buster.deb && apt-get update
apt-get install puppet-agent
/etc/puppetlabs/puppet/puppet.conf dosyası aşağıdaki gibi düzenlenir.
[main]
certname = node1.domain.com
server = puppetserver.domain.com
environment = production
runinterval = 1h
Değişiklikler yapıldıktan sonra puppet aktif edilip yeniden başlatılır.
systemctl enable puppet.service
systemctl restart puppet.service
Sunucu (Master) ve istemcilerdeki tüm yapılandırılmaları tamamladıysak aşağıdaki komutu master üstünde çalıştırdığımızda ayarladığımız istemcilerin master sunucuya bağlanma isteklerini göreceksiniz.
/opt/puppetlabs/bin/puppetserver ca list #Bu komut ile sadece gelen sertifika istekleri listelenir.
/opt/puppetlabs/bin/puppetserver ca list
Requested Certificates:
node1.domain.com (SHA256) C5:12:30:E0:C8:09:99:07:4A:76:AA:D4:DD:04:FC:2E:10:85:95:DF:A5:49:F2:18:D4:87:AE:D2:8A:4B:F7:31
node2.domain.com (SHA256) 66:67:19:D0:C2:EF:A9:D8:F2:76:74:DA:9E:68:75:8C:CC:11:00:91:73:AD:41:C3:77:16:40:16:20:00:37:56
Yukarıda gelen listede 2 tane imzalanmayı bekleyen node bulunmaktadır.
Gelen isteklerin hepsini imzalamak icin asağıdaki komut kullanılır./opt/puppetlabs/bin/puppetserver ca sign --all
Successfully signed certificate request for node1.domain.com
Successfully signed certificate request for node2.domain.com
Eğer sadece tek bir node için sertifika imzalamak istiyorsak /opt/puppetlabs/bin/puppetserver ca sign –certname node1.domain.com komutu yeterlidir.
#CA alt komutları
. clean # Sertifikayı iptal edip master üstünden siler.
. generate # CA tarafından imzalanmış sertifika üretir.
. import # CA key ve sertifikaları import eder.
. list # Sertifika isteklerini listeler.
. revoke # Sertifikayı iptal eder.
. setup # Puppet sunucusu için root ve intermediate CA üretir.
. sign # Sertifikayı imzalar.
Puppet sunucuya bağlı nodeları görmek için /opt/puppetlabs/bin/puppetserver ca list –all komutunu kullanabilirsiniz.
#Master sunucudan node kaldırmak
/opt/puppetlabs/bin/puppetserver ca clean --certname client3.deneme.com
#Silinen node’un sertifikasını tekrar üretmek
Node üstünde:
systemctl stop puppet.service
rm -rf /etc/puppetlabs/puppet/ssl
systemctl start puppet.service
Master üstünde:
/opt/puppetlabs/bin/puppetserver ca list
Aşağıdaki gibi çıktı alıyorsanız imzalanmaya hazırdır.
Requested Certificates:
client3.deneme.com (SHA256) 73:44:60:1A:54:DC:D2:30:E5:F2:E4:87:ED:C4:57:5D:B8:E4:29:2F:29:C8:B2:08:4B:41:97:CA:C9:DD:CC:9A
Şimdilik bu kadar. Sevgiler.
Comments
Leave a Comment