linRichielinRichie
前端
Python
Linux
ChatGPT
  • B 站
  • 500px
前端
Python
Linux
ChatGPT
  • B 站
  • 500px
  • Ansible

    • Ansible: 基本操作
    • Ansible: 安装
    • Ansible: 简介
    • YAML: 文件格式
    • Playbook

      • Playbook: 介绍
      • Playbook: 操作
    • 模块

      • Yum模块常用参数
    • 实战

      • Ansible 实战
  • Anaconda

    • Anaconda命令
  • Iptables

    • Iptable: 防火墙
    • iptables 用法
  • Systemd

    • 系统服务配置
    • 系统服务启动文件
    • 性能优化

      • Linux 系统监控
      • Linux 系统性能优化
      • Linux 系统故障诊断
      • Linux 系统日志管理
  • Network

    • 用一张图解释 8 种流行的网络协议
    • 反子网掩码
    • 交换机端口模式
    • eNSP 软件
    • 华为交换机配置命令
    • eNSP静态路由实验
  • Commands

    • 命令别名:alias
    • 多类型资源统计工具: dstat
    • history配置
    • unzip命令
    • Linux用户到期登录时间和随机密码
    • 常用 Command
    • ssh

      • ssh-keygen
      • linux ssh命令
  • CI/CD

    • Jenkins CI/CD 管道
  • Kubernetes

    • Docker系列学习

      • 01. 什么是Docker
      • 02. Docker安装
      • 03. 使用Docker镜像
      • 04. 利用commit理解镜像构成
      • 05. 操作Docker容器
      • 06. 使用Dockerfile定制镜像
      • 07. Dockerfile指令详解
      • 08. Dockerfile多阶段创建
      • 09. 访问仓库
      • 10. 修改docker的启动项
      • 11. Nexus3.x的私有仓库
      • 12. docker-hub加速器
      • 13. 数据管理
      • 14. 使用网络
  • Shell编程

    • Shell 编程基础
    • Shell 脚本执行消耗的时间
    • Shell 自动生成简介

YAML: 文件格式

  • 基本语法
    • 基本规则
    • 数据类型
  • 高级特性
    • 1. 多行字符串
    • 2. 引用和锚点
    • 3. 复杂结构示例
  • 最佳实践

基本语法

YAML 是一种人类可读的数据序列化语言,常用于配置文件。它的设计目标是方便人类读写。

基本规则

  1. 缩进要求

    • 使用空格进行缩进
    • 不允许使用 Tab
    • 相同层级左侧对齐
  2. 基本规则

    • 大小写敏感
    • "#" 开头表示注释
    • 使用 "---" 分隔文档

数据类型

1. 对象/字典

# 对象
name: John Smith
age: 30
address:
  street: 123 Main St
  city: Boston
  country: USA

2. 数组/列表

# 数组
colors:
  - Red    # 列表项 1
  - Blue   # 列表项 2
  - Green  # 列表项 3

# 行内数组写法
colors: [Red, Blue, Green]

3. 纯量(Scalar)

# 字符串
string1: Hello World     # 不含特殊字符
string2: "Hello World"   # 包含特殊字符时使用引号

# 数字
integer: 123      # 整数
float: 12.30     # 浮点数

# 布尔值
boolean1: true    # 真
boolean2: false   # 假

# 空值
null_value: null  # 或 ~ 

高级特性

1. 多行字符串

# 使用 | 保留换行符
description: |
  这是一段
  多行文本
  保留换行符

# 使用 > 折叠换行符
message: >
  这是一段
  多行文本
  转换为空格

2. 引用和锚点

# 定义锚点
defaults: &defaults
  timeout: 30
  retries: 3

# 引用锚点
development:
  <<: *defaults  # 继承 defaults
  host: dev.example.com

production:
  <<: *defaults  # 继承 defaults
  host: prod.example.com

3. 复杂结构示例

# 完整的应用配置示例
app:
  name: myapp
  version: 1.0.0
  
  database:
    host: localhost
    port: 5432
    credentials: &db_creds  # 定义锚点
      user: admin
      password: secret
  
  services:
    - name: web
      port: 8080
      database: *db_creds  # 引用锚点
    
    - name: api
      port: 3000
      database: *db_creds  # 引用相同配置

最佳实践

  1. 可读性

    • 使用一致的缩进
    • 添加适当的注释
    • 合理使用空行分隔
  2. 结构设计

    • 保持层次清晰
    • 适当使用锚点和引用
    • 避免过深的嵌套

注意:

  • 注意空格的使用
  • 谨慎使用特殊字符
  • 验证 YAML 语法

参考资料:

  • YAML 官方规范
  • YAML 速查表
最近更新时间:
Prev
Ansible: 简介