以前不知道有Fabric工具,每次發佈程序到服務器上的時候,基本流程:本地打包程序 -> Ftp上傳 -> 停服務器Apache -> 覆蓋文件 -> 啓動Apache, 很是繁瑣。python
前幾天無心發現了Fabric工具,研究了一下,如今我經過該工具發佈程序只要一條指令便可:apache
fab pack deploy
具體如何實現的,請看實例,你只須要在你的程序跟目錄下添加fabfile.py文件,內容參考以下:npm
#!/usr/bin/env python from fabric.api import * # Configure user, private key, etc. for SFTP deployment env.user = 'root' env.hosts = ['SERVER IP'] def pack(): local('npm run build', capture=False) local('python setup.py sdist --formats=gztar', capture=False) def deploy(): dist = local('python setup.py --fullname', capture=True).strip() # clean up sudo('rm -rf /tmp/towerres /tmp/towerres.tar.gz') put('dist/%s.tar.gz' % dist, '/tmp/towerres.tar.gz') # stop apache run('apachectl stop') # remove priouse folder run('rm /home/maplye/httpd/towerresource/towerres -rf') run('rm /home/maplye/httpd/towerresource/migrations -rf') # copy run('mkdir /tmp/towerres') with cd('/tmp/towerres'): run('tar zxf /tmp/towerres.tar.gz') run('cp -rf /tmp/towerres/%s/towerres /home/maplye/httpd/towerresource/' % dist) run('cp -rf /tmp/towerres/%s/migrations /home/maplye/httpd/towerresource/' % dist) # run with cd('/home/maplye/httpd/towerresource'): run('chown -R apache:apache towerres') run('python manage.py db upgrade') # start apache run('apachectl start') # clean up sudo('rm -rf /tmp/towerres /tmp/towerres.tar.gz')
具體參照官網: http://www.fabfile.org/api
中文文檔: http://fabric-docs-cn.readthedocs.org/zh_CN/latest/服務器