码迷,mamicode.com
首页 > 其他好文 > 详细

Ansible Playbook - Understanding YAML

时间:2016-04-27 19:03:42      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:ansible   yaml   playbook   

要想用Ansible操作复杂的任务,就必须要学会YAML语法的书写,不光是Ansible,连他的竞争对手saltstack也使用了YAML,下面来学习一下YAML语法的格式,省得到要你写个Playbook的时候手忙脚乱的要好。


引用一下维基:YAML是"YAML Ain‘t a Markup Language"(YAML不是一种标记语言)的递回缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。


YAML的可读性好,和脚本的交互性好,配合jinja2(Python Template Engine)可以很好的对Playbook的任务变量进行设置。


YAML的语法格式需要注意的地方;

1.    文件的开头都必须以---开始,用来表示一个YAML文件的开始,这点可以想象成bash的 #!/bin/bash,当然bash这个不是必须要有的。

2.    缩进需要用空格,而不能用tab,同一属性的关键词要保证左对齐,且与上一级保持两个空格缩进。

3.    没个属性要跟冒号,之后要接一个空格。

4.    用短横线表示列表,并且后面要接一个空格。


        - Apple

        - Orange

        - Mongo

        转换成Python 语法就是["apple", "Orange", "Mongo"]

        Shanker:

         - name

         - role

         - Age

        转换成Python语法就是{“Shanker":["name", "role", "Age"]}



Ansible的YAML配置文件都是以一个列表开始的,列如一个Nginx的配置:

---
- hosts: centos
  vars:
        worker_processes: 4
        max_open_file: 65506
  remote_user: ibmcloud
  sudo: yes
  tasks:
  - name: ensure nginx is at the latest version
    yum: name=nginx state=latest
  - name: write the nginx config file
    template: src=/etc/ansible/nginx/templates/nginx.j2 dest=/etc/nginx/nginx.conf
    notify:
    - restart nginx
  - name: ensure ngins is running
    service: name=nginx state=started
  handlers:
  - name: restart nginx
    service: name=nginx state=restarted

本文只是一个YMAL语法介绍,Ansible Playbook跟多高级语法稍后系统文件会结合工作上用到的慢慢介绍给大家。


欢迎补充!

本文出自 “天涯海阁” 博客,请务必保留此出处http://shanker.blog.51cto.com/1189689/1768283

Ansible Playbook - Understanding YAML

标签:ansible   yaml   playbook   

原文地址:http://shanker.blog.51cto.com/1189689/1768283

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!