最近在做ACI的项目,刚好有接触到Ansible,越发觉得Ansible真的是一个神器,今天在这里总结一下什么是Ansible?希望大家可以喜欢!
- Ansible是什么?
- 为什么使用Ansible?
- Ansible有哪些优点
- Ansible都能做哪些工作?
Ansible是什么?
Ansible是一个开源的IT自动化配置部署,管理的工具。功能十分强大,且使用起来也比较简单。
为什么使用Ansible?
有必要先了解在使用Ansible之前面临的问题,毕竟Ansible的出现是为了解决一系列的问题。
在云时代面临的一项挑战就是可以稳定且高效地部属且管理服务器,回顾一下,以前系统管理员都是手动管理服务器,在单个服务器上安装软件,进行配置部署,以及后续的服务管理运维。随着数据中心的发展和托管应用的日益流行、复杂,管理员意识到有太多的枯燥反复的工作需要处理配置系统层面的事务,实在是费神费力。这时有像Ansible这一类的工具也就应运而生,有了Ansible,上述的问题也就迎刃而解。
先了解一些Ansible的核心术语:
- Controller:安装Ansible的设备,可以理解为是Ansible的控制层,负责在你想要管理的服务器上运行配置。可以理解为导演。
- Inventory:该文件包含所有你想要管理的服务器信息。可以理解为演员表。
- Playbook:作为Ansible的核心组件,定义不同的任务,Playbook是通过使用YAML格式编写的。可以理解为剧本。
- Task:一个具体的任务,比如修改路由器的hostname
- Module:可以理解为一个被抽象的任务包模块,作为处理一个系列任务的模块。Ansible内置了许多模块,当然你够牛的话也可以自己编写,但是经过最近的使用我发现,作为一个开源项目,现有的功能模块其实已经可以满足很多需求,且支持的平台甚广。
Ansible有哪些优点
- 简单:前面说过,Ansible是使用YAML语法来编写playbook。YAML是一种我们容易读的数据序列化语言。因此,不太需要我们有任何特殊的编码技能。当然想要熟练使用的话还是要进行一段时间的练习。Ansible就是按照你编排的顺序执行任务的。Ansible的安装也非常简单,后面的博客文章我会介绍如何安装。总之,它的简单性可以让我们快速入门。
- 不需要代理:这一点我觉得还是很关键的,很多时候我们在使用一个工具,往往会被最初工具的环境部署配置所阻碍。Ansible是完全不需要代理的。你无需在自动执行任务的客户端服务器系统上安装任何代理程序,也无需打开具体防火墙端口。用过你就会知道,真的很舒服,很省心的感觉。突出一个自动化,让你从开始使用Ansible就感觉到自动无处不在。
- 各种模块:Ansible具有很多强大的功能模块,可以解决很多复杂IT环境中的任务。
官网中提供的模块,点开下面链接查看
https://docs.ansible.com/ansible/latest/modules/list_of_all_modules.html
Ansible都能做哪些工作?
- 配置管理:例如你准备将公司所有计算机上Firefox的版本更新到最新版本,那么如果选择手动去更新每台计算机将会十分耗时耗力。有了Ansible,你可以使用最简单的方式通过Ansible的Playbook和Inventory一次性将所有计算机上的Firefox更新到最新版本。你要做的就是列出Inventory中节点的IP地址,并编写一个Playbook来更新Firefox版本。从你的Controller设备上运行该Playbook,它将被安装在你定义的所有节点上。
- 应用程序部署:使用Ansible定义应用程序并使用Ansible Tower管理部署时,团队可以有效地管理从开发到生产的整个应用程序生命周期。例如,假设我要部署默认Servlet引擎,你要知道部署引擎需要执行许多步骤。
- 编排:单独的配置并不能定义你的环境。其实你更多需要的是定义多个配置如何交互,并确保可以将各个部分作为一个整体进行管理。出于复杂性和混乱性,Ansible将这些都秩序化。 Ansible实际上也是提供了一种业务流程,它通过自动化的工作流程,来定义策略和服务级别。可以根据每个应用程序的需求对其进行扩展或缩小。
什么是Ansible就先写到这里。希望对想学习Ansible的朋友有所帮助,之后我也会继续更新一些使用案例。总之大家多交流,共同进步!