django fabric设置部署主机
我想部署我的代码在本地主机和我的活动版本为此自动化我使用结构。我的基本结构文件如下所示:django fabric设置部署主机
def localhost(): "Use the local virtual server"
env.hosts = ['127.0.0.1']
env.user = 'user'
env.path = '/var/www/html/{}'.format(env['project_name'])
env.virtualhost_path = env.path
def webserver():
"Use the actual webserver"
env.hosts = ['www.example.com']
env.user = 'username'
env.path = '/var/www/html/{}'.format(env['project_name'])
env.virtualhost_path = env.path
def setup():
require('hosts', provided_by=[localhost])
require('path')
sudo("apt-get update -y")
sudo("apt-get install git -y")
sudo("apt-get install postgresql libpq-dev python-dev python-pip -y")
sudo("apt-get install redis-server -y")
sudo("apt-get install nginx -y")
sudo('aptitude install -y python-setuptools')
sudo('apt-get install python-pip')
sudo('pip install virtualenv virtualenvwrapper')
现在我只想部署到本地计算机。当我这样做,它给了我错误的说
The command 'setup' failed because the following required environment variable was not defined: hosts
Try running the following command prior to this one, to fix the problem:
localhost
什么provided_by=([localhost])
在这里做。我想它应该提供像本地主机和用户一样的信息。
为什么我得到这个错误? 需要帮助
回答:
我不知道为什么这不起作用,除非在文档中没有提及主机列表如何构建。您设置的主机值选项包括:
- 指定
env.hosts = ['127.0.0.1']
在全球范围内的fabfile - 通过主机来FAB:
fab -H 127.0.0.1 setup
- 呼叫本地主机任务:
fab localhost setup
- 使用@hosts装饰你的设置功能
见http://docs.fabfile.org/en/1.10/usage/execution.html#how-host-lists-are-constructed
回答:
fabric.operations.require(*键,** kwargs):
检查在共享环境字典给出的按键和中止如果没有 发现...可选关键字参数provided_by可能是一个列表功能或功能名称或用户应该能够执行的单个功能或功能名称,以便设置一个或多个键;如果不符合要求,它将包含在错误输出中。
http://docs.fabfile.org/en/1.10/api/core/operations.html?highlight=require#fabric.operations.require
这就是为什么你会得到错误信息,说跑localhost
,再setup
:
fab localhost setup
以上是 django fabric设置部署主机 的全部内容, 来源链接: utcz.com/qa/258879.html