2014-06-25 13 views
8

Chúng tôi đã theo mô hình quản lý máy chủ - tất cả người dùng có sử dụng riêng của họ, nhưng triển khai là hoàn toàn được thực hiện bởi người sử dụng triển khai đặc biệt, không ai có thể đăng nhập trực tiếp.vĩnh viễn chuyển sang dùng trong Capistrano 3 (ủy quyền riêng & triển khai)

Chúng tôi sử dụng phương pháp này trong Capistrano 2.x:

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

$ cap stage deploy -s user=thisisme 

Tôi biết rằng Capistrano 3.x có phương pháp để chuyển đổi sử dụng trực tiếp:

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

Nhưng mã này sẽ lấp đầy tất cả nhiệm vụ, nhiệm vụ mặc định sẽ không kế thừa sử dụng triển khai anyway. Có bao giờ có thể thiết lập người dùng đăng nhập trực tiếp mà không kéo mã này vào mỗi công việc?

Trả lời

6

Kể từ khi tôi đã không nhận được câu trả lời thích hợp và không có ý tưởng bản thân mình, tôi quyết định hỏi tác giả. Capistrano 3.x sử dụng SSHKit để quản lý các lệnh thực thi từ xa, and here's their answer:

Bạn có thể thử ghi đè bản đồ lệnh sao cho mỗi lệnh được bắt đầu bằng chuỗi sudo mong muốn. 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 

Tài liệu nói "điều này có thể không khôn ngoan, nhưng có thể". YMMV

Các vấn đề liên quan