当前位置:云计算行业动态 → 正文

云自动化难驾驭?五步简化你的AWS自动化部署

责任编辑:editor006 |来源:企业网D1Net  2015-02-04 15:00:22 本文摘自:51CTO

亚马逊网络服务(AWS)客户需要经历五个步骤,才能驾驭云自动化。先要从只需点击操作的AWS Web控制台入手,最后是为云计算系统的声明式模型编写代码。

  1. 熟悉AWS Web控制台

想尽快熟悉许多AWS服务,最简便的方法就是,在AWS Web控制台里面反复捣鼓和研究,看看发生什么情况。AWS控制台塞满了功能特性,每年都会出现更多的功能特性。AWS客户关注一下许多仪表板,就能弄清楚哪些部分适用于其项目。AWS控制台不仅仅面向新手,连经验丰富的老手都在继续使用AWS控制台面板来处理手动工作。

AWS安全组限制了对服务的访问。AWS控制台里面的EC2仪表板有一个Security Groups(安全组)页面。图A显示如何建立一个名为sgMail的安全组,允许来自互联网的邮件请求。放马过来吧,垃圾邮件发送者!

  2. 使用AWS CLI

下一步就是使用AWS命令行工具。从Web进入到命令行感觉就好像你闭着眼睛四处走动。不过一旦你上了手,CLI工具用起来比Web控制台来得快捷、灵活。

使用命令行工具查看那个sgMail安全组看起来就像这样。

nick:~ $ aws ec2 describe-security-groups --group-names sgMail SECURITYGROUPS Mail access from Internet sg-40199d36 sgMail 243894605340 IPPERMISSIONS 25 tcp 25 IPRANGES 0.0.0.0/0 IPPERMISSIONS 110 tcp 110 IPRANGES 0.0.0.0/0 IPPERMISSIONS 143 tcp 143 IPRANGES 0.0.0.0/0 IPPERMISSIONS 465 tcp 465 IPRANGES 0.0.0.0/0 IPPERMISSIONS 993 tcp 993 IPRANGES 0.0.0.0/0 IPPERMISSIONS 995 tcp 995 IPRANGES 0.0.0.0/0 nick:~ $

简明扼要。我只对事实感兴趣。只需要事实。

3. 注重AWS API

之后,可以使用AWS API。这方面学起来难度最大。AWS客户在开始编写代码、使用API之前,需要落实几个方面。这几个方面包括:

对Java、Node.js或Ruby等编程语言有一个基本的了解和认识;附件库,以便该语言与AWS API进行联系――AWS非常受欢迎,因而有面向Python的AWS SDK(名为Boto)、面向PHP的AWS SDK、面向Ruby的AWS SDK及面向另外许多语言的AWS SDK;编写代码的开发环境,开发环境可以像文件编辑工具这么简单,也可以像微软的Visual Studio这么复杂。

4. 开始自动化!

一旦AWS客户度过了处理AWS API的最困难阶段,接下来就是玩乐时间了。随之而来的是忍不住什么都想自动化!构建高可用性集群、程序包部署、安全补丁――这一切都可以借助代码的魅力实现自动化。

实际上,自从有了AWS以来,编程人员就一直在让AWS实现自动化。许多配置管理工具有助于让技术架构的所有层实现自动化。

Vagrant(https://www.vagrantup.com)构建了一个本地开发环境。Jenkins(https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins)构建并测试软件项目。AWS CloudFormation(http://aws.amazon.com/cn/cloudformation/)构建了一个远程AWS环境。

实际上,市面上有太多的自动化工具,以至于将它们整合到一条产品线是项复杂的任务。

自动化通常使用命令式语言来实现。

在经历了安装和配置方面的一些困难后,Python开发人员可以使用boto来处理AWS安全组。查看该sgMail组的命令看起来就像这样。

nick:~ $ python Python 2.7.6 (default, Sep 9 2014, 15:04:36) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import boto.ec2 >>> conn = boto.ec2.connect_to_region('eu-west-1') >>> rs = conn.get_all_security_groups() >>> print rs [SecurityGroup:sgMail, SecurityGroup:default] >>> sg = rs[0] >>> sg.name u'sgMail' >>> sg.rules [IPPermissions:tcp(25-25), IPPermissions:tcp(110-110), IPPermissions:tcp(143-143), IPPermissions:tcp(465-465), IPPermissions:tcp(993-993), IPPermissions:tcp(995-995)] >>> quit() nick:~ $

引用、对象、方法、列表操作符以及那个疯狂的交互式Python ">>>"提示符,现在情况变得有点棘手。没错,同时也变得相当麻烦――控制台的那些漂亮颜色现在成了遥远的回忆。

5. 借助声明式代码

Puppet、Chef和Ansible等自动化应用程序都有各自的配置语言,可以帮助其用户描述要求怎样操作的模型。它们还有巧妙的引擎,可以读取那些模型,并改变计算环境。

这些配置语言是声明式语言。像上述Python例子这些计算机语言是命令式语言――它们适用于编写逐步过程。声明式语言描述了所要求的,而不是描述实现要求的步骤。SQL“select”语句是声明式语句――它可能命令服务器“从表选择记录”,但是查找表、使用索引和显示结果等操作的步骤被隐藏起来。

Puppet实验室发布了一个新的模块来配置AWS基础设施。使用其中一个模块意味着,可以在Puppet方面尽快上手。Puppet自动化方面学起来其难度就如同编写代码――客户得处理好下面这些任务,才能使用Puppet:

Puppet应用程序和Ruby解释器;使用RubyGems程序包管理器;编写声明。

在安装了新的Puppet AWS模块后,AWS客户可以使用清单文件来描述该sgMail组,就像这样。

nick:~ $ cat /etc/puppet/manifests/aws-manifest.pp ec2_securitygroup { 'sgMail': region => 'eu-west-1', ensure => present, description => 'Mail access from Internet', ingress => [{ protocol => 'tcp', port => 25, cidr => '0.0.0.0/0', },{ protocol => 'tcp', port => 110, cidr => '0.0.0.0/0', },{ protocol => 'tcp', port => 143, cidr => '0.0.0.0/0', },{ protocol => 'tcp', port => 465, cidr => '0.0.0.0/0', },{ protocol => 'tcp', port => 993, cidr => '0.0.0.0/0', },{ protocol => 'tcp', port => 995, cidr => '0.0.0.0/0', }], } nick:~ $

然后,客户就可以让Puppet与AWS进行联系,确保这个安全组存在――或者借助命令puppet apply aws-manifest.pp手动实现,或者使用Puppet主服务器(Puppet master)自动实现。

关键字:AWSCIDR查找表

本文摘自:51CTO

x 云自动化难驾驭?五步简化你的AWS自动化部署 扫一扫
分享本文到朋友圈
当前位置:云计算行业动态 → 正文

云自动化难驾驭?五步简化你的AWS自动化部署

责任编辑:editor006 |来源:企业网D1Net  2015-02-04 15:00:22 本文摘自:51CTO

亚马逊网络服务(AWS)客户需要经历五个步骤,才能驾驭云自动化。先要从只需点击操作的AWS Web控制台入手,最后是为云计算系统的声明式模型编写代码。

  1. 熟悉AWS Web控制台

想尽快熟悉许多AWS服务,最简便的方法就是,在AWS Web控制台里面反复捣鼓和研究,看看发生什么情况。AWS控制台塞满了功能特性,每年都会出现更多的功能特性。AWS客户关注一下许多仪表板,就能弄清楚哪些部分适用于其项目。AWS控制台不仅仅面向新手,连经验丰富的老手都在继续使用AWS控制台面板来处理手动工作。

AWS安全组限制了对服务的访问。AWS控制台里面的EC2仪表板有一个Security Groups(安全组)页面。图A显示如何建立一个名为sgMail的安全组,允许来自互联网的邮件请求。放马过来吧,垃圾邮件发送者!

  2. 使用AWS CLI

下一步就是使用AWS命令行工具。从Web进入到命令行感觉就好像你闭着眼睛四处走动。不过一旦你上了手,CLI工具用起来比Web控制台来得快捷、灵活。

使用命令行工具查看那个sgMail安全组看起来就像这样。

nick:~ $ aws ec2 describe-security-groups --group-names sgMail SECURITYGROUPS Mail access from Internet sg-40199d36 sgMail 243894605340 IPPERMISSIONS 25 tcp 25 IPRANGES 0.0.0.0/0 IPPERMISSIONS 110 tcp 110 IPRANGES 0.0.0.0/0 IPPERMISSIONS 143 tcp 143 IPRANGES 0.0.0.0/0 IPPERMISSIONS 465 tcp 465 IPRANGES 0.0.0.0/0 IPPERMISSIONS 993 tcp 993 IPRANGES 0.0.0.0/0 IPPERMISSIONS 995 tcp 995 IPRANGES 0.0.0.0/0 nick:~ $

简明扼要。我只对事实感兴趣。只需要事实。

3. 注重AWS API

之后,可以使用AWS API。这方面学起来难度最大。AWS客户在开始编写代码、使用API之前,需要落实几个方面。这几个方面包括:

对Java、Node.js或Ruby等编程语言有一个基本的了解和认识;附件库,以便该语言与AWS API进行联系――AWS非常受欢迎,因而有面向Python的AWS SDK(名为Boto)、面向PHP的AWS SDK、面向Ruby的AWS SDK及面向另外许多语言的AWS SDK;编写代码的开发环境,开发环境可以像文件编辑工具这么简单,也可以像微软的Visual Studio这么复杂。

4. 开始自动化!

一旦AWS客户度过了处理AWS API的最困难阶段,接下来就是玩乐时间了。随之而来的是忍不住什么都想自动化!构建高可用性集群、程序包部署、安全补丁――这一切都可以借助代码的魅力实现自动化。

实际上,自从有了AWS以来,编程人员就一直在让AWS实现自动化。许多配置管理工具有助于让技术架构的所有层实现自动化。

Vagrant(https://www.vagrantup.com)构建了一个本地开发环境。Jenkins(https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins)构建并测试软件项目。AWS CloudFormation(http://aws.amazon.com/cn/cloudformation/)构建了一个远程AWS环境。

实际上,市面上有太多的自动化工具,以至于将它们整合到一条产品线是项复杂的任务。

自动化通常使用命令式语言来实现。

在经历了安装和配置方面的一些困难后,Python开发人员可以使用boto来处理AWS安全组。查看该sgMail组的命令看起来就像这样。

nick:~ $ python Python 2.7.6 (default, Sep 9 2014, 15:04:36) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import boto.ec2 >>> conn = boto.ec2.connect_to_region('eu-west-1') >>> rs = conn.get_all_security_groups() >>> print rs [SecurityGroup:sgMail, SecurityGroup:default] >>> sg = rs[0] >>> sg.name u'sgMail' >>> sg.rules [IPPermissions:tcp(25-25), IPPermissions:tcp(110-110), IPPermissions:tcp(143-143), IPPermissions:tcp(465-465), IPPermissions:tcp(993-993), IPPermissions:tcp(995-995)] >>> quit() nick:~ $

引用、对象、方法、列表操作符以及那个疯狂的交互式Python ">>>"提示符,现在情况变得有点棘手。没错,同时也变得相当麻烦――控制台的那些漂亮颜色现在成了遥远的回忆。

5. 借助声明式代码

Puppet、Chef和Ansible等自动化应用程序都有各自的配置语言,可以帮助其用户描述要求怎样操作的模型。它们还有巧妙的引擎,可以读取那些模型,并改变计算环境。

这些配置语言是声明式语言。像上述Python例子这些计算机语言是命令式语言――它们适用于编写逐步过程。声明式语言描述了所要求的,而不是描述实现要求的步骤。SQL“select”语句是声明式语句――它可能命令服务器“从表选择记录”,但是查找表、使用索引和显示结果等操作的步骤被隐藏起来。

Puppet实验室发布了一个新的模块来配置AWS基础设施。使用其中一个模块意味着,可以在Puppet方面尽快上手。Puppet自动化方面学起来其难度就如同编写代码――客户得处理好下面这些任务,才能使用Puppet:

Puppet应用程序和Ruby解释器;使用RubyGems程序包管理器;编写声明。

在安装了新的Puppet AWS模块后,AWS客户可以使用清单文件来描述该sgMail组,就像这样。

nick:~ $ cat /etc/puppet/manifests/aws-manifest.pp ec2_securitygroup { 'sgMail': region => 'eu-west-1', ensure => present, description => 'Mail access from Internet', ingress => [{ protocol => 'tcp', port => 25, cidr => '0.0.0.0/0', },{ protocol => 'tcp', port => 110, cidr => '0.0.0.0/0', },{ protocol => 'tcp', port => 143, cidr => '0.0.0.0/0', },{ protocol => 'tcp', port => 465, cidr => '0.0.0.0/0', },{ protocol => 'tcp', port => 993, cidr => '0.0.0.0/0', },{ protocol => 'tcp', port => 995, cidr => '0.0.0.0/0', }], } nick:~ $

然后,客户就可以让Puppet与AWS进行联系,确保这个安全组存在――或者借助命令puppet apply aws-manifest.pp手动实现,或者使用Puppet主服务器(Puppet master)自动实现。

关键字:AWSCIDR查找表

本文摘自:51CTO

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^