Jump to section

什么是 Ansible Playbook?

复制 URL

Ansible® Playbook 是自动化任务的蓝图,可在有限人工干预的前提下跨一系列 IT 解决方案执行复杂的 IT 操作。Ansible 通过 playbook 得知应该对哪些设备执行什么操作。

用户不必手动将同一操作应用于跨 IT 环境的数百或数千种类似技术,只要执行一个 playbook 就能针对指定类型的清单(如一组路由器)完成相同操作。playbook 还可以充当预编写代码的框架,开发人员可以即时使用这些代码,或将它们用作起始模板。

playbook 常被用来自动处理 IT 基础架构(例如,操作系统和 Kubernetes 平台)、网络、安全系统,以及 GitHub 等代码存储库。IT 人员可以利用 playbook 进行应用、服务、服务器节点和其他设备的编程,无需花费人力去从头创建。

另外,playbook 及其中的条件、变量和任务,都可以无限期保存、分享或重复使用。这使得 IT 团队更容易将运维知识写成代码,并确保一致地执行相同的操作。

Ansible Playbook 是对指定清单或主机组自动执行的任务列表。一个或多个 Ansible 任务可以组合在一起形成一个 play,即一组映射到特定主机并按一定顺序排序的任务,这些任务按照编写顺序来执行。一个 playbook 可以包含 1 个或多个 play 以及 Ansible 角色——可在多个 play 中运行或跨 playbook 重复使用多个任务及相关自动化资产。

任务由模块执行,每个模块执行 playbook 中的某一项任务。模块内包含的元数据将决定执行任务的时间和地点,以及执行的用户。有数千个 Ansible 模块执行各式各样的 IT 任务,例如:

云管理

oci_vcn 在 Oracle 云基础架构环境中创建、删除或更新虚拟网络。同样,vmware_cluster 负责添加、删除或更新 VMware vSphere 集群。

用户管理

seloginLinux® 操作系统(OS)用户映射到 SELinux 用户,而 gitlab_user 负责创建、更新或删除 GitLab 用户。

网络

有数十个模块负责处理应用编程接口(API);Cisco IOSNXOSIOS XR 设备;以及 F5 BIG-IP 服务和 Arista EOS 云网络操作系统。

安全防护

Openssh_cert 生成 OpenSSH 主机或用户证书,ipa_config 管理全局 FreeIPA 配置设置。

配置管理

pip 管理 Python 库的依赖关系,assemble 负责合并片段中的配置文件。

通信

mail 可以根据特定标准自动发送电子邮件,snow_record 创建、删除或更新 ServiceNow 中的单个记录。

Ansible 能够与不同设备类别通信,包括从云端 REST API 到 Linux 和 Windows 系统,以及网络硬件等等。以下示例显示两个 Ansible 模块自动更新两种服务器:

--- - name: Update web servers   hosts: webservers   become: true     tasks:     - name: Ensure apache is at the latest version       ansible.builtin.yum:         name: httpd         state: latest     - name: Write the apache config file       ansible.builtin.template:         src: /srv/httpd.j2         dest: /etc/httpd.conf         mode: "0644"   - name: Update db servers   hosts: databases   become: true     tasks:     - name: Ensure postgresql is at the latest version       ansible.builtin.yum:         name: postgresql         state: latest     - name: Ensure that postgresql is started       ansible.builtin.service:         name: postgresql         state: started 

此 playbook 中包含两个 play: 

  • 第一个 play 检查 Web 服务器软件是否为最新版本,并根据需要运行更新。
  • 第二个 play 检查数据库服务器软件是否为最新版本,并根据需要运行更新。

Ansible 使用的是 YAML 语法。根据您询问对象的不同,YAML 可以代表另一种标记语言,或者,YAML 不代表任何标记语言(一种递归缩写)。另外,还有两种不同,但得到完全认可的 YAML 文件扩展名:.yaml 或 .yml。 

Ansible Playbook 有两种使用方式:从命令行接口(CLI)使用,或者使用红帽® Ansible 自动化平台的按钮部署。

由于 YAML 是一种人类可读的语言,具有特定领域专业知识的 IT 专业人员(如网络、安全或云)无需学习复杂的编程语言,就能创建 playbook。

从 CLI 使用时

安装 Ansible 开源项目或红帽 Ansible 自动化平台(就像在红帽企业 Linux CLI 中输入 sudo yum install ansible 一样简单)后,您需要做的就只剩使用 ansible-playbook 命令来运行 Ansible Playbook 了。

从平台内使用时

红帽 Ansible 自动化平台网络用户接口中包含 Ansible Playbook 按钮部署,后者可作为大型任务(或作业模板)的一部分。这些部署附带额外的安全措施,对于 IT 自动化新手或在 CLI 方面经验不足的用户特别有帮助。

红帽 Ansible 自动化平台是一个统一的平台,可以针对各种用例自动化整个 IT 域的流程,包括基础架构、混合云、安全防护和网络,一直到边缘位置。Ansible 自动化平台包括实施企业级自动化所需的所有工具,包括事件驱动解决方案、playbook 和分析。另外,它允许团队通过可视化控制面板、基于角色的访问控制等功能来集中管理和控制您的 IT 基础架构,从而降低运维的复杂性。

借助红帽订阅,您可以获得来自红帽以及我们的合作伙伴的受支持的认证内容、对托管管理服务的访问权限以及生命周期技术支持,从而在整个企业中扩展自动化。红帽已成功服务数千客户,积累了能提供专业洞察和指导的宝贵经验。

搭载 IBM watsonx Code Assistant 的红帽 Ansible Lightspeed 的推出使新手能够更轻松地使用 Ansible,还可帮助经验丰富的自动化团队更高效地学习、创建以及维护红帽 Ansible 自动化平台的内容。此生成式 AI 服务接受用户输入的提示,然后与 IBM watsonx 基础模型交互,产生根据 Ansible 最佳实践构建的代码建议,帮助您将主题专业知识转化为可信可靠的 Ansible 代码,进而扩展到其他团队和各个域。

Icon-Red_Hat-Media_and_documents-Quotemark_Open-B-Red-RGB 红帽 Ansible 自动化平台的内置功能提供了一种一揽子的加速利器。我们有很多供应商和合作伙伴都用它来编写脚本以安装、配置和维护其技术,它已成了我们公认的标准工具。”

Jesse Amerson

Ulta Beauty IT 总监

自动化可以为您节省多少时间?

只需回答几个简短的问题,就能了解在整个企业或机构中使用 Ansible 自动化平台可以助您节省多少时间。

扩展阅读

文章

Ansible 基础知识入门

Ansible 是一种对 IT 流程自动化的工具,如置备和配置管理等流程。希望能通过这篇 Ansible 关键概念的介绍,帮助您了解 Ansible 的基础知识。

文章

什么是业务流程管理?

业务流程管理(BPM)是指对端到端业务流程进行建模、分析和优化,以实现战略业务目标。

文章

为什么选择红帽实现自动化?

红帽 Ansible 自动化平台中包含了在团队间分享自动化以及实现企业级自动化所需的各种工具。

详细了解自动化

产品

红帽的战略顾问将从大局出发,以战略性视角审视企业发展,分析您当前面临的业务挑战,并提供全面、低成本、高效益的解决方案,帮助您轻松应对各项挑战。

无论您处于自动化之旅的哪个阶段,这个实施企业级自动化的平台都能助您一臂之力

相关资源

培训

免费培训课程

Ansible 必备:轻松实现自动化之技术概览

免费培训课程

针对 SAP 的红帽 Ansible 自动化