什么是 Ansible Playbook?

复制 URL

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

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

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

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

使用这个免费的互动实验室撰写您的第一个 Playbook

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

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

云管理

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

用户管理

seloginLinux® 操作系统用户映射到 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 中的单个记录。

通过免费学习路径了解 playbook 基础知识

红帽资源

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 检查数据库服务器软件是否为最新版本,并根据需要运行更新。

获取关于此 playbook 的更多详情

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 方面经验不足的用户特别有帮助。

运行自有 playbook 的快捷指南

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

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

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

了解有关 Ansible 自动化平台的更多信息

 

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

Jesse Amerson

Ulta Beauty IT 总监

阅读完整案例

中心

红帽官方博客

获取有关我们的客户、合作伙伴和社区生态系统的最新信息。

所有红帽产品试用

我们的免费试用可让您亲身体验红帽的产品功能,为获得认证做好准备,或评估某个产品是否适合您的企业。

扩展阅读

如何制定 IT 自动化策略

孤立式自动化能帮些小忙,但能做的仅限于此。要将自动化扩展到 IT 运维的所有领域,您需要一个能够统一团队、流程和孤立工作流的自动化策略。

什么是访问控制?

访问控制是一项安全授权技术,用于确定用户或系统可以查看或使用 IT 基础架构中的哪些特定资源。

什么是虚拟基础架构管理?自动化能提供哪些帮助?

虚拟基础架构管理是指协调软件、IT 资源和其他工具,在虚拟机和相关 IT 环境的整个生命周期内对其进行管理。

自动化与管理 相关资源

特色产品

相关文章