[英]Configuring Fabric For 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
我看到以下 output:
[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']
這解決了我的問題
您還可以使用“--disable-known-hosts”開關忽略此錯誤。
確保您的彈性 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'],
})
從GitHub 上的 Vagrant 問題中,您可能需要使用如下命令從known_hosts
文件中刪除主機:
ssh-keygen -R 111.111.111.111
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.