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是一个可读性高,用来表达资料序列的编程语言。YAML参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822。Clark Evans在2001年在首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki...
NULL 博文链接:https://sqycyl.iteye.com/blog/859589
最全 Yaml 语法详解简单说明基本语法Yaml 支持的数据结构对象类型:对象的一组键值对,使用冒号结构表示数组类型:一组连词线开头的行,构成一个数组复合结构:对象和数组可以结合使用,形成复合结构纯量:纯量是最...
使用yaml语法对对象/数组进行字符串化 安装 npm install yamlify-object 用法 const yamlifyObject = require ( 'yamlify-object' ) ; const obj = { array : [ 2 , 'two' , { emptyArray : [ ] , } , ] , ...
维姆·雅姆(Vim Yaml) 来自语法文件 由于核心yaml语法,vim 7.4中的Yaml文件确实很慢。 此语法更简单/更快。 g:yaml_limit_spell 设置为1可将拼写检查(如果启用了拼写检查)限制为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 . ...
一个命令行工具,使用在YAML文件中定义的声明性语法产生H IGH大号伊维尔基尼的microService&无服务器体系结构的设计图。 适用于 只是一个 在平面YAML文本文件中输入数据 可用于shell脚本 为什么? 我更喜欢从功能而...
正如YAML所表达的YAML Ain’t(=am not) Markup Language,YAML是一种简洁的非标记语言。YAML以数据为中心,使用空白缩进,分行组织数据,从而使得表示更加简洁易读。
将其安装在包含YAML的任何存储库上,它将在您打开的任何Pull Request上指出汉堡,如下所示:入门YAMBURGER的作者维护您在此处看到的源代码的托管版本。 组态YAMBURGER支持验证包含自定义标签(例如!tag )的YAML。 ...
yh-YAML荧光笔虚拟语法突出显示器,可为YAML输出jq样式带来色彩。这个项目始于作者在使用kubernetes cli和YAML输出( kubectl get something -o yaml )时无法放弃颜色。无法找到另一个YAML荧光笔,他可以在上面简单...
该漏洞扫描器分为端口扫描模块、SSH弱口令扫描模块及OS识别模块。 使用Python语言编程实现。 有CMD执行和图形界面执行两种操作方式。 用户输入目标设备的IP地址及扫描的端口号范围,根据需要选择要扫描的内容,系统...
Nuclei是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。 小知识: YAML(/ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达数据序列化的...
XML实用教程电子教案 一些PPT的教案 学XML基础的可以看看
采用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....
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....
具体来说,如果您想了解YAML语法,可以转到的。 文件扩展名: .yaml , .yml什么是简单YAML? 该API是配置包装程序的端口,其中添加了一些功能,因此您可以在不依赖Bukkit的情况下随时随地使用此库。 简单的添加类 ...
realname: _ui: textbox _label: "业主姓名" _filters: "trim" _validations: - ["not_empty","名称不能为空"] class: "txt-inp" foreach: true ownecard: _ui: textbox _label: "身份证号码" ...
yaml文件 Yaml 是⼀种所有编程语⾔可⽤的友好的数据序列化标准。语法和其他⾼阶语⾔类似,并且可以简单表达字 典、列表和其他基本数据类型的 形态。语法规则如下: 1. ⼤⼩写敏感。 2. 使⽤缩进表⽰层级关系。 3. 使...
1,基本语法 2,数据类型 3,对象 4,数组 5,复合结构 6,纯量 7,引用