我在对结构部署脚本进行一些更改时遇到问题。我们正在从使用容易损坏的 NFS 挂载来托管我们的静态媒体转换为使用单独的 Web 服务器来托管和处理我们所有的静态媒体。
目标是,无论我们部署的环境(测试、产品等)如何,upload_static_content 命令都只会在静态媒体服务器上运行。现在,如果我们运行fab test upload_static_content
一切都可以完美运行。静态内容最终出现在正确目录中的正确服务器上。但是,如果我们运行fad test deploy
静态内容,最终会出现在测试网络服务器上,而不是预期的服务器上。
def test():
...
env.hosts=testhosts
def prod():
...
env.hosts=prodhosts
def deploy():
# Do some deployment stuff
...
upload_static_content()
...
@hosts([static_server,])
@run_once
def upload_static_content()
# Upload static content to a different server
...