本文概述
- 什么是Ansible?
- Ansible架构
- Ansible如何运作?
什么是Ansible? Ansible是一个开放源代码的DevOps工具, 可以帮助企业进行配置管理, 部署, 配置等。它利用SSH在服务器之间进行通信。它使用剧本描述自动化作业, 并且剧本使用非常简单的语言YAML。
文章图片
Ansible为你的IT基础架构提供可靠性, 一致性和可伸缩性。你可以使用Ansible自动执行数据库, 存储, 网络, 防火墙的配置。它确保服务器上所有必需的程序包和所有其他软件都一致, 以运行该应用程序。
让我们举个例子;你已经获得了基于Visual C ++构建的应用程序的调试版本。现在, 如果要在计算机上运行该应用程序, 则需要满足一些先决条件, 例如Microsoft Visual C ++库DLL, 并且需要在计算机中安装Visual C ++。因此, 这是Ansible将确保所有这些基本软件包和所有软件都安装在你的计算机中的部分, 以便你的应用程序可以在所有环境中(无论是测试环境还是生产环境)都能平稳运行。
它还保留了应用程序的所有历史数据, 因此, 如果你想随时回滚到以前的版本, 或者想要升级它, 则可以轻松地做到这一点。
让我们看一下以下一些功能。
无代理-这意味着没有像其他解决方案(如木偶和厨师)那样, 没有任何软件或任何代理来管理节点。
Python –建立在python之上, 它是当今世界上功能强大的快速编程语言之一。
SSH –非常简单的无密码网络身份验证协议, 很安全。因此, 你的责任是将此密钥复制到客户端
推送架构–将必要的配置推送给他们, 客户端。你所要做的就是写下这些配置(剧本), 并将它们一次推送到各个节点。你将看到在几分钟之内将更改推送到数千台服务器的强大功能。
设置–使它正常工作所需的最低要求和配置。
Ansible架构
文章图片
让我们从Linux服务器的Public / Private Cloud开始。它也可以充当所有IT安装和配置的存储库。
上面的体系结构有一堆主机, ansible服务器连接到这些主机, 并通过SSH推送剧本。
它具有Ansible自动化引擎, 用户可以使用该引擎直接运行被部署在主机上的剧本。 ansible自动化引擎中包含多个组件。第一个是主机清单。这是所有主机的所有IP地址的列表。
接下来, 有一些模块。 Ansible附带了数百个内置模块, 而模块是你运行剧本时执行的那些代码。剧本包含剧本, 戏剧包含不同的任务, 而任务包含模块。
运行剧本时, 是在主机上执行的模块, 这些模块中包含操作。因此, 当你运行剧本时, 这些操作将在你的主机上进行。你也可以制作自定义模块。你所要做的就是编写几行代码并将其作为你的模块, 你可以随时运行它。
然后该体系结构具有剧本。这里的剧本实际上定义了你的工作流程, 因为无论你在剧本中编写什么任务, 它都将按照编写它们的顺序执行。例如, 如果你写的是先安装软件包然后再启动, 则它会执行相同的操作。剧本非常容易编写YAML代码。 YAML代码是一种非常简单的数据序列化语言;这很像英语。
接下来, 在体系结构中是插件。这里的插件是特殊的模块。这些插件在模块在节点上执行之前被执行。插件在主控计算机上执行以进行记录。你拥有回叫插件, 因为它使你能够挂接到不同的ansible事件中, 以进行显示和记录。缓存插件用于保留事实的缓存, 以避免昂贵的事实收集操作。 Ansible也有动作插件, 它们是前端模块, 在调用模块本身之前, 它们可以在控制器机器上执行任务。
该体系结构具有连接插件。并非总是需要使用SSH来与主机连接。你也可以使用连接插件。例如, ansible为你提供了一个Docker容器连接插件, 并且使用该连接插件, 你可以轻松地连接到所有Docker容器并立即开始配置。
这就是架构的全部内容。接下来, 让我告诉你它是如何工作的。
Ansible如何运作?
文章图片
Ansible通过连接到节点并推出称为ansible模块的小程序来工作。然后, Ansible默认通过SSH执行这些模块, 然后在完成后将其删除。
Ansible管理节点是控制节点, 它控制Playbook的整个执行。它是你要从中运行安装的节点, 清单文件提供了需要在其中运行模块的主机的列表。管理节点建立ssh连接, 然后在主机上执行模块并安装产品。一旦安装了模块, 它将删除这些模块。这就是ansible的运作方式。
接下来, 你可能对学习如何安装和配置Ansible感兴趣。
如何在Ubuntu上安装和配置Ansible?总结
【给初学者的Ansible简介】我希望你现在对Ansible有一个了解, 可以开始使用它。 Ansible可以改变你管理基础结构的方式, 如果你是Sysadmin或Developer, 那么可以查看此动手培训以提高技能。
推荐阅读
- 调整MySQL系统变量以实现高性能
- 如何在Ubuntu上安装和配置Ansible()
- Android_关于自定义view的dialog有黑影的问题
- APP常用控件学习理解
- [Android P][Network data][Notes1]DcTracker setDataProfile 判断APN modemCognitive and requestNetwork se
- android xml布局使用特殊符号 使用ascii显示特殊符号 以下为常见的ASCII十进制交换编码
- WPF学习第二十六章 Application类——应用程序的生命周期
- GUI的基本组成----Android GWES之基本原理篇
- Application.streamingAssetsPathApplication.persistentDataPath