使用Ansible 中的PlayBook
PlayBook的功能
PlayBook是由一个或多个play组成的列表.
PlayBook文件使用YAML来书写.
YAML
简介
YAML是一种表达资料序列的格式,类似XML.
Yet Another Markup Language
2001年首次发表
官网为 www.yaml.org
特点
可读性强
与脚本语言交互性好
可扩展性强
易于实现
使用程序执行流树立方式
有严格的缩进
语法简介
在文件中用---
开始
在文件中用...
结束
次行一般书写文件内容
缩进严格且大小写敏感
Key/Value
可以多行书写也可以一行书写
Value
可以是字符串也可以是List
一个Play
需要包括Name
和Tasks
Name
是描述,Tasks
是动作
一个Name
只能包含一个Task
扩展名为yml
或者yaml
YAML列表
[Linux,C++,Java,Python]
- Linux
- C++
- Java
- Python
YAML的字典
字典用于存放键值
name:Test
age:12
jobs:linux
{
name: "Test", age: "12", jobs: "linux"}
##两种表示方式均可
PlayBook执行命令
ansible-playbook XXX.yml ...
##常用参数
--check | -C ##检测
--syntax-check ##语法检测
--list-hosts ##列出hosts
--list-tasks ##列出tasks
--list-tags ##列出tag
--limit ##手动指定执行主机
-v | -vv | -vvv ##显示实现过程
##syntax-check只会检测语法不会预执行,check预检测时会执行
PlayBook的核心组件
name ##可选,建议使用
hosts ##受控主机列表
tasks ##任务
如何区分字典和列表
在PlayBook
文件中,列表元素一定以-
开头,而字典元素前一定没有-
.
基本范例
##查询主机名并输出最后一行用户信息
##Test.yml内容
---
- name: Test
hosts: 172.25.254.137
tasks:
- name: Hostname Check
shell:
hostname
- name: UID Check
shell:
id
- name: cat