2011-03-10 16 views
7

EC2 örnekleri için basit bir python yedekleme komut dosyası oluşturmaya çalışıyorum. Bu betiğin amacı, mevcut makinenin günlük/haftalık anlık fotoğraflarını oluşturmaktır (bkz. this question on ServerFault). Ben yapmadım beri', EC2 API için boto piton paketini kullanıyorum ve belirli bir örneğinden Ayrıca an issue on the boto project page olarak raporBoto kullanan bir çalışan örneğinden nasıl EC2 resmi oluştururum?

# 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? 

((ElasticFox yönettiği "Image Oluştur" işlemi gibi) bir EBS AMI oluşturmak istiyorum t bir posta listesi bulun.)

cevap

8

EC2Connection nesnesinin "create_image" yöntemini istiyorsunuz. Dokümanlar here'a bakın. Ayrıca boto-users Google Grubu ile ilgili sorularınızı da sorabilirsiniz.

İlgili konular