Ansible入门指南 – Ansible基础知识及工作原理

听说过ansible但不确定它是什么吗?别担心,你将在接下来的5分钟了解关于ansible的信息。

什么是ansible?

ansible是一个开源的devops工具,可以帮助企业进行配置管理、部署、供应等。它易于部署,利用ssh在服务器之间进行通信。它使用playbook来描述自动化任务,而playbook使用一种非常简单的语言yaml。

ansible为您的it基础架构提供可靠性、一致性和可扩展性。您可以使用ansible自动化配置数据库、存储、网络和防火墙。它确保服务器上的所有必要软件包和其他软件保持一致,以运行应用程序。

让我们举个例子;你有一个基于visual c++构建的应用程序的调试版本。现在,如果你想在一台计算机上运行该应用程序,你需要满足一些先决条件,比如microsoft visual c++库dlls,并且你需要在计算机上安装visual c++。所以,这就是ansible的作用,确保所有这些基本软件包和软件都安装在您的计算机上,以便您的应用程序在所有环境下(测试环境或生产环境)都可以顺利运行。

它还保存应用程序的所有历史数据,因此如果您想回滚到上一个版本,或者想升级它,您可以轻松实现。

让我们来看一下以下一些特点。

无需代理– 这意味着没有任何软件或代理管理节点,就像其他解决方案(如puppet和chef)一样。

python– 构建在python之上,它是当今世界上快速且强大的编程语言之一。

ssh– 非常简单、无需密码的网络身份验证协议,非常安全。所以,您的责任是将此密钥复制到客户端

推送架构 – 将必要的配置推送给客户端。您只需要编写这些配置(playbook)并一次性将它们推送到节点。您可以看到在几分钟内将更改推送到数千台服务器时有多么强大。

设置–  需要的最低要求和配置来使其工作。

ansible架构

让我们从公共/私有云,也就是linux服务器开始。它还可以充当所有it安装和配置的存储库。

上述架构有一组主机机器,ansible服务器连接并通过ssh推送playbooks到这些主机上。

它有一个ansible自动化引擎,用户可以直接运行一个playbook,该playbook会在主机上部署。ansible自动化引擎有多个组件。第一个是主机清单。它是所有主机的ip地址列表。

接下来,有模块。ansible带有数百个内置模块,模块是运行playbook时执行的代码片段。一个playbook包含多个play,一个play包含不同的任务,一个任务包含模块。

当你运行一个playbook时,实际上是在你的主机上执行模块,而这些模块中包含了操作。因此,当你运行一个playbook时,这些操作就会在你的主机上执行。你也可以创建自定义模块。你只需要编写几行代码并将其作为模块使用,然后你可以随时运行它。

接下来,架构中有playbooks。这里的playbooks实际上定义了你的工作流程,因为你在playbook中编写的任务会按照你编写的顺序执行。例如,如果你先写了安装一个软件包再启动的任务,它也会按照相同的顺序执行。编写yaml代码非常简单,它是一种非常简单的数据序列化语言,就像英语一样简单。

然后,在架构中还有插件。插件是一种特殊类型的模块。这些插件在模块在节点上执行之前被执行。插件在主控机上执行,用于日志记录。你可以使用回调插件来连接不同的ansible事件,以进行显示和日志记录。缓存插件用于缓存事实以避免昂贵的事实收集操作。ansible还有动作插件,它们是前端模块,可以在调用模块本身之前在控制器机器上执行任务。

架构中还有连接插件。不必总是使用ssh与主机进行连接,你也可以使用连接插件。例如,ansible提供了一个docker容器连接插件,使用这个连接插件,你可以轻松连接到所有的docker容器并开始配置。

以上就是关于架构的全部内容。接下来,让我告诉你它的工作原理。

ansible的工作方式是通过连接到节点并推送称为ansible模块的小程序来实现的。ansible默认通过ssh执行这些模块,然后在执行完成后将其删除。

ansible管理节点是控制节点,它控制了playbook的整个执行过程。它是你运行安装的节点,清单文件提供了模块需要运行的主机列表。管理节点建立ssh连接,然后在主机上执行模块并安装产品。安装完成后,它会删除这些模块。这就是ansible的工作方式。

接下来,您可能有兴趣了解如何安装和配置ansible。

总结

希望现在你对如何开始使用ansible有了一个概念。ansible在管理基础架构方面是一个改变游戏规则的工具,如果你是系统管理员或开发人员,可以参加这个实践培训来提高技能。

类似文章