我已经使用boto库为我的一些项目实例化了新的 EC2 实例,然后在新 EC2 系统启动后使用结构执行配置。
要使用它们,您首先需要为亚马逊本身创建访问令牌。这些用于 boto 的令牌被放置到您的源文件中并在connect
EC2 实例的方法中使用,或者您可以将它们放置到.boto
您的主目录中的文件中。后者要容易得多。
您需要从亚马逊获得以下内容:
- 安全组名称和 sshkey。
- 您要创建的实例的 Ami id。
- 您想要的实例类型,例如:m1.small
使用上述信息,您将使用上述信息调用该run_instance
方法:
instance = conn.run_instances( ami.ami_id, key_name=ami.sshkey.name,
instance_type=server.game.instance_type,
security_groups=[server.game.security_group] )
instance = instance.instances[0]
while instance.update() == "pending":
time.sleep( 5 )
完成此操作后,一个新实例应开始在您的 Amazon 控制面板中启动。您需要检查实例的状态,一旦它处于某种running
状态,您就可以使用 Fabric 来配置实例。
with settings( host_string="ec2-user@%s" % instance.ip_address,
key_filename=os.path.join( os.getenv( "HOME" ),
".ssh", "%s.pem" % ami.sshkey.name ),
connection_attempts=5, timeout=60 ):
...
sudo( "yum -y install mysql mysql-devel" )
...
使用上述方法,它将在同一个文件中运行结构命令,但使用 Fabric 的更受控制的方法是通过 fab 文件。这些在 Fabric 文档中得到了更好的解释。
以上是我用来根据需要自动创建和设置实例的方法,因此请调整代码以适合您的情况。