Kukla ustası kullanarak dosyaları tüm makinelere nasıl kopyalayabilirim?


12

Ubuntu 11.04'te puppetmaster kurdum ve tüm müşterilerime kukla kurdum. Tüm kukla müşterilerime kukla ustasıyla katıldım. Tüm bu kukla istemcilerine kukla yöneticisinden bir dosya kopyalamak mümkün müdür?

Örneğin:

Masaüstümde (Kukla Yöneticisi) datas.xls adlı bir dosya var. Bu dosyaları aşağıdaki konumdaki (/ home / operator1 / Desktop / Backup /) tüm kukla istemcilerime nasıl kopyalarım?

Güncelleme:

  • Merhaba, hala dosya paylaşılmıyor.
  • puppet:///modules/module_name/datas.xlsKopyalanacak dosya bu konumun altında bu satırı nasıl değiştirebilirim /etc/puppet/modules/mymodule/manifests/datas.xls?

İstemci Hatası: (Çözüldü)

root@testing:~# puppetd --test 
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class sudo at /etc/puppet/manifests/site.pp:2 on node testing.chn.jd.com
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

İstemcide Hata 2:

root@tme13:~# puppetd --test
err: Could not run Puppet configuration client: Could not retrieve local facts: bad URI(is not URI?): http://169.254.169.254/2008-02-01/meta-data/<HTML><HEAD><TITLE>HTTP access denied</TITLE></HEAD><BODY><img src/

Yeni güncelleme:

Bu modül tüm düğümlere nasıl uygulanır? Böylece dosya tüm düğümlere kopyalanacaktır.


... ama bu soruyu sormadın mı? askubuntu.com/questions/61080/…
fossfreedom

Evet ama çözüm artık çalışmıyor.
karthick87

Ayrıca çok net değil, kullanıcı sadece bazı web sitelerinden içeriği kopyaladı.
karthick87

Hala yeni bir soru sormak için bir neden değil (?) Btw Jorge bana verdi bir bağlantıdan kopyaladım ve bana c / p söyledi;) afaik o cevapta ne hala çalışıyor !?
Rinzwind

İşte başka bir referans: serverfault.com/questions/200101/…
Rinzwind

Yanıtlar:


25

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.


Bu gece bu çözümü deneyeyim ve güncellemeleri size bildireyim. Çok teşekkürler :)
karthick87

puppet:///modules/module_name/datas.xlsKopyalanacak dosya bu satırda nasıl değiştirileceği bu konumun altında/etc/puppet/modules/mymodule/manifests/datas.xls
karthick87

Kopyalanacak dosya konulmalıdır /etc/puppet/modules/mymodule/files/datas.xls- Cevabı daha net olacak şekilde güncelleyeceğim.
Hamish Downer

Oke teşekkür ederim. manifestolar nasıl çalıştırılır?
karthick87

Bu modül kukla yöneticisinin tüm düğümlerine nasıl uygulanır? puppet agent --test
Koşarak
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.