一、Playbook的功能
- playbook 是由一个或多个play组成的列表
Playboot 文件使用YAML来写的
二、YAML
三、playbook
[jia@ansible ansible]$ ansible-playbook test.yaml --syntax-check
[jia@ansible ansible]$ ansible-playbook test.yaml --list-hosts
[jia@ansible ansible]$ ansible-playbook test.yaml --list-tasks
[jia@ansible ansible]$ ansible-playbook test.yaml --list-tags
[jia@ansible ansible]$ ansible-playbook test.yaml -v
[jia@ansible ansible]$ ansible-playbook test.yaml --limit 172.25.254.251
核心组件
name #可选,建议使用多用于说明
hosts #受控主机列表
tasks #任务
基本示例
---
- name: test play book
hosts: all
remote_user: root
tasks:
- name: check hosts
dnf:
name=httpd
state=latest
- name: start httpd
service:
name=httpd
state=started
enabled=yes
vim 设定技巧
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
示例
将lftp设置为匿名用户可登陆
[jia@ansible ansible]$ cat vsftpd.yaml
---
- name: test
hosts: all
tasks:
- name: vsftpd install
dnf:
name=vsftpd,lftp
state=latest
- name: anonymous_enable
lineinfile:
path=/etc/vsftpd/vsftpd.conf
regexp=anonymous_enable=NO
line=anonymous_enable=YES
backrefs=yes
- name: start vsftpd
service:
name=vsftpd
state=restarted
enabled=yes
- name: firewalld
firewalld:
zone=public
service=ftp
permanent=yes
state=enabled
immediate=yes
四、变量
1.变量命名
只能包含数字,下划线,字母
只能用下划线或字母开头
2.变量级别
全局:从命令行或配置文件中设定的
paly:在play和相关结构中设定的
主机:由清单,事实收集或注册的任务
变量优先级设定:
狭窄范围有限与广域范围
3.变量设定和使用方式
(1).在playbook中直接定义变量
---
- name: test var
hosts: all
vars:
USER: westosuser
(2).在文件中定义变量