配置EC2的结构。

| 我正在尝试创建fabfile.py,以便可以在EC2上进行部署。我的fabfile.py中包含以下内容:
from __future__ import with_statement
from fabric.api import *


def ec2():
    env.hosts = [\'111.111.111.111\'] 
    env.user = \'ubuntu\'
    env.key_filename = \'/path/to/my/pem/key.pem\'

def run_ls():
    run(\'ls -alt\')
\'111.111.111.111 \'是我的实例的弹性IP,并且我始终使用ubuntu而非root登录。 当我运行以下命令
fab ec2 run_ls
我看到以下输出:
[111.111.111.111] Executing task \'run_ls\'
[111.111.111.111] run: ls -alt

Fatal error: Host key for 111.111.111.111 did not match pre-existing key! Server\'s key was changed recently, or possible man-in-the-middle attack.

Aborting.
不知道发生了什么,但是我找不到在ec2上使用Fabric的出色教程,而且我不知道这是怎么可能的。 谢谢 更新: 好像
env.hosts = [\'111.111.111.111\'] 
无效,您需要使用实际的网址
env.hosts = [\'mywebsite.com\'] 
解决了我的问题     
已邀请:
        确保您的弹性IP已附加到实例。我认为key_filename只接受一个参数,但是当您传入数组时,我的却在工作:
env.user = \"ubuntu\"
env.key_filename = [\"my_key.pem\",]
也许您应该尝试使用实例的公共主机名,例如:
env.roledefs.update({
    \'prod\': [\'ec2-52-14-72-225.us-west-1.compute.amazonaws.com\'],
})
    
        您也可以使用'--disable-known-hosts \'开关忽略此错误。     
        在GitHub上的Vagrant问题中,您可能需要使用以下命令从
known_hosts
文件中删除主机:
ssh-keygen -R 111.111.111.111
    

要回复问题请先登录注册