playbook特殊用语与变量的使用

YAML

1. YAML语言简介

YAML是一个可读性高的用来表达资料序列的格式。 YAML参考了其他多种语言,包括: XML、C语言、 Python、 Perl以及电子邮件格式RFC2822等。 Clark Evans在2001年在首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者。
YAML Ain't Markup Language,即YAML不是XML。不过,在开发的这种语言时, YAML的意思其实是: "Yet Another Markup Language"(仍是一种标记语言)。
特性:
YAML的可读性好
YAML和脚本语言的交互性好
YAML使用实现语言的数据类型
YAML有一个一致的信息模型
YAML易于实现
YAML可以基于流来处理
YAML表达能力强,扩展性好
2. YAML语法简介
在单一文件中,可用连续三个连字号(——)区分多个文件。另外,还有选择性的连续三个点号( ... )用来表示文件结尾
 次行开始正常写Playbook的内容,一般建议写明该Playbook的功能
 使用#号注释代码
 缩进必须是统一的,不能空格和tab混用
 缩进的级别也必须是一致的,同样的缩进代表同样的级别,程序判别配置的级别是通过缩进结合换行来实现的
 YAML文件内容是区别大小写的, k/v的值均需大小写敏感
 k/v的值可同行写也可换行写。同行使用:分隔
 v可是个字符串,也可是另一个列表
 一个完整的代码块功能需最少元素需包括 name: task
 一个name只能包括一个task
 YAML文件扩展名通常为yml或yaml
3. YAML演示
[root@localhost ansible]# cat playbook/firewalld.yml 
---
- name: apache
  hosts: 192.168.145.163
  tasks:
    - name: stop and disabled firewalld
      service:
        name: firewalld
        state: stopped
        enabled: no


    - name: disabled selinux
      lineinfile:
        path: /etc/selinux/config
        regexp: "^SELINUX="
        line: "SELINUX=disabled"
        state: present
[root@localhost ansible]# ansible-playbook playbook/firewalld.yml 

PLAY [apache] ***********************************************************************

TASK [Gathering Facts] **************************************************************
ok: [192.168.145.163]

TASK [stop and disabled firewalld] **************************************************
changed: [192.168.145.163]

TASK [disabled selinux] *************************************************************
changed: [192.168.145.163]

PLAY RECAP **************************************************************************
192.168.145.163            : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
上一篇:mount报错failed: No route to host


下一篇:一件环境