python – 嵌套的Fabric连接
发布时间:2020-12-20 13:38:21 所属栏目:Python 来源:网络整理
导读:方案是我们的生产服务器位于私有子网中,其前面有NAT实例,以便通过SSH进行维护.目前我们通过SSH连接到NAT实例,然后通过SSH连接到相应的服务器. 我想要做的是使用NAT作为代理从我的机器运行部署任务,而无需将代码库上传到NAT实例.这可能与Fabric有关,还是我最
方案是我们的生产服务器位于私有子网中,其前面有NAT实例,以便通过SSH进行维护.目前我们通过SSH连接到NAT实例,然后通过SSH连接到相应的服务器.
我想要做的是使用NAT作为代理从我的机器运行部署任务,而无需将代码库上传到NAT实例.这可能与Fabric有关,还是我最终会陷入痛苦的世界? 编辑 为了一点完整性,在我的fabfile.py中: def setup_connections(): """ This should be called as the first task in all calls in order to setup the correct connections e.g. fab setup_connections task1 task2... """ env.roledefs = {} env.gateway = 'ec2-user@X.X.X.X' # where all the magic happens tag_mgr = EC2TagManager(...) for role in ['web','worker']: env.roledefs[role] = ['ubuntu@%s' % ins for ins in tag_mgr.get_instances(instance_attr='private_ip_address',role=role)] env.key_filename = '/path/to/server.pem' @roles('web') def test_uname_web(): run('uname -a') 我现在可以运行fab setup_connections test_uname_web,我可以获得我的Web服务器的uname 解决方法
因此,如果您有更新版本的Fabric(1.5),您可以尝试使用网关选项.我自己从未使用它,但看起来像你想要的.
文档在这里: > env var 此外,如果你遇到任何问题,我们所有人都倾向于在irc闲置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |