2014-06-25 8 views
8

Wir haben folgende Muster in der Serververwaltung - alle Benutzer haben ihre eigenen Benutzer, aber die Bereitstellung wird vollständig von speziellen Deploy-Benutzer durchgeführt, ohne direkte Login-Möglichkeit.Permanent Benutzer in Capistrano 3 (separate Autorisierung & Bereitstellung)

Wir haben dieses Verfahren in Capistrano 2.x:

default_run_options[:shell] = "sudo -u deploy bash" 

$ cap stage deploy -s user=thisisme 

Ich bin mir bewusst, dass Capistrano 3.x Methode direkt wechseln Benutzer hat:

task :install do 
    on roles(:all) do 
     as :deploy do 
      execute :whoami 
     end 
    end 
end 

Aber dieser Code alle füllen Aufgaben und Standardaufgaben erben den Bereitstellungsbenutzer sowieso nicht. Ist es jemals möglich, den Login-Benutzer direkt einzurichten, ohne diesen Code auf jede Aufgabe zu ziehen?

Antwort

6

Da ich keine richtige Antwort erhalten hatte und die Idee nicht selbst hatte, entschied ich, Autoren zu fragen. Capistrano 3.x verwendet SSHKit zum Verwalten von Remoteausführungsbefehlen, and here's their answer:

Sie könnten versuchen, die Befehlszuordnung so zu überschreiben, dass jedem Befehl die gewünschte Sudozeichenfolge vorangestellt wird. https://github.com/capistrano/sshkit/blob/master/README.md#the-command-map

SSHKit.config.command_map = Hash.new do |hash, command| 
    hash[command] = "<<sudo stuff goes here>> #{command}" 
end 

Die Dokumentation sagt „dies nicht klug sein, aber es wäre möglich“. YMMV

Verwandte Themen