2008-11-29 7 views
19

मैं इस बारे में कैसे जाउंगा?एफ़टीपी के माध्यम से तैनात करने के लिए Capistrano का उपयोग (एक गैर रेल साइट)?

मेरे पास एक अधिक स्थैतिक साइट है, जिसे एक सस्ते वेब-होस्ट पर होस्ट किया जा रहा है, जो केवल होस्टिंग तक एफ़टीपी पहुंच की अनुमति देता है। साइट गिट में ट्रैक किया गया है। मैं ओएस एक्स

उपयोग कर रहा हूँ

मैं बस कर cap deploy

उत्तर

16

हम Capistrano का उपयोग अपनी साइट जो PHP में लिखा है को तैनात करने से साइट का एक नया संस्करण अपलोड करना चाहते हैं।

स्मृति से (मैं अभी काम पर नहीं हूं) हम अधिभार को अधिभारित करते हैं और sftp पर सिंक करने के लिए rsync का उपयोग करते हैं। कुछ इस तरह:

desc "Sync" 
namespace :deploy do 

    desc "Sync remote by default" 
    task :default do 
    remote.default 
    end 

    namespace :remote do 

     desc "Sync to remote server" 
     task :default do 
      `rsync -avz "/path/to/webapp" "#{remote_host}:#{remote_root}/path/to/webapp"` 
     end 
    end 
end 

मुझे यकीन है कि आप जो कुछ भी एक FTP कार्यक्रम के साथ rsync बदल सकते हूँ और यह ठीक काम करना चाहिए।

+5

स्थानीय फाइल सिस्टम के रूप में curlftpfs, rsync के साथ माउंट एफ़टीपी, अनमाउंट: 'curlftpfs एफ़टीपी: // # {लॉगिन}: # {पासवर्ड} @ # {REMOTE_HOST}/path/MNT/mount_point && rsync -ruv - हटाएं/project_path/mnt/mount_point && fusermount -u/mnt/mount_point' – r92

2

मैं Capistrano के साथ इसे करने की कोशिश नहीं की है, लेकिन अपने ही शेल स्क्रिप्ट में, मैं हमेशा

(http://weex.sourceforge.net/)

weex FTP पर साइटों को तैनात करने का उपयोग किया है। कल्पना कीजिए कि आप इसे कैपिस्ट्रानो के साथ भी हैक कर सकते हैं।

यह एफ़टीपी सर्वर की स्थिति का स्थानीय कैश रखता है ताकि यह केवल बदली गई फाइलें अपलोड कर सके। यह अच्छा है, बड़े पैमाने पर चीजों को गति देता है ... लेकिन (जाहिर है?), अगर आपके कोड/अन्य सामान किसी अन्य माध्यम से बदल जाते हैं तो यह गलत हो जाएगा। इसलिए यदि आवश्यकता हो तो ऐसा नहीं किया जा सकता है।

संबंधित मुद्दे