作者每次部署更新都需要進行下列操作:
於是作者寫了一個腳本,可以自動執行ssh以及登陸後的固定操作:
#!/bin/bash
ssh -i "webapp.pem" [email protected] << EOF
cd /var/www/webapp/
echo "Switching to www-data user"
sudo -Hu www-data bash
echo "Pulling Latest Changes"
git pull
echo "Activating Virtual Environment"
source venv/bin/activate
echo "Installing any new libraries"
pip install -r requirements.txt
echo "Migrating Database"
python manage.py migrate
echo "Returning back to Ubuntu user"
exit
echo "Restarting Supervisor and Nginx"
sudo service supervisor restart
sudo service nginx restart
echo "Deployment Finished"
EOF
上述代碼的關鍵就是在兩個EOF之間,你可以ssh登陸後寫自己需要的操作。