YAML 语法
来源:yaml
这个页面提供一个正确的 YAML 语法的基本概述, 它被用来描述一个 playbooks(我们的配置管理语言).
我们使用 YAML 是因为它像 XML 或 JSON 是一种利于人们读写的数据格式. 此外在大多数变成语言中有使用 YAML 的库.
Attention
几个语法要点很简单,然而没有分号的语法需要注意缩进规则:同一层的变量要有相同的缩进,不然会将\t或\n当做字符串。注意空格。
基本的 YAML
对于 Ansible, 每一个 YAML 文件都是从一个列表开始. 列表中的每一项都是一个键值对, 通常它们被称为一个 “哈希” 或 “字典”. 所以, 我们需要知道如何在 YAML 中编写列表和字典.
YAML 还有一个小的怪癖. 所有的 YAML 文件(无论和 Ansible 有没有关系)开始行都应该是 ---. 这是 YAML 格式的一部分, 表明一个文件的开始.
列表中的所有成员都开始于相同的缩进级别, 并且使用一个 "- " 作为开头(一个横杠和一个空格):
---
# 一个美味水果的列表
- Apple
- Orange
- Strawberry
- Mango
一个字典是由一个简单的 键: 值 的形式组成(这个冒号后面必须是一个空格):
---
# 一位职工的记录
name: Example Developer
job: Developer
skill: Elite
字典也可以使用缩进形式来表示, 如果你喜欢这样的话:
---
# 一位职工的记录
{name: Example Developer, job: Developer, skill: Elite}
Ansible并不是太多的使用这种格式, 但是你可以通过以下格式来指定一个布尔值(true/fase):
---
create_key: yes
needs_agent: no
knows_oop: True
likes_emacs: TRUE
uses_cvs: false
让我们把目前所学到的 YAML 例子组合在一起. 这些在 Ansible 中什么也干不了, 但这些格式将会给你感觉:
---
# 一位职工记录
name: Example Developer
job: Developer
skill: Elite
employed: True
foods:
- Apple
- Orange
- Strawberry
- Mango
languages:
ruby: Elite
python: Elite
dotnet: Lame
这就是你开始编写 Ansible playbooks 所需要知道的所有 YAML 语法.
Gotchas
尽管 YAML 通常是友好的, 但是下面将会导致一个 YAML 语法错误:
foo: somebody said I should put a colon here: so I did
你需要使用引号来包裹任何包含冒号的哈希值, 像这样:
foo: "somebody said I should put a colon here: so I did"
然后这个冒号将会被结尾.
此外, Ansible 使用 “{{ var }}” 来引用变量. 如果一个值以 “{” 开头, YAML 将认为它是一个字典, 所以我们必须引用它, 像这样:
foo: "{{ variable }}"
So do it,and change it,no regret!
分享到:
相关推荐
**YAML(YAML Ain't Markup Language)**是一种高级的数据序列化语言,广泛用于配置文件、数据交换和脚本语言中的数据表示。...理解和掌握 YAML 语法对于任何涉及到配置文件和数据交换的工作都至关重要。
yaml语法学习.md
YAML是一个可读性高,用来表达资料序列的编程语言。YAML参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822。Clark Evans在2001年在首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki...
在本文中,我们将深入探讨 YAML 的基本语法和主要特性。 ### 基本语法 1. **缩进规则**:YAML 文件中的缩进非常重要,用于表示数据的层次结构。值得注意的是,YAML 不允许使用 Tab 键进行缩进,只能使用空格。缩进...
springboot基础学习,包括微服务架构;yaml语法;自动装配原理;JSR303校验;web开_springboot-study
YAML 基础语法 YAML(YAML Ain’t Markup Language)是一种简洁的非标记语言,使用空白缩进和分行组织数据,使得表示更加简洁易读。本文将详细介绍 YAML 的基本语法和数据类型。 一、基本规则 1. 大小写敏感 2. ...
使用yaml语法对对象/数组进行字符串化 安装 npm install yamlify-object 用法 const yamlifyObject = require ( 'yamlify-object' ) ; const obj = { array : [ 2 , 'two' , { emptyArray : [ ] , } , ] , ...
YAML的语法特性包括缩进表示层次关系,以及支持字符串、数字、列表、字典等多种数据类型。这使得它成为配置文件的理想选择,特别是当配置包含复杂结构时。 在实际项目中,理解如何使用`configparser`处理INI文件和`...
在0.6.2版本中,YAML-CPP库对错误处理进行了优化,提供了丰富的异常机制,当遇到无效的YAML语法或类型转换失败时,会抛出相应的异常,帮助开发者快速定位问题。 总之,YAML-CPP库是C++开发者处理YAML数据的强大工具...
综上所述,处理yaml文件涉及的知识点包括:yaml语法、C#编程、`YamlDotNet`库的使用、数据序列化与反序列化、C++中的yaml-cpp库、Python的`PyYAML`库、OpenCV的`FileStorage`类以及跨语言的数据处理能力。
面向YAML( )语法 安装 npm install tree-sitter-yaml tree-sitter 用法 const Parser = require ( "tree-sitter" ) ; const YAML = require ( "tree-sitter-yaml" ) ; const parser = new Parser ( ) ; parser . ...
维姆·雅姆(Vim Yaml) 来自语法文件 由于核心yaml语法,vim 7.4中的Yaml文件确实很慢。 此语法更简单/更快。 g:yaml_limit_spell 设置为1可将拼写检查(如果启用了拼写检查)限制为Yaml注释和字符串。
Ingress YAML文件是配置Ingress规则的文本文件,它使用YAML语法来描述HTTP和HTTPS路由规则,以便将外部请求定向到正确的目标服务。下面,我们将深入探讨Ingress的概念、作用以及如何通过YAML文件进行配置。 ### ...
它以其简单易用的YAML语法和无代理架构而著名,使得系统管理员可以轻松地自动化复杂的工作流程。 在压缩包的文件名称列表中,我们只看到"yaml-0.1.5",这可能是指解压后会得到一个名为"yaml-0.1.5"的目录,其中包含...
3. YAML语法:遵循YAML的语法规则,避免出现缩进错误,这可能导致资源无法正确加载。 4. 集群安全:使用最新版本的组件以获得最新的安全补丁,定期更新集群。 5. 监控与日志:配置适当的监控和日志记录,以便及时...
YAML 语法约定 **3.1 大小写敏感** YAML 是大小写敏感的,所以在编写时要注意区分。 **3.2 注释** 以 `#` 开头的行被视为注释,不会被解析。 **3.3 Unicode 编码** YAML 使用 Unicode 编码作为字符标准。 **3.4...
1. **YAML语法**:YAML以空格缩进区分层级,而非XML或JSON的尖括号或花括号。键值对以冒号分隔,例如`key: value`。行首的`-`表示列表项。 2. **数据类型**:YAML支持字符串、整数、浮点数、布尔值、日期、null等...
Kubernetes(简称k8s)是目前非常流行的容器编排系统,用于管理云环境中的容器化应用。...同时,了解YAML语法以及k8s资源对象的结构也至关重要。只有这样,你才能正确地部署和管理你的k8s项目,确保应用的稳定运行。
在本文档中,我们将详细介绍 HomeAssistant 的配置文件、YAML 语法、组件和平台的概念,以及如何使用环境变量等。 一、HomeAssistant 配置文件 HomeAssistant 在首次启动时,会生成一个默认配置文件,以实现 Web ...
一个命令行工具,使用在YAML文件中定义的声明性语法产生H IGH大号伊维尔基尼的microService&无服务器体系结构的设计图。 适用于 只是一个 在平面YAML文本文件中输入数据 可用于shell脚本 为什么? 我更喜欢从功能而...