第 5.2 章 Playbook基本使用--YAML语法和Playbook文件结构
yml语法格式:
缩进表示层级关系
不支持制表符“tab”缩进,使用空格缩进
通常开头缩进 2 个空格
字符后缩进 1 个空格,如冒号、逗号等
“---” 表示YAML格式,一个文件的开始(可有可无)
“#”注释
Playbook文件结构
---
- name: play1 #执行脚本名称,一个执行脚本一个名称,便于执行时能找到哪行代码执行有错
hosts: web# 指定使用主机清单的组名,这里使用[web]组
remote_user: root #指定远程执行playbook的用户,默认使用root
vars:#脚本执行中所要使用的变量
var_name: value #定义变量的值
tasks: #开始执行playbook的具体工作
- name: echo #执行过程中每个任务名会进行输出,便于查看进度
shell: "echo {{var_name}}" #输出变量 var_name的值
Nginx安装示例
通过一个Nginx安装示例来了解playbook用法,创建一个目录用来存放Nginx安装所用文件:
mkdir nginx-demo
vim nginx.yml
(注意文件格式。缩进使用空格,不使用Tab键)
#nginx.yml
- hosts: abc
vars:
hello: Ansible
tasks:
- name: Add repo
yum_repository:
name: nginx
description: nginx repo
baseurl: http://nginx.org/packages/centos/7/$basearch/
gpgcheck: no
enabled: 1
- name: Install nginx
yum:
name: nginx
state: latest
- name: Copy nginx configuration file
copy:
src: ./site.conf
dest: /etc/nginx/conf.d/site.conf
- name: Start nginx
service:
name: nginx
state: started
- name: Create wwwroot directory
file:
dest: /var/www/html
state: directory
- name: Create test page index.html
shell: echo "hello {{hello}}" > /var/www/html/index.html
- name: firewalld 80
shell: firewall-cmd --add-port=80/tcp --permanent
- name: firewall service restart
service:
name: firewalld
state: restarted
创建Nginx配置文件:
vim site.conf
#site.conf
server {
listen 80;
server_name www.ctnrs.com;
location / {
root /var/www/html;
index index.html;
}
}
保存后检查yml脚本语法:
yml文件语法检查: ansible-playbook nginx.yml --syntax-check
执行yml文件运行;ansible-playbook nginx.yml
检测abc主机组Nginx安装测试命令:
curl 142.4.123.13 -H "Host:www.ctnrs.com"
curl 47.241.90.203 -H "Host:www.ctnrs.com"
文章目录
关闭
