1.Playbook的功能
playbook 是由一个或多个play组成的列表 Playboot 文件使用YAML来写的
2.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]
#YAML的字典# 字典作用存放键值 name:westos age:12 jobs:linux
{name: “westos”, age: “12”, jobs: “linux”}
3.playbook执行命令
ansible-playbook xxx.yml … –check|-C ##检测 –syntax-check ##check language –list-hosts ##列出hosts –list-tags ##列出tag –list-tasks ##列出task –limit ##指定执行主机 -v -vv ##现实过程
4.Playbook的核心组件
name #可选,建议使用多用于说明 hosts #受控主机列表 tasks #任务 #用与选择执行部分代码
#基本示例# 下载http服务并开启
---
- 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
...
5.vim 设定技巧
autocmd FileType yaml set ai ts=2 sw=2 et (指定yaml文件匹配设定的vim文本格式) setlocal ##设定当前文件 ai ##自动退格对齐 auto indent ts ##tab建长度为2空格 tabstop=2 sw ##缩进长度为2 shiftwidth=2 et ##把tab键变成空格 expandtab
练习:
下载ftp服务,配置系统文件设定为匿名用户可以登陆,并让火墙通过
vim /home/lee/ansible/vsftpd.yml 编辑内容
---
- name: install vsftpd
hosts: westos
tasks:
- name: install vsftpd
dnf:
name: vsftpd
state: present
- name: configure vsftpd
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: configure firewall
firewalld:
service: ftp
permanent: yes
state: enabled
immediate: yes
...
执行playbook ansible-playbook vsftpd.yml
|