【Ansible】YAML语法

YAML语法

scalar标量

name:wang

或者使用缩进的方式

name:
  wang

标量是最基本的,不可再分的值,其中包括

  • 字符串
  • 布尔值
  • 整数
  • 浮点数
  • Null
  • 时间
  • 日期

Dictionary字典

字典由key和value构成,且用:分隔,所有的key和value都可以放在同一行,也可以放在不同行

account:{ name:wang,age:30 }

缩进

account:
   name:wang
   age:30

List列表

列表由多个元素组成,每个元素放在不同行,都以“-”打头,并且“-”后有一个空格,或将”[ ]“括起来放同一行

course:
  - linux
  - golang
  - python

也可以使用[ ]

course:[ Linux,golang,python ]

Shell与YAML对比

#SHELL脚本实现
#!/bin/bash
# 安装Apache
yum install --quiet -y httpd 
# 复制配置文件
cp /tmp/httpd.conf /etc/httpd/conf/httpd.conf
cp/tmp/vhosts.conf /etc/httpd/conf.d/
# 启动Apache,并设置开机启动
systemctl enable --now httpd 
#Playbook实现
---
- hosts: all
 remote_user: root
 gather_facts: no
  
 tasks:
   - name: "安装Apache"
     yum: name=httpd
   - name: "复制配置文件"
     copy: src=/tmp/httpd.conf dest=/etc/httpd/conf/
   - name: "复制配置文件"
     copy: src=/tmp/vhosts.conf dest=/etc/httpd/conf.d/
   - name: "启动Apache,并设置开机启动"
     service: name=httpd state=started enabled=yes
...

Playbook组件

Target定义Playbook的远程主机组

常用参数

  • hosts定义远程主机组
  • user执行该任务的用户
  • sudo设置为yes的时候,执行任务使用root权限
  • sudo_user指定sudo普通用户
  • connection默认基于SSH连接客户端
  • gather_facks获取远程主机facts基础信息

Variable定义playbook使用的变量

常用参数

  • vars定义格式,变量名:变量值
  • vars_files指定变量文件
  • vars_prompt用户交互模式自定义变量
  • setup模块去远程主机的值

Task定义远程主机上执行的任务列表

常用参数

  • name任务名称,也是屏幕显示信息
  • action定义执行动作
  • copy复制本地文件到远程主机
  • template复制本地文件到远程主机,可以引用本地变量
  • service定义服务状态

Handler:当服务配置文件发生变化的时候需进行的操作,比如:重启服务,重新加载配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ACHAI:)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值