kukla - nodes.pp'de joker karakter barındırıcısını tanımlayın


10

Puppetmaster'ın nodes.pp dosyasında joker karakter barındırıcılarını tanımlamanın bir yolu var mı?

bir etki alanındaki tüm ana bilgisayarlar bir sınıf kümesi almak istiyorum demek gibi bir şey yapabilirim:

# nodes.pp
#

node basenode {
  include  admina, adminb, admic
  }


node "*.acme.com" {
    include adminc
    }

Yanıtlar:


9

Bu şekilde olmaz. İmzalı herhangi bir istemciye uygulanacak 'varsayılan' bir düğüm oluşturabilirsiniz.

node "default" {
   include foo
}

Ancak yalnızca 1 varsayılana sahip olabilirsiniz. Açıkladığınız işlevi çoğaltmak istiyorsanız, external_nodes sınıflandırma yöntemini kullanabilirsiniz. Temel olarak, bir istemci bağlandığında geçerli yaml döndüren bir komut dosyası yazarsınız. Bu komut dosyası istediğiniz gibi yapabilir, fqdn'yi kontrol edebilir, bir db'yi sorgulayabilir, ldap'ye vurabilir vb.


+1 external_nodes ile aynı
fikirde

16

Kukla 0.25'te düzenli ifadeler artık mümkün, bu yüzden istediğiniz şey mümkün olacak:

node /^(foo|bar)\.example\.com$/ {
include blah
}

3

Birkaç dağıtım henüz 0.25 gemi, bu yüzden EPEL repo 2.24.8 sahip Centos5 benim wn10.example.com gibi ana bilgisayar adları ile çalışan düğümler için böyle bir şey yapmak zorunda kaldı:

node  default {
    $node_type = regsubst($hostname, '^([a-z]+).*$', '\1')
    case $node_type{
        wn: {include worker_node}
        default: {include generic_node}
    }
}

Hızlı güncelleme - kukla-2.6.12-1.el5.noarch artık EPEL'den edinilebilir (düğüm adlarında normal ifadeleri destekler).
plasmid87
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.