Kukla sertifikalarını nasıl önceden imzalayabilirim?


26

Kukla , yönetilen müşteri (kukla) ile sunucu (kuklacı) arasındaki sertifikaları gerektirir. İstemcide manuel olarak çalışabilir ve ardından sertifikayı imzalamak için sunucuya gidebilirsiniz, ancak bu işlemi kümeler / bulut makineleri için nasıl otomatik hale getirirsiniz?


1
Bir köşe durumu sorunu, bir ana bilgisayar adını yeniden kullandığınızda ortaya çıkar. Otomatik işaretleme bunu çözmez. Aynı sorunu yaşıyorum.
Joel K,

Yanıtlar:


28

Sunucuda (kuklacı) çalıştırın:

puppetca --generate <NAME>

Ardından aşağıdakileri sunucudan istemciye kopyalayın:

/var/lib/puppet/ssl/certs/<NAME>.pem
/var/lib/puppet/ssl/certs/ca.pem
/var/lib/puppet/ssl/private_keys/<NAME>.pem

Ana <NAME>bilgisayar adı kullanımından başka bir şey olarak imzalamak istiyorsanız :

puppetd --fqdn=<NAME>

Daemon kullanıyorsanız /etc/puppet/puppet.conf dosyasına ekleyin.

[puppetd]
certname=<NAME>

Bu gerçekten yararlı, teşekkürler. Kendim üzerinde kafa karıştırıyordum.
Jon Topper,

1
Yeni komut puppet cert --generate <NAME>bkz serverfault.com/a/457364/71452
c33s

6

Bir ana bilgisayar veritabanınız varsa, autosign özelliğini kullanabilirsiniz. Senin içinde puppet.confdosyasında [puppetmasterd]ekleyin:

autosign = /path/to/autosign.conf

Sonra bu dosyayı oluşturmak için bir crontab kullanın. Otomatik işaretleme dosyası, kuklacıya ilk bağlandığında otomatik olarak işaretlenecek ana bilgisayarların bir listesidir. Kukla konaklarımı yapılandırmak için LDAP kullanıyorum, böylece cronum şöyle görünüyor:

* * * * * root /usr/bin/ldapsearch -x '(objectClass=puppetClient)' cn | /bin/grep ^cn | /bin/sed 's!^cn: !!' > /etc/puppet/autosign.conf

Eminim iClassify kullanan insanlar aynı şeyi yapmak için bir sorgu yazabileceklerdir.

Tabii ki, ağa biraz güvenmeniz gerekir. Bunu EC2'de kullanıyorum. Puppetmaster sunucum yalnızca diğer güvenilir gruplardan bağlantılara izin veren bir grupta. Kukla yöneticiniz internete açıksa bunu yapmayı tavsiye etmem.


6

Basit cevap: otomatik olarak yeni istekleri imzala. Elbette bu tehlikelidir, çünkü kukla yöneticinize bağlanan herhangi bir sisteme kör güveniyorsunuzdur, ki bu manuel imzalamayı zorunlu kılar.

[puppetmasterd]
autosign = true

Hangi anahtarların imzalanacağını belirlemek için false ve kullanılacak bir dosya belirleyebilirsiniz.

Kukla wiki'deki yapılandırma referansına bakın .

Başka bir seçenek de , kuklacı düğümünü belirlediğiniz ve istemci örnek düğümlerini oluşturduğunuz ve görevde bulunan Capistrano gibi bir araç kullanmaktır :

  • Örnek düğümünü oluşturun, EC2'nin Ruby ile API'sı ile söyleyin.
  • Örneğe kuklacı çalıştırın, sunucuya bağlanın.
  • Puppetca komutunu çalıştırın - örneğin isteğini yerine getirin (yukarıdaki oluşturma bitinde verilen örnek adını bildiğimizden beri).
  • Örneğe kuklacı tekrar çalıştırın, bu sefer sertifika imzalanırken başarıyla bağlandı.

Not: Puppet 2.6 veya üstünü kullanıyorsanız, [puppetmasterd]bölüm başlığı şimdi olmalıdır [master]. Daha fazla bilgi için docs.puppetlabs.com/guides/tools.html adresini ziyaret edin.
MrLore

4

Sunucuda (kuklacı) çalıştırın:

puppetca --generate <NAME>

Ardından aşağıdakileri sunucudan istemciye kopyalayın:

/var/lib/puppet/ssl/certs/<NAME>.pem
/var/lib/puppet/ssl/certs/ca.pem
/var/lib/puppet/ssl/private_keys/<NAME>.pem

Ana bilgisayar adı kullanımından başka bir şey olmasını istiyorsanız:

puppetd --fqdn=<NAME>

Daemon kullanıyorsanız /etc/puppet/puppet.conf dosyasına ekleyin.

[puppetd]
certname=<NAME>

Bu sadece benim için daha karmaşık görünüyor. İstemciye kukla yüklerseniz, bir sertifika oluşturur ve imzalanması için master'a gönderir. Master'da imzaladığınızda, istemci bir dahaki çalıştırmada çalışmaya başlayacaktır. Bu daha az adım içerir. Bu adımı bile kurtarmak istiyorsanız, şunun gibi bir şey yapan bir cron işi yapabilirsiniz: host için $ (puppetca --list); kuklaca yapmak - $ host atayın; bitmiş
David Pashley

1
Bir veya iki makineniz varsa, bu iyi bir şeydir, ancak buluttaki makineleri başlatıp durdurduğunuzda bunu manuel olarak yapmak istemezseniz, bir temel makineyi çalıştırabilirim, içeri giren ve her şeyi ayarlayan bir komut dosyası çalıştırabilirim. Kukla ustasına giriş yapmak zorunda kalmadan kukla aracılığıyla.
Ranguard
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.