首页 > 其他分享 >YAML语法搞定ansible playbook

YAML语法搞定ansible playbook

时间:2023-08-09 11:03:11浏览次数:41  
标签:一个 ansible YAML Ansible playbook 字典 Elite Developer

这个页面提供一个正确的 YAML 语法的基本概述, 它被用来描述一个 playbooks(我们的配置管理语言). 我们使用 YAML 是因为它像 XML 或 JSON 是一种利于人们读写的数据格式. 此外在大多数变成语言中有使用 YAML 的库.你可能希望读 Playbooks 实践中如何使用的.

基本的 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

这就是你开始编写Ansibleplaybooks 所需要知道的所有 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 }}"

本文地址:https://www.linuxprobe.com/ansible-playbook-use-yaml.html

标签:一个,ansible,YAML,Ansible,playbook,字典,Elite,Developer
From: https://blog.51cto.com/u_12148962/7016818

相关文章

  • Ansible的安装和全面介绍
    Ansible简介官网https://www.ansible.com/Ansible介绍视频https://www.youtube.com/watch?v=iVWmbStE1MMAnsible中文权威指南http://ansible-tran.readthedocs.io/en/latest/Ansible自动化运维教程https://www.w3cschool.cn/automate_with_ansible/官方的title是“AnsibleisS......
  • 运维管理工具的对比Puppet、Chef、Ansible和SaltStack、Fabric
    我们发现分布式是一个发展的趋势,无论是大型网站的负载均衡架构还是大数据框架部署,以及云存储计算系统搭建都离不开多台服务器的连续部署和环境搭建。当我们的基础架构是分散式或者基于云的,并且我们经常需要处理在大部分相同的服务器上频繁部署大致相同的服务时,我们就应该考虑自动化......
  • properties和yaml加载list
    properties和yml加载list方式一:shuhai:test:list:12,13,14@Value(“#{‘${shuhai.test.list}’.split(‘,’)}”)privateListlist;@Value(“${shuhai.test.list}”)privateListlist;方式二:shuhai:test:list:>121314@Valu......
  • Yaml语法
    世事变幻无常,而近乎永恒不变者,唯你我头上的同一片星空。Wherethereisnodesire,therewillbenoindustry.哪里没有欲望,哪里就不会有勤奋。一、YML是什么YAML(YAMLAintMarkupLanguage)是一种标记语言,通常以.yml或者.yaml为后缀的文件,是一种直观的能够被电脑识别的数......
  • YAML入门
    YAML速记在HydroOJ的时候,配置客观题遇到了此类文件格式。产生兴趣,简单学一下。学习参考视频:BV1yL4y1T7Pr什么是YAMLYAMLAin'tMarkupLanguage。YAML不是一种标记语言。是一种可读性高,用以表达数据序列化的格式文件后缀通常为 .yaml或.ymlYAML的语法规则使用缩进表......
  • ansible批量修改主机名
    [root@ansibleansible]#cathost_name.sh#!/bin/bashHOSTIP=`ipasens33|awk-F"[/]+"'NR==3{print$3}'`NAMEIP=`grep"$HOSTIP"host_name|awk'{print$2}'`hostnamectlset-hostname$NAMEIP 三台主机的主机名已经用不到了,全部修改......
  • PyYAML的使用
    YAML是一个被广泛使用的数据序列化和配置语言,作为一个开发者,总是不免和它打交道。但处理YAML文档,尤其是使用PyYAML的过程总是非常痛苦。这篇文章分享我在Python下使用PyYAML的技巧和代码片段,并介绍几个相关的库。注意:本文中的代码仅保证在Python3下正常工作总是使用 s......
  • 通过读取yaml文件获得多个参数
    importpytestimportrequestsfromutils.read_yamlimportget_yaml_data#多个参数(’class1,class2‘,[('age','eat'),('age','eat')])@pytest.mark.parametrize('title,body,userId',[get_yaml_data()['list_test&#......
  • 理解面向对象 谁调用基类 谁self.data里就被yaml中类 赋值
    classBaseAPI:#基类相当于动物类;登录属于继承类,相当于老虎类#属性def__init__(self,token=None):#店铺类,订单类,支付模块等都需要使用token所以过滤一下iftoken:#如果接口需要token店铺类,订单类,支付模块等都需要使用token......
  • python扩展库之PyYAML
    1.yaml详解YAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便。它实质上是一种通用的数据串行化格式。YAML的意思其实是:"YetAnotherMarkupLanguage"(仍是一种标记语言)。1.1YAML基本语法规则大小写敏感使用缩进表示层级关系缩进不允许使用tab,只允许空格缩......