创建 Playbook

Playbook 是采用 YAML 格式的自动化蓝图,Ansible 使用它来部署和配置被管理节点。

Playbook

Play(剧本)列表定义了 Ansible 从上到下执行操作的顺序,以实现一个整体目标。

Play

任务(Tasks)是有序列表,映射到清单(inventory)中的被管理节点。

Task

对单个模块的引用,定义了 Ansible 执行的具体操作。

模块 (Module)

Ansible 在被管理节点上运行的代码单元或二进制文件。Ansible 模块被分组在集合(collections)中,每个模块都有一个 全限定集合名称 (FQCN)

完成以下步骤,创建一个能够 ping 你的主机并打印 “Hello world” 消息的 playbook

  1. 在你之前创建的 ansible_quickstart 目录中创建一个名为 playbook.yaml 的文件,内容如下

    - name: My first play
      hosts: myhosts
      tasks:
       - name: Ping my hosts
         ansible.builtin.ping:
    
       - name: Print message
         ansible.builtin.debug:
           msg: Hello world
    
  2. 运行你的 playbook。

    ansible-playbook -i inventory.ini playbook.yaml
    

Ansible 返回以下输出

PLAY [My first play] ****************************************************************************

TASK [Gathering Facts] **************************************************************************
ok: [192.0.2.50]
ok: [192.0.2.51]
ok: [192.0.2.52]

TASK [Ping my hosts] ****************************************************************************
ok: [192.0.2.50]
ok: [192.0.2.51]
ok: [192.0.2.52]

TASK [Print message] ****************************************************************************
ok: [192.0.2.50] => {
    "msg": "Hello world"
}
ok: [192.0.2.51] => {
    "msg": "Hello world"
}
ok: [192.0.2.52] => {
    "msg": "Hello world"
}

PLAY RECAP **************************************************************************************
192.0.2.50: ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
192.0.2.51: ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
192.0.2.52: ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

在输出中你可以看到

  • 你为 play 和每个任务定义的名称。你应该始终使用具有描述性的名称,以便于验证和排除 playbook 的故障。

  • “Gathering Facts”(收集事实)任务是隐式运行的。默认情况下,Ansible 会收集关于清单的信息,以便在 playbook 中使用。

  • 每个任务的状态。每个任务的状态为 ok,这意味着它运行成功。

  • Play 总结(recap),它汇总了每个主机在 playbook 中所有任务的结果。在本例中,共有三个任务,因此 ok=3 表示每个任务都运行成功。

恭喜,你已经开始使用 Ansible 了!

另请参阅

Ansible Playbook

开始为实际场景构建 playbook。

使用 Playbook

深入了解 Ansible playbook 的详细信息。

Ansible 提示与技巧

获取使用 playbook 的技巧和窍门。

发现变量:事实 (Facts) 和魔术变量

了解更多关于 playbook 中 gather_facts 关键字的信息。