Ansible `yaml` 基础

Ansible yaml 基础

一、简介

  • 功能:YAML 是一种以数据为中心的序列化格式,旨在使配置文件和数据传输更加人类可读和可写。它常用于 Ansible Playbook 中来定义自动化任务的结构和配置。
  • 使用场景:YAML 常用于配置管理、数据序列化和数据交换。其简单易读的语法特别适合描述 Ansible 的 Playbook 和其他配置文件。

二、基本语法

2.1 键值对

key: value
  • 解释:键值对(key-value pair)是 YAML 的基础结构,key 是一个字符串,value 是与键关联的值。键和值之间用冒号 : 分隔,冒号后面跟一个空格。

2.2 列表

- item1
- item2
- item3
  • 解释:列表(List)用于表示一组有序的数据项。每个项前面用短横线(-)表示,并且与短横线之间有一个空格。

2.3 字典(映射)

dictionary:
  key1: value1
  key2: value2
  • 解释:字典(Dictionary,也称为映射 Mapping)用于表示一组键值对的集合。嵌套字典表示多层级数据结构。

2.4 缩进

  • 解释:YAML 使用空格来表示层级关系,通常使用两个空格。不能使用 Tab 键来缩进,否则会导致解析错误。

示例:

person:
  name: John Doe
  age: 30
  address:
    street: 123 Main St
    city: Anytown

2.5 注释

  • 功能:注释用于在 YAML 文件中添加说明性文本,注释不会被解析器处理。

示例:

# 这是一个注释
name: John Doe  # 这是键值对的注释

2.6 多行字符串

  • 保留换行符:使用管道符号 | 保留多行字符串的换行符。

示例:

multiline_string: |
  这是第一行。
  这是第二行。
  这是第三行。
  • 折叠换行符:使用右尖括号 > 折叠多行字符串的换行符。

示例:

folded_string: >
  这是第一行。
  这是第二行。
  这是第三行。

2.7 字符串引号

  • 单引号和双引号:可以使用单引号(')或双引号(")来表示字符串。双引号可以解析转义字符,而单引号不会。

示例:

single_quoted: '这是一个单引号字符串'
double_quoted: "这是一个双引号字符串,可以包含转义字符如换行符\n"

2.8 锚点和别名

  • 锚点(Anchor):使用 & 定义一个锚点,可以在 YAML 文件中重复使用。
  • 别名(Alias):使用 * 引用一个已定义的锚点。

示例:

default_settings: &defaults
  timeout: 30
  retries: 3

user_settings:
  <<: *defaults
  retries: 5  # 覆盖默认值

三、使用示例

3.1 简单配置文件

server:
  hostname: example.com
  port: 80
  enabled: true
  • 解释:这是一个简单的 YAML 配置文件,包含一个服务器的主机名、端口和启用状态。

3.2 复杂嵌套结构

websites:
  - name: Personal Blog
    url: https://blog.example.com
    languages:
      - English
      - Spanish
  - name: Company Site
    url: https://www.example.com
    languages:
      - English
  • 解释:这是一个复杂的 YAML 文件,包含多个嵌套结构,表示网站的相关信息。

四、注意事项

  • 空格和缩进:YAML 对缩进非常敏感,所有层级必须使用相同数量的空格缩进,建议使用两个空格。
  • 数据类型:YAML 会自动推断数据类型,例如布尔值 truefalse,数字 123,但也可以使用引号将其显式表示为字符串。
  • 文件格式:YAML 文件通常以 .yml.yaml 为扩展名,推荐使用 UTF-8 编码。
  • 转义字符:在双引号字符串中可以使用转义字符(如 \n 表示换行),单引号字符串不会解析转义字符。
  • 多行字符串:选择适当的多行字符串表示方式(|>)来处理换行符,确保数据格式正确。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟生啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值