如何使用boto从正在运行的实例创建EC2映像?
问题描述:
我正在尝试为我的EC2实例创建一个简单的python备份脚本。该脚本的目的是创建当前机器的每日/每周快照(请参阅this question on ServerFault)。我使用的是boto Python包的EC2 API,并想创建一个EBS AMI从一个给定的情况下(如ElasticFox的“创建图像”行动)如何使用boto从正在运行的实例创建EC2映像?
# This script will look up all your running EC2 images, find the current one, and back it up by creating an AMI
# Configuration
accessKeyId = "..."
accessKeySecret = "..."
target = "..."
def resolveIp(target):
import socket
ip = repr(socket.gethostbyname_ex(target)[2][0])
return ip
def find_target(target, connection) :
ip = resolveIp(target)
print "Finding instance for " + target + " (IP " + ip + ")"
reservations = connection.get_all_instances();
for reservation in reservations:
instances = reservation.instances
if len(instances) != 1:
print "Skipping reservation " + reservation
continue
instance = instances[0]
instanceIp = resolveIp(instance.dns_name)
if instanceIp == ip:
return instance
raise Exception("Can't find instance with IP " + ip)
from boto.ec2.connection import EC2Connection
print "Connecting to EC2"
conn = EC2Connection(accessKeyId, accessKeySecret)
print "Connected to EC2"
instance = find_target(target, conn)
print "Backing up instance '{}'".format(instance)
# Now, I'd like to create a new image out of this instance
# Can you help?
(也有报道为an issue on the boto project page,因为我没有” t找到邮件列表)