मैं git पुश का उपयोग उत्पादन में तैनात करने और स्क्रिप्ट चलाने के लिए git हुक को सेट करने के लिए करता हूं। इस दृष्टिकोण का लाभ यह है कि आप एक ही समय में अपना माइग्रेशन और पैकेज इंस्टॉलेशन भी कर सकते हैं। https://mikeeverhart.net/2013/01/using-git-to-deploy-code/
mkdir -p /home/git/project_name.git
cd /home/git/project_name.git
git init --bare
फिर एक स्क्रिप्ट बनाएं /home/git/project_name.git/hooks/post-receive
।
#!/bin/bash
GIT_WORK_TREE=/path/to/project git checkout -f
source /path/to/virtualenv/activate
pip install -r /path/to/project/requirements.txt
python /path/to/project/manage.py migrate
sudo supervisorctl restart project_name
सुनिश्चित करें कि chmod u+x post-receive
, और sudoers में उपयोगकर्ता जोड़ें। इसे sudo supervisorctl
बिना पासवर्ड के चलने दें । https://www.cyberciti.biz/faq/linux-unix-running-sudo-command-without-a-password/
मेरे स्थानीय / विकास सर्वर से, मैंने सेट किया git remote
है जो मुझे उत्पादन सर्वर पर धकेलने की अनुमति देता है
git remote add production ssh://user_name@production-server/home/git/project_name.git
# initial push
git push production +master:refs/heads/master
# subsequent push
git push production master
एक बोनस के रूप में, आपको सभी प्रॉम्प्ट देखने को मिलेंगे क्योंकि स्क्रिप्ट चल रही है। तो आप देखेंगे कि क्या माइग्रेशन / पैकेज इंस्टालेशन / सुपरवाइजर रीस्टार्ट के साथ कोई समस्या है।
kill -HUP
में PID की प्रक्रिया नहीं करूंगा , लेकिन इसके बजाय पर्यवेक्षक का उपयोग करें। हालांकि यह बहुत परिवर्तन नहीं लगता है।