ansible--playbook

ansible-playbook
1、playbook书写规则
playbook是由一个或多个play组成的列表,play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色。从根本上来讲,所谓的task无非是调用ansible的一个module。将多个play组织在一个playbook中,即可以让它们联合起来按事先编排的机制完成某一任务。功能相当于shell脚本

Playbook核心元素:
Hosts 执行的远程主机列表
Tasks 任务集
Varniables 内置变量或自定义变量在playbook中调用
Templates 模板,即使用模板语法的文件,比如配置文件等
Handlers 和notity结合使用,由特定条件触发的操作,满足条件方才执行,否则不执行
tags 标签,指定某条任务执行,用于选择运行playbook中的部分代码。

ansible-playbook ping.yml					#运行
ansible-playbook --syntax-check ping1.yml 	#检查语法错误
ansible-playbook --check ping1.yml			#模拟运行,如果有依赖前面结果的会报错

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(1)handler作用:幂等性,若上面已经存在不需要执行则notify对应的handler内容不会执行。若handler存在多个时,顺序与handler在playbook中的定义是相同的,与notify定义内容顺序无关相同。

handler默认等所有的test内容执行完毕后在执行,

  • meta: flush_handlers #执行一个test立马handler

notify中一次性多个handler

notify: group1
listen: group1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)标签分类部分执行

tags: t1
tags: 
  - t1
tags: ['t1']
ansible-playbook --tags=t2 tag1.yml			#只执行t2标签内容
ansible-playbook --skip-tags=t2 tag1.yml 	#不执行t2标签其他全部执行
ansible-playbook --list-tags tag1.yml		#列出标签

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

内置标签

tags: t3,always/nerver(相反)					#一直执行,除非指定不执行
ansible-playbook --skip-tags=always tag1.yml	#只有这样才能不执行

在这里插入图片描述
还可以调用时使用tagged(只执行有标签的任务,有skip为跳过标签任务)、untagged(只执行没有标签的任务,always不算)、all(不用指定默认执行所有标签)

(3)ansible变量
一 变量的命名规范

变量的命名应该符如下合两个规范:
变量应该由字母、数字、下划线组成
变量应该以字母开头

二、变量的作用域可以分为四种:
作用于全局的变量
作用于play的变量
作用于task的变量
作用于host的变量

1 playbook中的变量

vars语句定义全局变量

vars:						#定义
  testvar1: testfile
vars:						#定义
  - testvar1: testfile

file: path=/testdir/{{testvar1}}		#调用

在这里插入图片描述

vars:						#定义
    mkdir:                                   
      testvar1: testfile2
      testvar2: testfile2
file: path=/testdir/{{mkdir.testvar1}}		#调用
file: path=/testdir/{{mkdir['testvar1']}}	#调用

在这里插入图片描述

vars_files
在playbook中引入包含变量的文件时,需要使用”vars_files“关键字,被引入的文件需要以”-“开头,

vars_files:
- /testdir/ansible/nginx_vars.yml

2、setup模块
TASK [Gathering Facts]
默认调用setup模块应用获取远程主机信息首先执行,会将结果保存在变量中

ansible testB -m setup					#返回远程主机信息
ansible testB -m setup -a "filter=*mb*"	#只返回指定信息

自定义信息(被管主机):

[root@server1 facts.d]# pwd
/etc/ansible/facts.d			#自定义信息必须目录
调用:
ansible testB -m setup -a "filter=ansible_local"	#最好放到默认目录下
ansible testB -m setup -a "fact_path=/testdir"

在这里插入图片描述
3、debug模块



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值