`

YAML 语法

 
阅读更多
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语法学习.md

    yaml语法学习.md

    YAML语法-用法说明书

    YAML是一个可读性高,用来表达资料序列的编程语言。YAML参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822。Clark Evans在2001年在首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki...

    YAML语法&用法

    NULL 博文链接:https://sqycyl.iteye.com/blog/859589

    最全 Yaml 语法详解

    最全 Yaml 语法详解简单说明基本语法Yaml 支持的数据结构对象类型:对象的一组键值对,使用冒号结构表示数组类型:一组连词线开头的行,构成一个数组复合结构:对象和数组可以结合使用,形成复合结构纯量:纯量是最...

    yamlify-object:使用Yaml语法对对象数组进行字符串化

    使用yaml语法对对象/数组进行字符串化 安装 npm install yamlify-object 用法 const yamlifyObject = require ( 'yamlify-object' ) ; const obj = { array : [ 2 , 'two' , { emptyArray : [ ] , } , ] , ...

    vim-yaml:覆盖Yaml文件的vim语法

    维姆·雅姆(Vim Yaml) 来自语法文件 由于核心yaml语法,vim 7.4中的Yaml文件确实很慢。 此语法更简单/更快。 g:yaml_limit_spell 设置为1可将拼写检查(如果启用了拼写检查)限制为Yaml注释和字符串。

    tree-sitter-yaml:用于保姆的YAML语法

    面向YAML( )语法 安装 npm install tree-sitter-yaml tree-sitter 用法 const Parser = require ( "tree-sitter" ) ; const YAML = require ( "tree-sitter-yaml" ) ; const parser = new Parser ( ) ; parser . ...

    draft:使用YAML语法生成高级云架构图

    一个命令行工具,使用在YAML文件中定义的声明性语法产生H IGH大号伊维尔基尼的microService&无服务器体系结构的设计图。 适用于 只是一个 在平面YAML文本文件中输入数据 可用于shell脚本 为什么? 我更喜欢从功能而...

    YAML基础语法

    正如YAML所表达的YAML Ain’t(=am not) Markup Language,YAML是一种简洁的非标记语言。YAML以数据为中心,使用空白缩进,分行组织数据,从而使得表示更加简洁易读。

    yamburger:YAML语法让您失望吗? 那是一个汉堡!

    将其安装在包含YAML的任何存储库上,它将在您打开的任何Pull Request上指出汉堡,如下所示:入门YAMBURGER的作者维护您在此处看到的源代码的托管版本。 组态YAMBURGER支持验证包含自定义标签(例如!tag )的YAML。 ...

    yh:YAML语法荧光笔可将颜色带到kubectl输出

    yh-YAML荧光笔虚拟语法突出显示器,可为YAML输出jq样式带来色彩。这个项目始于作者在使用kubernetes cli和YAML输出( kubectl get something -o yaml )时无法放弃颜色。无法找到另一个YAML荧光笔,他可以在上面简单...

    python实现的漏洞扫描器

    该漏洞扫描器分为端口扫描模块、SSH弱口令扫描模块及OS识别模块。 使用Python语言编程实现。 有CMD执行和图形界面执行两种操作方式。 用户输入目标设备的IP地址及扫描的端口号范围,根据需要选择要扫描的内容,系统...

    十分好用的漏洞扫描工具

    Nuclei是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。 小知识: YAML(/ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达数据序列化的...

    XML实用教程电子教案

    XML实用教程电子教案 一些PPT的教案 学XML基础的可以看看

    k8s_learn.zip

    采用markdown编写,编写k8s各个功能,0.Yaml语法,1.k8s.资源清单,2.k8s.Pod生命周期,健康检查,3.k8s资源控制器,4.1.k8s.svc(Service),4.2.k8s.Ingress-Nginx,5.1.k8s.ConfigMap,5.2.k8s.Secret,6.k8s.存储Volume.PV....

    Python读取YAML文件过程详解

    YAML语法 学习手册 Python读取方法: import yaml with open('demo1.yaml', 'r', encoding='utf-8') as f: file_content = f.read() content = yaml.load(file_content, yaml.FullLoader) print(content) demo1....

    Simple-YAML:一种Java API,它提供了一种易于使用的方式来使用YAML格式存储数据

    具体来说,如果您想了解YAML语法,可以转到的。 文件扩展名: .yaml , .yml什么是简单YAML? 该API是配置包装程序的端口,其中添加了一些功能,因此您可以在不依赖Bukkit的情况下随时随地使用此库。 简单的添加类 ...

    app-yaml--语法

    realname: _ui: textbox _label: "业主姓名" _filters: "trim" _validations: - ["not_empty","名称不能为空"] class: "txt-inp" foreach: true ownecard: _ui: textbox _label: "身份证号码" ...

    yaml配置文件解析-yaml

    yaml文件 Yaml 是⼀种所有编程语⾔可⽤的友好的数据序列化标准。语法和其他⾼阶语⾔类似,并且可以简单表达字 典、列表和其他基本数据类型的 形态。语法规则如下: 1. ⼤⼩写敏感。 2. 使⽤缩进表⽰层级关系。 3. 使...

    YAML入门语法,基本组成元素介绍

    1,基本语法 2,数据类型 3,对象 4,数组 5,复合结构 6,纯量 7,引用

Global site tag (gtag.js) - Google Analytics