Ansible之YAML语法

YAML(Yet Another Markup Language),另一种标志语言。。。是一种用来表达数据序列的编程语言,它的主要特点包括:可读性强、语法简单明了,支持丰富的语言解析库,通用性强。ansible和saltstack环境中的配置文件都以YAML格式存在。

YAML 的配置文件后缀为 .yml

基本语法

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用 Tab,只允许空格
  • 缩进的空格数不重要(一般是两个),只要相同层级的元素左对齐即可
  • # 表示注释

YAML 对象

又称块映射描述,对象键值对使用冒号结构表示 key: value冒号后面要加一个空格。描述的元素序列在 Python 中表现为字典

alice:
  hp: 34
  sp: 8
  level: 4
bob:
  hp: 12
  sp: 0
  level: 2
 
 # Python解析出的结果为:
 {'alice': {'hp':34, 'sp': 8, 'level': 4}, 'bob': {'hp': 66, 'sp': 1, 'level': 4}}

YAML 数组

又称块序列描述,以 - 开头的行表示构成一个数组,- 后面要加一个看空格。描述的序列在 Python 中表现为列表

-
  - alice
  - bob
  - cindy
-
  - china
  - japan
  - US

# Python解析出的结果为:
[['alice', 'bob', 'cindy'], ['china', 'japan', 'US']

复合结构

languages:
  - Ruby
  - Perl
  - Python 
websites:
  YAML: yaml.org 
  Ruby: ruby-lang.org 
  Python: python.org 
  Perl: use.perl.org
  
# Python解析出的结果为:
{'languages': ['Ruby', 'Perl', 'Python'], 'websites': {'YAML': 'yaml.org', 'Ruby': 'ruby-lang.org', 'Python': 'python.org', 'Perl': 'use.perl.org'}}

转换为 json 为:

{
  "languages": [
    "Ruby",
    "Perl",
    "Python"
  ],
  "websites": {
    "YAML": "yaml.org",
    "Ruby": "ruby-lang.org",
    "Python": "python.org",
    "Perl": "use.perl.org"
  }
}
发布了67 篇原创文章 · 获赞 2 · 访问量 1364

猜你喜欢

转载自blog.csdn.net/weixin_42511320/article/details/105125412