1
2
3
4
5
作者:李晓辉

微信联系:Lxh_Chat

联系邮箱: 939958092@qq.com

Ansible Core

Ansible Core 就是执行 Ansible Playbook 的“引擎”。它定义了用来写 Playbook 的自动化语言,也就是那些写在 YAML 文件里的代码。它还包括了一些非常基础的功能,比如循环、条件判断和 Ansible 命令行工具。简单来说,Ansible Core 就是让一切自动化操作得以顺利进行的基石。

在rhaap2.2 里,你会看到 Ansible Core 版本是 2.13。

Ansible 内容集合

其实,Ansible Core 里面的功能并不全,它只有 ansible.builtin 这个小集合。其他的模块则被拆成了独立的“内容集合”。这些内容集合让你能根据需要选择不同版本的模块,或者不同系列的模块。好处是,开发者可以独立于 Ansible Core 更新他们的模块,这样不会影响到整个系统。

自动化内容导航器

RHAAP2 还提供了一个酷炫的命令,叫做 ansible-navigator,它可以用来开发和测试 Playbook。它替代了以前的一些命令,比如 ansible-playbookansible-inventoryansible-configansible-doc 等。最牛的是,navigator 通过容器来运行 Playbook,这样就把 Ansible 的控制节点和实际运行 Playbook 的执行环境分开了。所以你可以根据不同的 Python 环境需求来调整运行环境。

自动化执行环境

说到“自动化执行环境”,它其实是一个包含 Ansible Core 和内容集合的容器镜像。这个镜像里不仅包含运行 Playbook 所需的所有依赖,比如 Python 库,还有其他执行文件。通过 ansible-navigator 运行 Playbook 时,你可以选择不同的执行环境,甚至可以用 ansible-builder 来创建自定义的执行环境,完全根据需求来。是不是很灵活?

⾃动化控制器

以前,自动化控制器叫做红帽 Ansible Tower,提供了一个 Web 界面和 REST API,帮助你配置、运行和评估自动化作业。

在旧版的 Ansible Tower 中,系统既是控制节点,也是自动化执行环境。如果你在 Ansible Tower 里运行的自动化代码需要不同的 Python 依赖项,那么你得手动创建一个独立的 Python 虚拟环境(或“venv”)。这就导致了管理和分发变得特别麻烦,而且还需要更新运行 Ansible Tower 的系统,扩展性也比较差。

不过现在,新的自动化控制器设计已经解决了这个问题。它通过把控制节点(提供 Web UI 和 API)和自动化执行环境(现在运行在容器里)分离开来,你就可以从容器仓库部署基于容器的自动化执行环境。只需要在 Web UI 中调整配置,就能轻松地切换到特定的 Ansible Playbook。这样一来,开发人员可以更方便地部署和管理他们需要的执行环境,运行自动化代码变得简单多了!

⾃动化中⼼

自动化中心就像是一个在线仓库,用来管理和分发自动化内容。你可以从这个仓库里下载你需要的内容,类似于从一个共享的库里拿工具。通过 console.redhat.com 上的公共服务,你可以访问红帽 Ansible 认证的内容集合,非常方便。而如果你希望更高的安全性和控制力,还可以选择部署一个私有的 Automation Hub,专门管理你的私有内容。这样,不仅能保证内容的合规性,还能更灵活地控制自动化资源的使用。

RHAAP2.2架构

自动化控制器和自动化内容导航器都支持自动化执行环境,这让从开发 Playbook 到生产环境运行 Playbook 的过程变得超级顺畅。不再需要使用虚拟环境,也不需要在自动化控制器上手动安装模块和依赖项了。

你可以自定义执行环境,把组织运行 Playbook 所需的所有东西都包含进来。只要自动化内容导航器和自动化控制器能访问到同一个执行环境,你的 Playbook 就能从开发无缝过渡到生产环境,几乎不会遇到任何障碍。这种方式让开发和运维的工作都变得轻松多了。