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

ansible中的playbook

时间:2015-02-14 01:27:54      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:ansible yaml playbook

ansible中的playbook,将常用的模块任务,写入到playbook中,ansible方便快捷的管理主机。

playbook使用yaml语言来书写,简单说下yaml语言。


1、YAML简介

YAML是一个可读性高的用来表达资料序列的格式。优点

YAML的可读性好  

YAML和脚本语言的交互性好  

YAML使用实现语言的数据类型  

YAML有一个一致的信息模型  

YAML易于实现  

YAML可以基于流来处理  

YAML表达能力强扩展性好  

YAML的语法和其他高阶语言类似并且可以简单表达清单、散列表、标量等数据结构。其结构Structure通过空格来展示序列Sequence里的项用"-"来代表  

Map里的键值对用":"分隔。YAML文件扩展名通常为.yaml或者.yml。比如  

name: cb  

age: 20gender: Male  

spouse:  

name: hello  

age: 18  

gender: Female  

children:    

YAML 2 个重要的结构组成部分list和directory  

list  

列表的所有元素均使用“-”打头例如  

# A list of tasty fruits  

- Apple  

- Orange  

- Strawberry  

- Mango  

   

dictionary  

字典通过key与valuef进行标识例如  

---  

# An employee record  

name: Example Developer  

job: Developer  

skill: Elite  

   

2、ymal中的变量


变量命名  

变量名仅能由字母、数字和下划线组成且只能以字母开头。  

   

facts  

facts是由正在通信的远程目标主机发回的信息这些信息被保存在ansible变量中。要获取指定的远程主机所支持的所有facts可使用如下命令进行  

# ansible hostname -m setup 这个命令可以获得被监控端主机的各种信息将这些信息得到后保存到变量中。  

   

自定义变量  

在 yaml 中可以使用vars关键字来定义变量  

vars:  

var_name: value  

   

变量的引用  

{{ var_name }}  

   

   

特殊的变量迭代  

当有需要重复性执行的任务时可以使用迭代机制。其使用格式为将需要迭代的内容定义为item变量引用并通过with_items语句来指明迭代的元素列表即可。  

比如添加用户的不同写法: 

一般做法   

- name: add user testuser1  

user: name=testuser1 state=present groups=wheel 

- name: add user testuser2  

user: name=testuser2 state=present groups=wheel 

使用变量方式  

- name: add several users  

vars:  

user1: testuser1  

user2: testuser2  

user: name={{ user1 }} state=present groups=wheel 

user: name={{ user2 }} state=present groups=wheel 

使用迭代方式  

- name: add several users  

user: name={{ item }} state=present groups=wheel 

with_items:   

- testuser1   

- testuser2  

事实上with_items中可以使用元素还可为hashes例如  

- name: add several users  

user: name={{ item.name }} state=present groups={{ item.groups }}  

with_items:  

- { name: ‘testuser1‘, groups: ‘wheel‘ }  

- { name: ‘testuser2‘, groups: ‘root‘ } 


ansible中的playbook

标签:ansible yaml playbook

原文地址:http://boking.blog.51cto.com/8080748/1614264

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