我有一个django应用程序,我写了一个结构脚本,在部署服务器(Cent OS 5)上安装我的应用程序.
现在我想在部署服务器上本地运行相同的结构脚本.
有没有办法在不提供ssh用户和密码的情况下执行此操作?
我的意思是只用"-H localhost"?
谢谢,Alex A.
Var*_*tta 78
是的,您可以使用local而不是run方法在本地运行fab .我所做的通常是设置环境的方法,并在调用实际任务之前先调用这些方法.让我用一个例子来说明你的具体问题
from fabric.operations import local as lrun, run
from fabric.api import task
from fabric.state import env
@task
def localhost():
env.run = lrun
env.hosts = ['localhost']
@task
def remote():
env.run = run
env.hosts = ['some.remote.host']
@task
def install():
env.run('deploymentcmd')
Run Code Online (Sandbox Code Playgroud)
根据环境,您可以执行以下操作
在localhost上安装:
fab localhost install
Run Code Online (Sandbox Code Playgroud)
在远程机器上安装:
fab remote install
Run Code Online (Sandbox Code Playgroud)
我正在使用另一个技巧在本地执行远程任务:
from fabric.api import run, sudo, local
from contextlib import contextmanager
@contextmanager
def locally():
global run
global sudo
global local
_run, _sudo = run, sudo
run = sudo = local
yield
run, sudo = _run, _sudo
def local_task():
with locally():
run("ls -la")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15981 次 |
最近记录: |