您的位置:首页 > 编程语言 > Python开发

Boto:利用Python将自动化机制引入AWS服务

2015-09-18 19:04 896 查看

Boto允许大家编写部分脚本,从而以自动化方式实现AWS EC2实例启动等常见操作。


Boto是一套Python软件包,旨在将编程性连接引入Amazon Web Services当中。

Amazon Cloud提供一系列可对服务器资源进行动态规模伸缩的服务方案,具体包括核心计算服务、Elastic Compute Cloud(即弹性计算云,简称EC2)、多种存储机制、负载均衡工具以及DNS等等。大家可以通过AWS控制台或者利用AWS的扩展API对这些服务加以控制。不过除此之外,大家还可以利用多种第三方库使用该API。在Python领域,我们可以选择Boto。Boto允许用户编写各种便利的脚本方案,从而以自动化方式实现多种常见操作,例如启动或停止EC2实例,或者定期为服务器保存快照等。


在Linux(CentOS)平台上安装Boto

1.大家首先需要使用yum软件包管理器来安装Python与pipPython软件包安装工具:

1yum install python python-devel python-pip
2.现在我们将通过pip安装Boto软件包:

1

python-pipinstallboto

3.最后,我们可以测试一切是否已经被成功安装到自己的Linux设备之上:

12python -c "import boto; print boto.Version"2.9.6

配置AWS凭证

在首次启动时,Boto库会搜索以下位置中的配置文件(按先后次序):
/etc/boto.cfg – for site-wide settings for all users on this machine
~/.boto – for user-specific settings

用例

让我们首先从基本场景入手:启动一个EC2实例

1

2

3

4

5

6

7

8

9

10

#/usr/bin/python

importboto.ec2

conn=boto.ec2.connect_to_region("us-west-2")

conn.run_instances(

    'ami-6ac2a85a',

    key_name='nitheesh_oregon',

    instance_type='t1.micro',

    security_groups=['nitheesh_oregon']

)

以上Python脚本会接入到Amazon的美国西部区域基础设施并利用AMI id:ami-6ac2a85a启动一个实例。

预设停止实例。现在假设大家希望在每天的特定时间点停止自己的测试环境实例,那么运行:

123456#/usr/bin/python import boto.ec2 conn = boto.ec2.connect_to_region("us-west-2")conn.stop_instances(instance_ids=['instance-id-1','instance-id-2'])
大家可以通过创建一个cron任务来确保该脚本在每一天的特定时间点执行相关预设操作。

CloudFront无效化。AWS并不提供面向CloudFront的命令行工具。因此,如果大家希望弃用某些对象,则需要登录至控制台并将相关对象添加到无效类别当中。整个过程非常漫长而且相当繁琐。不过不用担心,现在我们可以利用Boto库来完成这项任务:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#/usr/bin/python

importboto

 

dist_id='xxxxxxxxxxx'

invalidation_path='/home/ec2-user/invalid.txt'

 

defmain():

    paths=open(invalidation_path,"r+")

    conn=boto.connect_cloudfront()

    inval_req=conn.create_invalidation_request(dist_id,paths)

 

    printinval_req

    touch=open(invalidation_path,"w")

    touch.write("")

 

if__name__=='__main__':

    main()

以上脚本会读取特定文件当中的对象,将其设定为无效,输出一个无效ID,最后清除invalid.txt文件当中的内容。


Boto所支持的AWS服务

截至目前,Boto能够支持超过五十种Amazon服务,具体涵盖计算、数据库、应用程序以及支付与计费等领域。大家可以点击此处查看Python.org网站上的完整列表。


总结

Boto允许大家编写各类脚本,从而实现Amazon云环境当中各类复杂的设置管理工作。除此之外,它还能够支持Google Storage等其它多种公有云服务,外加Eucalyptus、OpenStack以及Open
Nebula等私有云系统。

如果大家拥有一定程度的Python编写经验并且珍惜自己的宝贵时间,请千万不要错过Boto这款出色的解决方案。

原文链接:

http://cloudacademy.com/blog/boto-using-python-to-automate-aws-services/

核子可乐译
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  自动化 python Boto