2012-05-25 20 views
7

Capistrano aracılığıyla uzaktan çalıştırılan komutlarımdan herhangi biri için sudo kullanmak istemiyorum. Spesifik olarak, cap deploy:setup'u çalıştırdığımda, ilk mkdir komutu sırasında sudo şifremi istedim. Deploy.rb dosyasına set :use_sudo, false ekledim, ancak bu bir fark yaratmadı."set: use_sudo, false" ile bile sudo kullanarak Capistrano

Oldukça eksiksiz bir deploy.rb dosyasıyla başladım, ancak bir kez sorun yaşamaya başladım.

# App Definitions 

set :domain, '[server-ip]' 
role :app, domain 
role :web, domain 
role :db, domain, :primary => true 

set :user, "my_app" 
set :use_sudo, false 

task :sudo_test do 
    run "#{try_sudo} whoami" 
end 

benim sudo parola istenmesini içimde cap sudo_test sonuçları çalıştıran: Burada hala use_sudo saygı duyulmadığını göstermektedir benim asgari sürümüdür. Burada neyi özlüyorum (zaten çektiğim saçların yanında)?

tarihinde Bulguları

https://groups.google.com/forum/?fromgroups#!topic/capistrano/QNYnvW8obrg

birisinin benzer bir sorun sahip bir konu. İş parçacığında hiçbir sonuç/çözüm belirtilmedi.

+0

Ya onu çıkarırsan? – sbeam

+0

'# {try_sudo}', ': use_sudo'' false 'olarak ayarlanmışsa, komutu _sudoize_ olmalıdır. 'Sudo_test' dosyasına ekledim çünkü kapistrano rayları görevleri muhtemelen kullanabiliyor ve sorunun büyük olasılıkla olduğu kaynaklanıyor. –

+0

Deploy.rb dosyasında 'sudo -i ' kullanıyoruz. – yeowzir

cevap

4

Görünüşe göre, sudo işlevlerini belirli capistrano görevleriyle devre dışı bırakmak mümkün değildir. Varsayım, sunucudaki ayrıcalıklı olmayan kullanıcının belirli görevleri gerçekleştirememesidir.

Söz konusu komut mkdir'dur. Ayrıcalıklı bir kullanıcının, üst klasörün bunu yapma iznine sahip olması durumunda bu komutu çalıştırabileceğini iddia ediyorum. Ayrıca, kullanıcının aslında root gibi bir ayrıcalıklı kullanıcı olabileceğini de iddia ediyorum. En iyi pratik? Şart değil. Bazı dağıtımlar için sebep çerçevesinde evet.

https://github.com/capistrano/capistrano/issues/211#issuecomment-7667467

+1

: use_sudo, false, mkdir ile benim için çalıştı (konuşlandırma kullanarak: kurulum) – vish

12

bu sorunun nedenini çalışır ve benim gibi bir aptal Başkası için: Burada

benim asıl soruya yanıt bağlantıdır. Yanlış alıntı yapmadığınızdan emin olun. Ben:

set :use_sudo, "false" 

ve ben

bunu açıldığında
set :use_sudo, false 

çoğu şeyi beklediğim şekilde çalışmaya başladı. YWCA Hello'in işaret ettiği gibi, hala use_sudo ayarını yok sayan komutlar var. Ancak, doğru şekilde ayarlamayı unutmayın. Bu # # # try_sudo} biti nedir?

+0

Bir açıklama olarak (capistrano kodunun ilgili kısmını okumadan): "false", yakutta gerçek-ish değeridir. Sadece sıfır ve yanlış yanlış-ish. Başka herhangi bir değer, 0, "", [], doğru olarak kabul edilir. Yani ayar: use_sudo için "false" ayarı ile aynıdır: use_sudo true. –

İlgili konular