开发者社区> 箫竹Aaron> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

基于资源编排和 Ansible 在经典网络下快速交付应用

简介: 本文是基于资源编排和 Ansible 在 VPC 下快速交付应用的姊妹篇,即在经典网络下基于资源编排和 Ansible 实现对应用的快速交付。 在经典网络环境和 VPC 环境下交付应用的最大区别在于经典网络环境不需要 VPC、VSwitch等其他相关资源的支持,只需要 ECS 和 EIP 资源即可
+关注继续查看

本文是基于资源编排和 Ansible 在 VPC 下快速交付应用的姊妹篇,即在经典网络下基于资源编排和 Ansible 实现对应用的快速交付。

在经典网络环境和 VPC 环境下交付应用的最大区别在于经典网络环境不需要 VPC、VSwitch等其他相关资源的支持,只需要 ECS 和 公网 IP 资源即可。除此之外,基于资源编排和 Ansible 在经典网络下快速交付应用的流程和步骤与在 VPC 下完全相同。下面本文仍以搭建 Redis 集群为例,展示在经典网络下快速交付应用。

基于 ROS 和 Ansible 在经典网络下快速搭建 Redis 集群

和上一篇一样,在搭建应用之前,首先需要在 Master 机器上安装 ROS SDK 和 Ansible。

下面展示基于 ROS API 和 Ansible 在经典网络下快速搭建一主(Master)两备(Slave) Redis 集群的详细过程。

为了提高 Redis 集群的高可用性,在搭建 Redis 集群时为其部署高可用性解决方案 Sentinel,以帮助 Redis 集群实现自动化的主备切换。

构建资源环境

首先定义资源栈模板。由于是经典网络环境,所以在模板中只需要定义构建三台云主机 ECS 资源和对应数量的 EIP 资源即可。为了方便起见,我在模板中使用资源 "Type": "ALIYUN::ECS::InstanceGroup" 定义 ECS 资源。定义资源栈的模板可详见附件中的 python 文件 create_instancegroup_template.py。

模板定义成功后,编辑 python 代码,以模板作为参数,调用 ROS API 即可实现对资源环境的搭建。需要注意的是,在传递参数时应注意增加关于分配公网 IP 的参数。如下是调用 ROS API 的 python 文件 create_stack_instancegroup.py:

# invoke CreateStackRequest to create InstanceGroup stack

from aliyunsdkcore.client import AcsClient
from aliyunsdkros.request.v20150901 import CreateStacksRequest
import create_instancegroup_template
import json

# define stack creation timeout(minutes)
create_timeout = 60

# define func to create stack
def create_stack(stack_name, ak_id, ak_secret, region_id):
    print('invoke CreateStackRequest to create instances...')
    client = AcsClient(ak_id, ak_secret, region_id)
    req = CreateStacksRequest.CreateStacksRequest()
    req.set_headers({'x-acs-region-id': region_id})

    template = create_instancegroup_template.generate_template(io_optimized='optimized', network_type='classic', image_id='centos6u5_64_40G_cloudinit_20160427.raw', instance_password='******', instance_min_amount=3, system_disk_category='cloud_ssd', instance_max_amount=3, allocate_public_ip='true', instance_type='ecs.n1.small')

    create_stack_body = '''
    {
        "Name": "%s",
        "TimeoutMins": %d,
        "Template": %s
    }
    ''' % (stack_name, create_timeout, template)
    req.set_content(create_stack_body)
    # get response
    response = client.get_response(req)

    # deal response
    if 201 == response[0]:
        parameters = json.loads(response[-1])
        print('Create stack succeccfully!!!')
        return parameters
    else:
        print('Unexpected errors: status=%d, error=%s' % (response[0], response[-1]))
        return None    

调用成功后,登录 ROS 控制台即可看到正在创建的资源栈。

创建 Inventory,获取 Playbook

这部分跟在 VPC 环境下的一样,此处不再赘述。

执行 Playbook,快速部署应用

这部分也跟在 VPC 环境下的一样,不再赘述。

在经典网络下搭建 Redis 集群的所有代码文件可详见附件。在经典网络下,Redis 集群搭建成功后的资源拓扑图如下所示:
redis_classic

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

附件下载:https://developer.aliyun.com/topic/download?id=283

相关文章
2019 国家网信办启动网络生态治理专项行动 剑指12类违法违规互联网信息
2019 国家网信办启动网络生态治理专项行动 剑指12类违法违规互联网信息
3371 0
《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——第3章 数据流 3.1同步数据流
Ptolemy II 能够使异构系统的开发和仿真一同进行,将开发和仿真作为整个系统建模的一部分。正如前两章讨论的那样,不同于其他设计和建模环境,Ptolemy II的一个关键创新在于支持多种计算模型,这些计算模型可被剪裁以适应具体的建模问题。
1231 0
《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——1.4 角色模型
本节书摘来自华章出版社《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》一书中的第1章,第1.4节,作者:[美]爱德华·阿什福德·李(Edward Ashford Lee),更多章节内容可以访问云栖社区“华章计算机”公众号查看 角色模型 Ptolemy II基于一类面向角色的模型(actor-oriented model),或简单称为角色模型(actor model)。
1313 0
《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——1.7 时间模型
本节书摘来自华章出版社《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》一书中的第1章,第1.7节,作者:[美]爱德华·阿什福德·李(Edward Ashford Lee),更多章节内容可以访问云栖社区“华章计算机”公众号查看 1.7时间模型 有些计算模型有时间(time)概念。
1345 0
基于资源编排在经典网络环境下快速部署高可用的Dubbox服务(Redis版)
本文将介绍在经典网络环境下,基于资源编排快速部署高可用Dubbox服务的过程。做这件事情的意义在于:提供给开发者一套高可用的Dubbox服务框架,节约开发人员部署Dubbox服务的时间,并降低了部署Dubbox过程中出错的风险。
3355 0
Drawable资源
Drawable资源是对图像的一个抽象,你可以通过getDrawable(int)得到并绘制到屏幕上。这里有几种不同类型的Drawable: Bitmap File 一个Bitmap图像文件(.png、.jpg或.gif)。
835 0
网络资源
程序员  http://www.pudn.com/
504 0
+关注
箫竹Aaron
阿里云高级开发工程师,主要负责开源DevOps工具(Terraform,Ansible,Cloud Foundry)与阿里云的集成, 专注通过主流开源高效的自动化工具提高云上运维/开发的便利性。
30
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载