我正在尝试在结构中运行部署文件,但我们的应用服务器在需要首先登录的实际服务器之前有防火墙。我怎样才能让织物首先登录?我无法找到有关此问题的文档。
问问题
90 次
2 回答
0
创建一个新的任务和结构角色应该可以解决问题:
from fabric.api import run, task
from fabric.decorators import roles
from fabric.state import env
env.roledefs = {"firewall": ["mybox"]}
@roles("firewall")
@task
def do_stuff_on_firewall_server():
run("some-cmd")
你可以很容易地运行这个命令:
fab do_stuff_on_firewall_server
于 2013-08-21T22:02:49.637 回答
0
如果我理解正确,您不能直接通过 SSH 连接到目标服务器,但您必须先通过 SSH 连接到防火墙,然后才能从防火墙通过 SSH 连接到目标服务器。
在这种情况下,您可以使用 Fabric 的--gateway
命令行选项:
$ fab --gateway=firewall.company.com --hosts=server.company.com sometask
见https://fabric.readthedocs.org/en/1.7/usage/fab.html#cmdoption-g
于 2013-08-22T14:49:40.243 回答