2012-03-05 44 views

回答

31
import boto 
c = boto.connect_ec2(ec2_key, ec2_secret) 
image = c.get_image(ec2_ami) 

reservation = image.run(key_name=ec2_keypair, 
         security_groups=ec2_secgroups, 
         instance_type=ec2_instancetype) 

instance = reservation.instances[0] 
c.create_tags([instance.id], {"Name": instance_name}) 
+18

注意你也可以做instance.add_tag('Name',instance_name) – garnaat 2012-03-06 19:39:59

1

在EC2中没有api来改变机器的实际名称。你基本上有两种选择。

  1. 您可以在用户数据中传递所需的计算机名称,并在服务器启动时运行脚本来更改计算机的名称。
  2. 您可以使用EC2标签来命名服务器ec2-create-tags <instance-id> --tag:Name=<computer name>。这个解决方案的缺点是服务器不会实际更新到这个名称。这个标签是严格为您或当您查询aws中的服务器列表。

一般来说,如果您希望服务器在启动时进行自我配置,我发现在EC2中重命名您的计算机只会导致更多的麻烦。如果你不需要,我建议不要使用它们。使用标签或elb实例是最好的方法。

+0

EC2创建标签 'I-0d44bd39' --tag名称=哞 必选项 '-K,--private键KEY' 失踪(-h为使用)同理:ec2addtag --tag名称= moo说我错过了一个私钥? --tag:Name = moo语法不起作用。 – Jeff 2012-03-06 01:07:18

+0

该命令用于命令行工具。对于博托使用'create_tags('i-0d44bd39',dict(Name = moo))' – bwight 2012-03-06 14:06:13

相关问题