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: Elitepython: Elitedotnet: 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!

转载于:https://www.cnblogs.com/lexiaofei/p/6806753.html

YML(2)yml 语法相关推荐

  1. yml的基本语法,以及java读取yml文件

    目录 spring Boot层级结构 基本概念 演示 spring Boot层级结构 static:保存所有的静态资源:js css images: templates:保存所有模板页面:(Sprin ...

  2. spring boot配置文件:application.yml (yml与properties文件优缺对比)

    现在我们的application.properties文件内容是: [plain]view plain copy server.port=8090 server.session-timeout=30 ...

  3. SpringBoot 优雅的读取yml(yml规范篇)

    一 认识 YAML YAML(发音 /ˈjæməl/)是一个类似 XML.JSON 的数据序列化语言.其强调以数据为中心,旨在方便人类使用:并且适用于日常常见任务的现代编程语言.因而 YAML 本身的 ...

  4. 轻松掌握开发必会的docker套路-yaml语法与docker compose.yml

    我们编程的时候常常需要定义配置文件,配置文件的格式也多种多样,有用php的数组格式的,有xml格式的,也有json格式的. 由于docker compose使用的配置文件是docker-compose ...

  5. Travis CI 配置文件 .travis.yml 的语法介绍和一些用法举例

    在 Github 项目文件夹下面添加 .travis.yml 文件. 为了运行构建,Travis CI 的系统将触发构建的存储库克隆到构建环境. 构建环境是一个隔离的虚拟机或 LXD 容器,一旦构建完 ...

  6. SpringBoot:yaml配置及语法、yml数据读取、多环境开发控制

    yaml 配置 YAML(YAML Ain't Markup Language),一种数据序列化格式 优点: 容易阅读 容易与脚本语言交互 以数据为核心,重数据轻格式 YAML文件扩展名 .yml(主 ...

  7. SpingBoot yml语法及测试总结yml文件常用的五种方式

    yml语法及测试总结yml文件常用的五种方式 引言 项目介绍 初始化SpringBoot项目 application.properties介绍 yml配置文件基本语法 实际操作测试 引言 今天在开发过 ...

  8. yml不识别_SpringBoot(2):yml配置文件和集成其他框架

    springBoot配置文件 SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者applica ...

  9. maven 不编译jasper文件_第一个SpringBoot项目、核心配置文件properties(yml、yaml)、集成jsp...

    SpringBoot简介及国内关注度 SpringBoot简介: 它用来简化 Spring 应用程序的创建和开发过程,也可以说 Spring Boot 能简化我们之前采用 SpringMVC +Spr ...

  10. 【Golang 接口自动化05】使用yml管理自动化用例

    我们在前面几篇文章中学习怎么发送数据请求,怎么处理解析接口返回的结果,接下来我们一起来学习怎么进行测试用例管理,今天我们介绍的是使用yml文件进行用例管理,所以首先我们一起来了解一下YAML和它的简单 ...

最新文章

  1. SpringBoot优雅编码之:Lombok加持
  2. Swift3.0语言教程删除字符与处理字符编码
  3. C++常量指针this
  4. 【每日一包0015】gradient-string
  5. eureka服务的注册、续约、下线
  6. 下拉框--请选择-- 浏览器渲染不同造成页面初始化不一致
  7. 如何查看oracle用户级别,用户级别的Oracle 导入导出
  8. 开启一个新的命令行窗口
  9. matlab for循环不覆盖,Matlab for 多个变量循环能不能这样啊 ,求教高手!!!!...
  10. Docker快速搭建TeamSpeak多人语音聊天服务器
  11. 张朝阳:未来文娱重点将拍更多网剧 发展UGC、短视频社交和直播社交
  12. 03-谷歌浏览器安装Sence
  13. MySQL基础_练习和一个经典面试题
  14. 算法笔记_面试题_5.验证二叉搜索树
  15. python批量删除文件名_用python批量删掉文件名中共同存在的字符
  16. tp读取配置文件机制
  17. 汇编语言中sbb是什么意思_汇编语言里 sub是 什么功能?
  18. [华硕路由器官方设置]ASUS RT-AC86U官方设置
  19. 如何用ChatGPT做品牌联名方案策划?
  20. ISTQB基础级考试心得

热门文章

  1. 使用feign调用注解在eureka上的微服务,简单学会微服务
  2. 通过正则表达式校验手机号码,拿走即用!
  3. 2022-2028年中国超声波探伤仪行业市场现状调研及发展前景分析报告
  4. 2022-2028年中国钽酸锂单晶行业市场调查分析及投资发展潜力报告
  5. Redis 笔记(05)— hash 类型(设置获取单个hash值、判断hash键是否存在、设置获取多个hash值、获取所有hash的键、获取所有hash的值、删除hash指定键)
  6. 解释型语言与编译型的必须知识点
  7. TVM darknet yolov3算子优化与量化代码的配置方法
  8. 深度学习加速器堆栈Deep Learning Accelerator Stack
  9. 人脸识别数据集精粹(下)
  10. 深度学习:梯度下降算法改进