Ansible 怎么可以缺少阿里云

yuun · · 1588 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

摘要: 云计算时代DevOps的协同开发、自动构建、持续集成已经被越来越多的用户和企业所接受,作为DevOps的核心自动化工具之一,Ansible 为自动化运维提供了一个良好的解决方案。而作为云计算服务的重要提供商,阿里云与Ansible的牵手更是对Ansible以及DevOps丰富和完善。 云计算时代DevOps的协同开发、自动构建、持续集成已经被越来越多的用户和企业所接受,作为DevOps的核心之一,自动化更是随着自动化工具的不断成熟而愈发强大。自动化的目标是将整个交付流程尽其所能的自动化,包括基础设施的自动化,应用部署的自动化,应用集成的自动化等。 作为自动化工具的重要成员之一,Ansible 为自动化运维提供了一个良好的解决方案。 众所周知,Ansible是一个IT自动化运维的工具,它的最主要的特点是可以通过SSH协议实现对应用服务器系统的配置,应用的部署以及一些更高级IT任务的执行,如持续部署,开机回滚等。除此之外,Ansible还有一个重要的特性,可以通过代码来实现对基础设施的定义,生产和管理,而这就是所谓的基础设施即代码(Infrastracture as Code)简写为IaC。 作为DevOps的重要自动化工具之一,Ansible怎么可以缺少云计算服务的重要提供商-阿里云呢?本文将向大家详细展示如何基于 Ansible 实现对阿里云基础设施的定义和管理。 Ansible Provider Of Alicloud 基于Ansible实现对阿里云基础设施管控的基本思路:利用Ansible Module设计和实现面向阿里云服务的Provider,使其可以解析用户在playbooks中定义的资源参数,并通过这些参数调用对应云服务的API,进而实现对阿里云对应资源的管控。 下图是基于Ansible快速搭建阿里云ECS instance,VPC以及其他资源的实现原理流程图: 从上图可以看出,整个阿里云资源搭建的实现过程总共需要五步: 用户以代码的形式定义阿里云资源,主要体现为输入各个资源对应的参数,如镜像ID,实例类型,VPC网段,EIP带宽等; 定义完成后,执行ansible-playbook命令,运行定义好的playbook; ansible解析playbook,并确定playbook所使用的provider; 通过provider调用对应的资源module,并在module中重新组装参数和构建请求; 调用阿里云的开放API,实现对阿里云对应资源的有效管控。 在了解了Ansible Provider Of Alicloud的基本实现原理后,接下来介绍如何使用。 安装 Ansible Provider Of Alicloud 首先安装 Ansible Provider Of Alicloud。根据不同用户的需求,我们为Ansible Provider Of Alicloud提供了两种简单的安装方式。 安装方式一:运行如下命令即可实现对ansible以及alicloud provider的同时安装: $ sudo pip install ansible_alicloud 安装方式二:为了适应不同用户的需求,我们提供了对module的源码安装,即可根据自身的需要,在ansible-provider中选择自己需要的module并进行安装: 新建工作目录roles/library $ mkdir -p roles/library 在ansible-provider中下载自己需要的module到目录roles/library下 安装module的依赖 $ sudo pip install ansible_alicloud_module_utils 安装完毕后,即可编写playbook实现对阿里云资源的管控了。 使用 Ansible Provider Of Alicloud Ansible Provider Of Alicloud安装成功后,即可通过编写playbooks来定义阿里云资源了。Playbook的编写必须符合YAML语法,下面是创建阿里云instance的playbook alicloud.yml: 如上所示,我们定义了一台在北京可用区的 Centos 的 Instance。 更多有关module的内容和实例,可参考 ansible-alicloud文档. 资源定义完毕后,运行如下的命令即可实现对阿里云ECS Instance的快速创建: 值得注意的是,alicloud_instance module提供了count参数,以实现对 ECS Instance 的批量创建。 Playbook执行结束后,Module 将会在向您输出当前创建的所有 Instance 的 ID,IP。 基于ID和IP可进一步实现对Instance的管理,如启动,停止,部署应用等。 开发 Ansible Provider Of Alicloud 目前我们已经完成了阿里云产品主要module的开发,并向Ansible官方提交了 PR。虽然还没有被Merge,但可根据上文提供安装方式完成安装和使用。Provider的仓库地址是ansible-provider,欢迎大家使用并为其贡献力量和提供需求,我们将持续改进和完善。 除此之外,我们将提供更多的基于Ansible Provider的最佳实践,敬请期待。 写在最后 DevOps的不断发展造就了自动化工具的不断丰富和完善,Ansible Provider Of Alicloud 正是 Ansible 中不可或缺的一部分。为此,我们也将根据用户的需求以及阿里云产品功能的不断发展,提供更加丰富和强大的 Module,帮助用户尤其是Ansible用户简化基础设施构建的流程,进而为整个业务流程的自动化贡献力量。 参考资料 Ansilbe Alicloud Provider Github. Ansible Docs.Ansilbe Alicloud Docs 原文链接:https://yq.aliyun.com/articles/173622

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1588 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传