DevOps 101:Ansible 简介
Ansible
什么是 Ansible?
Ansible 是一款开源的 IT 配置管理、部署和编排工具。它旨在提高 IT 环境的可扩展性、一致性和可靠性。它简单易用,但功能强大,足以自动化复杂的多层 IT 应用环境。
Ansible 还可以自动配置各种系统和设备,例如数据库、存储设备、网络、防火墙等等。它确保所有必要的软件包和所有其他软件在服务器上保持一致,以运行应用程序。最棒的是,您甚至不需要知道完成特定任务所需的命令。您只需指定您希望系统处于什么状态,Ansible 就会为您处理。
它允许您创建机器组,描述这些机器的配置方式或对它们执行的操作。Ansible 从中心位置发出所有命令来执行这些任务。它使用剧本 (playbook) 来描述自动化作业,并使用非常简单的 YAML 语言。
使用 Ansible 的流程:
1). 在本地机器上创建剧本和库存。
2). 创建到目标节点的 SSH。
3). Ansible Server 收集目标节点的事实,以获得目标节点的指示。
4). Playbook 被发送到节点。
5). Playbook 在节点上执行。
Ansible 中使用的重要术语:
- Ansible 服务器:安装 Ansible 并运行所有任务和剧本的机器。
- 模块:基本上,模块是在客户端执行的命令或一组类似的命令。
- 任务:任务是由要完成的单个程序组成的部分。
- 角色:组织任务和相关文件以便稍后在剧本中调用的方式。
- 事实:使用收集事实操作从全局变量中获取客户端系统的信息。
- 清单:包含有关 ansible 客户端服务器数据的文件。
- 播放:执行剧本。
处理程序:仅当存在通知程序时才会调用的任务。
- 通知程序:属于某个任务的部分,如果输出发生变化,则调用处理程序
- 标签:设置为任务的名称,稍后可用于发布特定任务或任务组。
常见的 Ansible 功能
1).配置管理: Ansible 的设计理念是极其简洁、可靠且一致的配置管理。例如,更改应用程序、操作系统或设备的配置;启动和停止服务;安装或更新应用程序;实施安全策略;或执行各种其他配置任务。
2)应用程序部署: Ansible 通过将内部开发的应用程序自动部署到您的环境系统,简化了 DevOps 流程。Ansible 让您能够快速轻松地部署多层应用程序。您无需编写自定义代码来实现系统自动化;您只需编写一个剧本,列出需要完成的任务,Ansible 就会自行决定如何将您的系统调整到您想要的状态。换句话说,您无需在每台机器上手动配置应用程序。
3).编排:部署应用程序时,您需要管理前端、后端服务、数据库、网络、存储等。此外,您还需要确保所有任务都按正确的顺序处理。
Ansible 使用自动化工作流、预配等功能来简化任务编排。使用 Ansible 剧本定义好基础架构后,您就可以在任何需要的地方使用相同的编排方案。
4)安全性与合规性:与应用程序部署一样,站点范围的安全策略(例如防火墙规则)可以与其他自动化流程一起实施。如果您在控制计算机上配置安全详细信息并运行相关的剧本,则所有远程主机都将自动更新这些详细信息。这意味着您无需手动持续监控每台计算机的安全合规性。
5).云配置:使用 Ansible,您可以配置云平台、虚拟化主机、网络设备和裸机服务器。
Ansible 的优势
Ansible 的主要优点是简单。
1).简单设置:使其工作所需的最低要求和配置。
2).易于使用:无需任何特殊编码技能即可使用 Ansible 的剧本。Ansible 比许多其他 IT 自动化引擎更易于学习。
3).无代理: Ansible 完全无代理。无需在您想要自动化的客户端系统上安装任何软件或代理。Ansible 只需安装在控制机器上,控制机器可以是您的 PC。
4).灵活:无论部署在何处,您都可以编排整个应用程序环境。您还可以根据需要进行自定义。
5).高效:由于您不需要安装任何额外的软件,因此您的服务器上有更多的空间用于应用程序资源。
6).强大: Ansible 让您可以建模甚至高度复杂的 IT 工作流程。
7).快速:基于 Python 构建,Python 速度快,是当今世界上最强大的编程语言之一。
8). SSH:一种非常简单且安全的无密码网络身份验证协议。因此,你的责任是将此密钥复制到客户端。
9).免费: Ansible 是一个开源工具。
Ansible 的流行替代品包括:
- 木偶
- 厨师
- SaltStack
- 地形
如果您有任何要添加的内容或要分享的资源,请在下面的评论中留下。
在 Twitter 上与我联系: https://twitter.com/HarunMbaabu
文章来源:https://dev.to/grayhat/devops-101-introduction-to-ansible-1n64