0

我正在尝试在结构中运行部署文件,但我们的应用服务器在需要首先登录的实际服务器之前有防火墙。我怎样才能让织物首先登录?我无法找到有关此问题的文档。

4

2 回答 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 回答