Python Fabric - 未找到主机。请指定(单个)主机字符串以进行连接:

16 投票
3 回答
18534 浏览
提问于 2025-04-17 20:14

我该怎么处理“没有找到主机。请指定(单个)主机字符串以进行连接”这个问题呢?

我该如何用fabric来解决这个问题?

def bootstrap():
    host = 'ec2-54-xxx.xxx.xxx.compute-1.amazonaws.com'
    env.hosts = [host]
    env.user = "ubuntu"
    env.key_filename = "/home/ubuntu/omg.pem"

> command run
>> fab bootstrap
> No hosts found. Please specify (single) host string for connection: 

3 个回答

3

另外,你可以在函数外部设置环境配置。

from fabric.api import env, run

host = 'ec2-54-xxx.xxx.xxx.compute-1.amazonaws.com'
env.hosts = [host]
env.user = "ubuntu"
env.key_filename = "/home/ubuntu/omg.pem"

def test():
    run('ls -la')
25

你也可以用 env.host_string 来代替 env.hosts:

def bootstrap():
    env.host_string # 'ec2-54-xxx.xxx.xxx.compute-1.amazonaws.com'
    env.user = "ubuntu"
    env.key_filename = "/home/ubuntu/omg.pem"
13

与其在任务内部设置主机,不如在调用之前用装饰器来设置:

from fabric.api import hosts, env

@hosts(['ec2-54-xxx.xxx.xxx.compute-1.amazonaws.com'])
def bootstrap():
    env.user = "ubuntu"
    env.key_filename = "/home/ubuntu/omg.pem"

想了解更多信息,可以查看 定义主机列表 - 根据你的需求,有很多不同的方式可以做到这一点。

撰写回答