当前位置: 首页 > news >正文

一篇文章带你熟练使用Ansible中的playbook

目录

一、Playbook的功能

二、YAML

1、简介

2、特点

3、语法简介

4、YAML 列表

5、YAML的字典

三、playbook执行命令

四、 Playbook的核心组件

五、vim 设定技巧

练习


一、Playbook的功能

playbook 是由一个或多个play组成的列表
Playboot 文件使用YAML来写的

二、YAML

1、简介

是一种表达资料序列的格式,类似XML,全称Yet Another Markup Language,于2001年首次发表,官网:www.yaml.org

2、特点

可读性好
和脚本语言交互性号
易于实现
适用程序执行流梳理方式
可扩展性强

3、语法简介

在文件中用[---]开始
在文件中用[...]结尾
次行一般书写文件内容
缩进严格
大小写敏感
key/value可以多行书写也可一行书写,一行书写用,隔开
value可以是个字符串,也可是list
一个play需要包括name和tasks
name 是描述
tasks 是动作
一个name只能包含一个task
扩展名称yml或者yaml

vim test.yml

4、YAML 列表

[Linux,C++,Java,Python]

- Linux
- C++
- Java
- Python

5、YAML的字典

字典作用存放键值
name:westos
age:12
jobs:linux

{name: "westos", age: "12", jobs: "linux"}

name haosts tasks是字典,group和user有-是因为他是子元素 

三、playbook执行命令

ansible-playbook xxx.yml ...
--check|-C                 ##检测
--syntax-check          ##check language
--list-hosts                 ##列出hosts
--list-tags                   ##列出tag
--list-tasks                 ##列出task
--limit                         ##指定执行主机
-v -vv                         ##现实过程

执行成功

 

想要显示一下密码 

想显示密码的信息没有 

这个时候加上-v可以显示了 

想检测动作做的对不对使用--check

执行个删除 

 

没有报错代表语法没有问题 

--check预执行

使用变量 ,使用-e

 

--list-hosts列出执行主机

 

--list-tags列出目标 

tags是play运行的别名,可以选择运行或者不运行

给每一个都设置标签

--list-tags 

只运行,中间可以用,号隔开

不运行哪一个 

--list-tasks列出动作 

--limit指定主机执行 

四、 Playbook的核心组件

name         #可选,建议使用多用于说明
hosts         #受控主机列表
tasks         #任务
                  #用与选择执行部分代码

五、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

练习

1、部署好ftp服务并开启匿名用户访问权力

 

2、部署apache服务,设定默认发布文件内容为www.westos.org

  

http://www.lryc.cn/news/6377.html

相关文章:

  • HashedWheelTimer
  • OPenCV库移植到ARM开发板子上面配置过程
  • Jenkins实现CI/CD
  • 如何给img标签里的请求添加自定义header
  • Linux系统基本概念操作,用户和文件权限管理
  • 数据库中的单表查询和多表查询
  • 全网详解MyBatis-Plus LambdaQueryWrapper的使用说明以及LambdaQueryWrapper和QueryWapper的区别
  • 暴力破解(new)
  • Android12之apex调试
  • Python - 数字(Number)数据类型常用操作
  • QT(51)-动态链接库-windows
  • [Vivado那些事儿]将自定义 IP (HDL)添加到 Vivado 模块设计(Block Design)
  • 开学必备数码清单,大学生开学必备数码好物分享
  • 【面试题】常见前端基础面试题(HTML,CSS,JS)
  • Vue (4)
  • 静态库和动态库的制作
  • Oracle实现高可用性的工具(负载均衡/故障切换)
  • 图解经典电路之OCL差分功放-三极管分立器件电路分析
  • thymeleaf模板注入学习与研究--查找与防御
  • 第七章:Linux最小化搭建环境解说2
  • 两道链表经典算法题---链表有无环(基础+进阶)
  • 2023/1/14总结
  • Python 之 NumPy 统计函数、数据类型和文件操作
  • 互联网新时代要到来了(一)什么是Web3.0?
  • [Yocto] 直接向deploy/images目录部署binary
  • HarmonyOS Connect原子化服务功能开发(Wi-Fi/Combo)设备控制开发与实现(二)
  • 浅析 Makefile
  • 保护品牌线上声誉的5种方法
  • Java多重选择结构,超详细整理,适合新手入门
  • SCI写作,一定要避开这些“雷点”!