type
status
date
slug
summary
tags
category
icon
password

编写和运行Ansible Playbook

Ansible Playbook 是一种用于自动化任务的工具,通过书写一系列任务(tasks)来实现系统配置、软件部署或其他 IT 操作的自动化。Playbook 使用 YAML 语法,结构化地定义每一步操作。

单任务Playbook 结构示例:

YAML 语法要点:

  • 缩进:使用空格,推荐使用2个或4个空格来缩进。
  • 空行:可以使用空行来提高可读性。
  • 缩进规则:子项必须比父项缩进更多。

注意事项:

  • 只能使用空格来缩进,不能使用制表符。
  • 如果使用 vi 编辑器,可以在 .vimrc 中配置以优化 YAML 文件的编写体验,例如:

多任务 Playbook 示例

关键点

  1. hosts: 指定要操作的目标主机。
  1. tasks: 定义要执行的多个任务。
  1. 顺序: 任务按顺序执行,依次创建用户、安装 nginx、复制配置文件。
要查找适合用于任务的模块,您可以按照以下步骤:
  1. Ansible 官方文档:
      • 访问 Ansible 模块文档 来查看 ansible.builtin 模块集合。
      • 模块按照用途分类,涵盖文件操作、包管理、用户管理等常见任务。
  1. 使用 ansible-navigator 查找模块:
      • 启动 ansible-navigator,然后键入 :collections,可以查看已安装的模块集合。
      • 使用冒号 : 后跟模块行号,可以获取详细的模块文档,按 Esc 键返回上一层列表。
  1. 使用命令行帮助:
      • 使用 ansible-doc -l 可以列出所有可用模块。
      • 使用 ansible-doc <模块名> 可以查看特定模块的文档,获取其参数和使用示例。
通过这些工具,您可以方便地查找和了解 Ansible 模块,并应用到您的任务中。
在 Ansible 中,有几个关键概念需要理解:
  1. Ansible Galaxy 和 Automation Hub:
      • Ansible Galaxy: 是一个公开的集合库,提供社区发布的 Ansible 内容集合。网址为 Ansible Galaxy
      • Automation Hub: 是由企业内部管理的私有自动化内容库,可以通过 Red Hat Automation Hub 访问。
  1. FQCN (Fully Qualified Collection Name):
      • 模块使用时的全称,格式为 collection_name.module_name,例如 ansible.builtin.copy
      • 在 Playbook 中,可以省略 FQCN,但为了避免冲突和提高可读性,推荐使用全称。
  1. Idempotency (幂等性):
      • Ansible 的任务大多是幂等的,即重复运行相同任务不会改变系统状态。比如,如果文件已存在,使用 copy 模块将不会再次覆盖它。
这些概念帮助确保在使用 Ansible 时,任务具有可重复性和一致性。
 

1. 执行 Playbook

运行命令:
展示 Playbook 执行的详细结果。

2. Playbook 示例

  • hosts:目标主机。
  • tasks:安装 httpd 最新版本。

3. 执行结果

输出:
说明目标主机安装了最新的 httpd

4. 小结

通过 Playbook 自动化执行软件安装任务,确保目标主机达到预期状态。

Ansible Navigator 输出详细程度与语法检查

1. 输出详细程度

使用 ansible-navigator run 时,可以通过 -v 选项设置输出详细程度,分为四个级别:
选项
描述
-v
显示任务结果。
-VV
显示任务结果和任务配置。
-VVV
显示关于受管主机连接情况的更多信息。
-VVVV
增加连接插件的详细信息,包括执行脚本的用户及其命令。

2. 语法验证

使用以下命令检查 Playbook 语法:
如果语法有误,系统将返回错误信息,指明错误位置。

示例输出:

3. 执行空运行

使用 --check 选项进行空运行:
此命令将检测 Playbook 的更改而不实际执行任何操作。

练习:

Ansible Playbook 示例及步骤:

Ansible Playbook 示例

步骤

  1. 语法检查
    1. 运行 Playbook
      1. 验证服务
         
         
        相关文章
        RHCE 9版本考试资料
        Lazy loaded image
        40.总复习-4 实验手册:galaxy角色配置与部署
        Lazy loaded image
        39.总复习-3 实验手册:配置 RHEL 系统角色和用户管理
        Lazy loaded image
        38.总复习-2 实验手册:Ansible Web 服务器配置和测试
        Lazy loaded image
        37.总复习-1 实验手册:配置和运行Ansible脚本
        Lazy loaded image
        36:总复习
        Lazy loaded image
        05:实施Playbook-4 实施多个play03:实施Playbook-2 管理Ansible配置文件
        Loading...
        みなみ
        みなみ
        一个普通的干饭人🍚
        最新发布
        02-生成AIパスポート試験対策:第2章「生成AI」
        2025-2-1
        01-生成AIパスポート試験対策:第1章「人口知能」
        2025-2-1
        究極のAWS認定 AI 実践者 AIF-C01 - 学習メモ
        2025-1-27
        不要再傻傻的直接买NISA啦
        2025-1-27
        Kubernetes、仮想マシンとコンテナの概念を超簡単に解説!
        2025-1-24
        529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
        2025-1-22
        公告
        🎉欢迎访问我的博客🎉
        - 感谢您的支持 --
        本站点于2024/09/01建立
        👏主要分享IT相关主题👏
        系统管理:
        Redhat…
        容器和编排:
        Kubernetes、Openshift…
        云计算:
        AWS、IBM…
        AI入门
        以及技术笔记和考证经验
        定期更新,欢迎互动。
        感谢访问!
        快速浏览相关标签