Kukla, başınızı döndürmek için biraz canavar, bu yüzden örnek olarak öğrenmek kötü bir şey değil. Aşağıda modülleri kullandığınızı varsayıyorum - eğer değilseniz veya modülü bir araya getirme konusunda daha fazla ayrıntıya ihtiyacınız varsa lütfen bir yorumda söyleyin.
Diyelim ki yeni bir modül başlattınız mymodule. Kukla ana dizinindeki kukla ana dizininde (genellikle /etc/puppet) modül bildirimlerini ve dosya dizinini oluşturmalısınız:
mkdir -p modules/mymodule/manifests
mkdir -p modules/mymodule/files
Ardından bu dizinde şu adlı bir dosya oluşturun init.ppve şunu girin:
class myfile {
file { '/home/operator1/Desktop/Backup':
ensure => directory,
mode => '0755',
owner => 'operator1',
group => 'operator1',
}
file { "/home/operator1/Desktop/Backup/datas.xls":
mode => "0644",
owner => 'operator1',
group => 'operator1',
source => 'puppet:///modules/module_name/datas.xls',
}
}
Sonra datas.xlsdosyayı modülün filesdizinine yerleştirin - bu örnekte modules/mymodule/files/. ( Şablonlartemplates için de bir dizin olabileceğini unutmayın ).
Gelen manifests/site.ppdosyanın gibi bir şey yaparak sınıfını modülü almak ve dahil etmek gerekir:
import 'mymodule'
node base {
include myfile
}
node server1 inherits base {}
node server2 inherits base {
# extra config here
}
Tüm düğümlerinizin tabandan miras aldığından ve yapmanız gereken tek şey bu olduğundan emin olun. Kukla 0.25'ten itibaren düğüm adında normal ifadeler kullanabilirsiniz, örneğin:
node server[0-9] inherits base {}
Daha fazla açıklamaya ihtiyacınız varsa yorumlarda bana bildirin.
Bir istemciyi kukla ustasıyla konuşacak şekilde ayarlama
İstemcide şunları yapmanız gerekir:
sudo apt-get install puppet
Daha sonra düzenleme /etc/default/puppetve değişim START=noiçin START=yes.
Ayrıca , kukla ustasını nerede bulacağını söylemek /etc/puppet/puppet.confiçin [main]bölümü düzenleyin ve ekleyin :
server=puppet.mydomain.com
Sonra ile bir test çalışması yapabiliriz sudo puppetd --test. Önemli hatalarla karşılaşırsanız, kukla ana sunucusuna gitmeniz ve istemci anahtarını imzalamanız gerekebilir. Tam adı kontrol etmek için sudo puppetca --listve sonra sudo puppetca --sign server1.mydomain.com(veya liste komutundan sunucu adı ne olursa olsun) yapabilirsiniz.
Şimdi kukla servisini ile başlatınız ve sudo service puppet startuzakta olmalısınız. Kukla servisi her saat çalışacaktır, bu nedenle kukla tariflerinizi güncellerseniz tüm müşterileriniz de güncellenecektir.
Dosyaları Silme
Orijinal soruda, dosyaların nasıl silineceğini bilmek istediğinizi not ediyorum. Düzenleyebilir ediyorum manifests/init.ppolmak
file { "/home/operator1/Desktop/Backup/datas.xls":
ensure => absent,
}
Diğer faydalı ipuçları
Eğer sorun yaşıyorsanız yapabileceğiniz birkaç şey var. Kukla yüklü herhangi bir makinede sözdiziminizi çalıştırarak kontrol edebilirsiniz.
puppet --parseonly --ignoreimport myfile.pp
veya --ignoreimportbayrağı alarak tüm partiyi kontrol edin , ancak bu gerçekten bulduğum hata olmayan bazı komik hata mesajlarına yol açabilir. Ayrıca, aşağıdakileri yaparak bir kukla istemci makinesinde canlı kukla çalıştırabilirsiniz:
sudo puppetd --test
hatalar ve uyarılar farklı renklerle vurgulanmış çeşitli yararlı çıktılar gösterir. Daha da fazla ayrıntı istiyorsanız koşabilirsiniz:
sudo puppetd --test --debug
ancak bu genellikle o kadar çok çıktı üretir, bu yüzden geçmesi zordur, bu yüzden sadece önceki adımları denediyseniz ve sıkışıp kalırsanız ve her şeyin yapıldığını görmeniz gerekiyorsa yapın.
Bunun şu anda işte kullandığım kukla 0.25.x'e dayandığını ve ayrıca Ubuntu 10.04'teki sürüm olduğunu unutmayın. Ana bölümdeki kukla kodu kesinlikle işe yarayacaktır, ancak kuklanın sonraki sürümlerinde çıktıları hata ayıklamaya yardımcı olabilecek yeni bayraklar bulunmaktadır.