2011-06-10 16 views
15

Sadece Fabric'a tökezledim ve belgeler gerçekten nasıl çalıştığını açıkça göstermiyor.Kumaşı anlama

Eğitimli tahminim, hem istemci hem de sunucu tarafında yüklemeniz gerektiğidir. Python kodu, istemci tarafında saklanır ve komut çalıştırıldığında Kumaş'ın tel protokolü üzerinden aktarılır. Sunucu, geçerli kullanıcı (veya özel bir kullanıcı veya fab komutuna ana bilgisayar adında belirtilen) için ~/.ssh/authorized_keys dosyası aracılığıyla OpenSSH SSH arka planını kullanarak bağlantıları kabul eder.

Bunlardan biri doğru mu? Değilse, nasıl çalışır?

cevap

16

:

Kumaş Python (2.5 ya da daha yüksek) uygulama dağıtım veya sistem idari görevleri için SSH kullanımını düzene için kütüphane ve komut satırı aracıdır.

Yerel veya uzak kabuk komutlarını (normalde veya sudo aracılığıyla) yürütmek ve dosyaları karşıya yüklemek/karşıdan yüklemek ve ayrıca çalışan kullanıcıyı girişe yönlendirmek veya yürütmeyi iptal etmek gibi yardımcı işlevler için basit bir işlem paketi sağlar.

Yani sadece run()/sudo() içine koyduk komutları bir kutunun içine ssh'ing ve koşma gibi.

kod hiçbir transfer yok, bu yüzden sadece (bash varsayılan olarak kabul edilir) Uzak makine üzerinde çalışan ssh ve kabuk çeşit olması gerekir.

Eğer daha execnet gibi bir şey bakıyoruz bir piton tercüman uzaktan erişim istiyorum.

uzak makine (ler) üzerinde icra dokümanlar this section için göz nasıl çalıştığı hakkında daha fazla bilgi istiyorsanız. Kumaş SSH bağlantısı açtığında

+1

+1'den yapabilirsiniz. Kabul edilen cevabı, daha net, daha dürüst bir cevap ve uzaktan python kod yürütme girişimi yapan başka bir projeye bağlantı sağladığından bu yana değiştirdim! –

3

Çoğu "fabfile.py" dosyada yalnızca istemci üzerinde saklanmasına sahip olması dışında, doğru söylediklerini. Sunucunuza OpenSSH gibi bir SSH sunucusunun kurulması ve istemcinizde bir SSH istemcisinin kurulması gerekir.

Kumaş daha sonra da bir ya da daha fazla sunucu giriş yapar ve "fabfile.py" de tanımlandığı kabuk komutları yürütür. "Fabfile.py" ile aynı direkte bulunuyorsanız, mevcut komutların bir listesini görmek için "fab --list" e gidip "fab [COMMAND_NAME]" komutunu çalıştırabilirsiniz.

Sunucudaki kullanıcının "~/.ssh/authorized_keys" öğesine eklenmesine gerek yoktur, ancak eğer bir komutu çalıştırmak istediğinizde parolayı yazmak zorunda değilsiniz. Dokümanlar

+0

Yani, çok diğer tarafta 'fab' komutu başlattı yoksa sadece normal bir' python' sürecini başlatmak geliyor? –

+0

Tabii ki python da olabilen düzenli kabuk komutlarını başlatıyor. –

+0

Yani, temel olarak, keyfi python kodunu uzaktan çalıştıramıyor, değil mi? –