2011-12-05 14 views
6

'un nasıl kullanıldığını konuşlandırıyor Capistrano'yu sunucu kurulumumuz için çalışacak şekilde yapılandırmaya çalışıyorum. Symfony projelerini uyguluyoruz, ben de capifony kullanıyorum. Hala izinlerle ilgili bazı sorunlar yaşıyorum.Capistrano, use_sudo ve admin_runner

Sunucumuzda her proje bir proje kullanıcısı olarak çalışır, bu nedenle her projenin kendi kullanıcısı vardır. Bu yüzden, use_sudo öğesini yapılandırdım ve bunu true olarak ayarladım ve admin_runner'ı projenin kullanıcısı olacak şekilde yapılandırdım. Ama yine de işe yaramadı, bu yüzden normal çalışma yerine try_sudo kullanmaya başlamak için capifoni'yi değiştirdim. Hangisini biraz daha iyi yaptı. Ama bu durumda ne kullanacağım konusunda biraz kafam karıştı. Try_sudo, sudo ve koştun. Ama hangi kullanım durumu için gereklidir? Eğer run kullandığınızda

  • ben hep
  • try_sudo ben olmaz eğer öyleyse o sudo komutunu kullanacağız eğer use_sudo işareti doğru olup olmadığını kontrol edecektir düşünüyorum yerel kullanıcı olacağını düşündüğümüzde Yerel kullanıcıyı kullanın. Eğer admin_runner yapılandırılmış varsa o admin_runner
  • sudo olarak yapılandırılmış kullanıcıya sudo daima sudo çalışacağım olacak

Şimdi benim sorunum dağıtma: bunun yani bu da sıradan bir çalışma komut Sembolik bağ yöntemi Web sitesini görüntülemeye çalıştığımda izin sorunları veren yerel kullanıcı olarak yürütülür.

Yani 3 komutun açıklamasının doğru olup olmadığını bana söyleyebilir misiniz? ve ayrıca admin_runner ve use_sudo'nun nasıl kullanıldığını bilen var mıdır, böylece sembolik link de doğru şekilde (ve ayrıca capistrano tarafından yapılan diğer tüm komutlar) yapılmakta mıdır?

tür Saygılarımızla,

Daan böyle gecikmiş bir yanıt Daan için

+0

Capifony'nin ': use_sudo' veya' admin_runner' ile henüz ilgilenmediğini unutmayın. –

cevap

4

Özür. Capistrano anlayışınız doğrudur. Ayrıca :use_sudo bayrağının varsayılan olarak true olduğunu unutmayın.

_cset(:run_method)  { fetch(:use_sudo, true) ? :sudo : :run } 

ve lib/capistrano/tarifleri/deploy.rb:: Belki

def try_sudo(*args) 
    options = args.last.is_a?(Hash) ? args.pop : {} 
    command = args.shift 
    raise ArgumentError, "too many arguments" if args.any? 

    as = options.fetch(:as, fetch(:admin_runner, nil)) 
    via = fetch(:run_method, :sudo) 
    if command 
    invoke_command(command, :via => via, :as => as) 
    elsif via == :sudo 
    sudo(:as => as) 
    else 
    "" 
    end 
end 

Capistrano'nun 2.11.2 yılında

, sen lib/capistrano/yapılandırma/variables.rb bulacaksınız izin probleminiz sunucunuzu normal kullanıcı olarak çalışıyor, current sembolik bağlantınızın bulunduğu sürüm dizininin içeriğini okuyamıyor mu?