一.Playbook
Playbook的功能:playbook 是由一个或多个play组成的列表,Playbook文件使用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: westos
age: 12
jobs: linux
或
{name: "westos", age: "12", jobs: "linux"}
三.playbook执行命令
1.ansible-playbook xxx.yml …
参数 | 含义 |
---|---|
–check或-C | 检测 |
–syntax-check | check language |
–list-hosts | 列出hosts |
–list-tags | 列出tag |
–list-tasks | 列出task |
–limit | 指定执行主机 |
-v -vv | 显示详细过程 |
2.Playbook的核心组件
name 可选,建议使用多用于说明
hosts 受控主机列表
tasks 任务,用于选择执行部分代码
3.基本示例
---
- name: config vsftpd
hosts: list1
tasks:
- name: install vsftpd
dnf:
name: vsftpd
state: latest
- name: config vsftpd.conf
lineinfile:
path: /etc/vsftpd/vsftpd.conf
regexp: '^anonymous_enable'
line: 'anonymous_enable=YES'
- name: start vsftpd
service:
name: vsftpd
state: started
enabled: yes
...
四.vim 设定技巧
vim ~/.vimrc
autocmd FileType yaml setlocal ai ts=2 sw=2 et
setlocal 设定当前文件
ai 自动退格对齐 auto indent
ts tab建长度为2空格 tabstop=2
sw 缩进长度为2 shiftwidth=2
et 把tab键变成空格 expandtab