问题描述
我正在尝试使用 Fabric (python3)。我的删除服务器使用“ksh”外壳,但我需要使用“bash”外壳。我如何使用 Fabric 实现这一目标?
解决方法
我使用名为 FABRIC_RUN_SHELL
的环境变量执行此操作。例如:
export FABRIC_RUN_SHELL=/usr/bin/bash
你也可以直接在你的 fabfile.py 中配置:
@task
def my_task(c):
pass
@task
def my_task2(c):
pass
ns = Collection(my_task)
ns.configure({'run': {'shell': '/usr/bin/bash'}})
还有其他选项,例如从配置文件加载。令人困惑的是,所有细节都在 Invoke configuration docs 中,而不是 Fabric 文档中。 Fabric configuration docs 中提到了您使用 FABRIC_
前缀而不是 INVOKE_
的事实。