python – 为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']

无效,您需要使用实际的URL

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'],})

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...