Ansible - 剧本



在本章中,我们将学习 Ansible 中的剧本。

剧本是编写 Ansible 代码的文件。剧本以 YAML 格式编写。YAML 代表 Yet Another Markup Language。剧本是 Ansible 的核心功能之一,告诉 Ansible 执行什么操作。它们就像 Ansible 的待办事项清单,其中包含任务列表。

剧本包含用户希望在特定机器上执行的步骤。剧本按顺序运行。剧本是 Ansible 所有用例的基础。

剧本结构

每个剧本都包含一个或多个剧本。剧本使用剧本进行结构化。一个剧本中可以有多个剧本。

剧本的功能是将针对特定主机定义的一组指令进行映射。

YAML 是一种严格类型的语言;因此,在编写 YAML 文件时需要格外小心。有不同的 YAML 编辑器,但我们更喜欢使用简单的编辑器,如 notepad++。只需打开 notepad++ 并复制粘贴下面的 yaml,然后将语言更改为 YAML(语言 → YAML)。

YAML 以 ---(3 个连字符)开头

创建剧本

让我们从编写一个示例 YAML 文件开始。我们将逐步介绍 yaml 文件中编写的每个部分。

--- 
   name: install and configure DB
   hosts: testServer
   become: yes

   vars: 
      oracle_db_port_value : 1521
   
   tasks:
   -name: Install the Oracle DB
      yum: <code to install the DB>
    
   -name: Ensure the installed service is enabled and running
   service:
      name: <your service name>

以上是一个示例剧本,我们试图涵盖剧本的基本语法。将上述内容保存在一个名为test.yml的文件中。YAML 语法需要遵循正确的缩进,并且在编写语法时需要稍微小心。

不同的 YAML 标签

现在让我们了解不同的 YAML 标签。下面描述了不同的标签:

name

此标签指定 Ansible 剧本的名称。就像此剧本将执行什么操作一样。可以为剧本指定任何逻辑名称。

hosts

此标签指定我们要针对其运行任务的主机或主机组的列表。hosts 字段/标签是必需的。它告诉 Ansible 在哪些主机上运行列出的任务。这些任务可以在同一台机器上运行,也可以在远程机器上运行。可以在多台机器上运行任务,因此 hosts 标签也可以包含一组主机条目。

vars

Vars 标签允许您定义可以在剧本中使用的变量。用法类似于任何编程语言中的变量。

tasks

所有剧本都应包含任务或要执行的任务列表。任务是要执行的一系列操作。tasks 字段包含任务的名称。这作为用户的帮助文本。它不是必需的,但在调试剧本时非常有用。每个任务在内部链接到一段称为模块的代码。一个应该执行的模块,以及要执行的模块所需的参数。

广告