部署工具系列之一】5分钟看懂Ansible!

来源:互联网 发布:最好的二手交易软件 编辑:程序博客网 时间:2024/05/07 12:46

部署工具系列之一】5分钟看懂Ansible!

2017-3-8 

关注世界领先 DevOps 平台 JFrog



应用软件、服务,运行环境的部署一直是运维团队的痛点,因为软件的依赖不同,版本不同,环境的不同,造成了部署难以实现统一化,可重用化。

 

为了解决这些问题,市面上有很多部署管理的工具,比如 Ansible,Puppet,Chef 和 Salt Stack,其中Ansible 是社区里用户群最大的的部署工具。今天给大家带来【部署工具系列之一】之5分钟看懂Ansible。


Ansible提供两种方式去完成任务,一是 ad-hoc 命令,二是写 Ansible playbook.前者可以解决一些简单,无需保存的任务, 后者解决较复杂的任务.

一般而言,在学习了 playbooks 之后,你才能体会到 Ansible 真正的强大之处在哪里.


来看一个 ad-hoc 命令:

ansible raleigh -m shell -a 'echo $TERM'

执行的结果是在 raleigh 的主机群里执行 shell 命令'echo $TERM'。


来看看 Ansible 的工作原理:客户端通过 SSH 连接到服务器端,不需要配置 Agent。之后在服务器上运行 Playbook。



Ansible 的强大功能在于 Playbook,那么Playbook 有什么用?它可以执行很多任务:


● 安装软件

   例如安装 Ngnix,防火墙。


● 执行后台任务,例如删除临时文件,或者拷贝文件。


●使用通用的模块。


●设置变量,让部署变得可重用,例如将数据库连接池信息写成配置文件,根据不同的环境使用不同的配置。



来看一个 Playbook 的实例:


这个文件定义了一组任务,目标主机是webservers,端口80,任务是执行 Apache 的升级操作,指定 yum 包和版本,拷贝配置文件。之后重启 Apache。



Ansible 有成熟的,可重用的模块,也就是说你可以使用这些现有模块来减少重复性工作,例如系统模块里,你可以使用增加 SSH,执行 cron 任务,这些任务大多数已经兼容了不同版本的 linux 平台。



演示


● 搭建2个 Web 服务器

● 1个测试环境,1个生产环境

● 安装 Nginx

● 配置环境

● 部署”index.html”



在云服务器上创建两个虚机。 



定义 Ansible hosts 文件, 作用是定义一些 group,group 里可以包含多个 ip。



测试 hosts 的连接。执行 ansible –I hosts all –m ping –u root. 意思是对 hosts 里所有主机执行 ping 命令。



定义部署的 Playbook,一个 yaml 文件。

Hosts:webservers

定义变量 WelcomeMsg

任务:搭建 Nginx,执行 apt update,拷贝 index.html 文件。



执行 ansible-playbook –I hosts –s –u root webserver-setup.yaml。可以看到, Playbook 的中定义的任务已被执行,安装了 Nginx,拷贝了 index.html 文件。



可以看到部署结果已经成功。


接下来修改下 index.html文件,增加一个变量 “AnotherVar”。



在 Playbook 中定义这个变量” AnotherVar”。



再次执行 Playbook,可以看到修改已经生效。所以这就模拟了一个使用Ansible自动化发布,上线的场景。



Ansible galaxy 是有社区共享,提供了很多预定义的 roles,你可以重用这些资源并且持续改进。记住:不要重复造轮子。



总结


Ansible 的优点


1. 基于 SSH,不需要安装 Agent

2. 使用 YAML 文件使得学习曲线变得平滑

3. Playbook 结构简单,清晰

4. 使用变量注册机制让任务与后续任务能够传递信息

5. 与其他工具相比有更丰富的代码库。


Ansible 的缺点


1. 依赖与它自身的 DSL,熟悉之前需要频繁查文档

2. 任何简单的任务都依赖变量注册机制,使得简单的任务复杂化

3. 大并发下可能会有性能问题


Ansible 的使用场景


如果你不希望在目标机上部署 Agent,那么可以考虑 Ansible。它能够让你的部署流程变成流水线,而且变得很快。


在【部署工具系列】系列文章里,我们会介绍 Ansible,Puppet,Chef,Saltstack,敬请关注。


关于JFrog

公司成立于2008年,在美国、以色列、法国和西班牙,中国北京市拥有超过200名员工。JFrog 拥有3000多个付费客户,其中知名公司包括如Netflix、思科、谷歌、亚马逊。最近,JFrog 连续第二年被德勤评选为50家增长最快的技术公司之一,还被评为硅谷增长最快的私营企业之一。

0 0
原创粉丝点击