jos*_*iti 11 python deployment ubuntu amazon-ec2 fabric
我正在尝试创建一个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')
Run Code Online (Sandbox Code Playgroud)
'111.111.111.111'是我的实例的弹性ip,我总是用ubuntu登录,而不是root.当我运行以下命令
fab ec2 run_ls
Run Code Online (Sandbox Code Playgroud)
我看到以下输出:
[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.
Run Code Online (Sandbox Code Playgroud)
不知道发生了什么,但我找不到在ec2上使用fabric的任何好的教程,我不知道这是怎么回事.
谢谢
好像
env.hosts = ['111.111.111.111']
Run Code Online (Sandbox Code Playgroud)
无效,您需要使用实际的URL
env.hosts = ['mywebsite.com']
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题
确保弹性IP附加到实例.我认为key_filename只接受一个参数,但是当你传入一个数组时我的工作正常:
env.user = "ubuntu"
env.key_filename = ["my_key.pem",]
Run Code Online (Sandbox Code Playgroud)
也许你应该尝试使用你的实例的公共主机名,如:
env.roledefs.update({
'prod': ['ec2-52-14-72-225.us-west-1.compute.amazonaws.com'],
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5335 次 |
| 最近记录: |