Ansible任务控制与Ansible-Playbook

文章详细介绍了YAML的特点,包括其注释符、文件后缀以及基本语法,强调了大小写敏感性和统一的缩进规则。接着,讨论了YAML支持的字符串、列表和字典数据结构。在Ansible部分,提到了Playbook的验证方法、执行和调试,并介绍了条件判断、任务控制和Jinja2模板引擎的使用。还举例说明了如何进行Nginx的语法校验和注册变量的应用。
摘要由CSDN通过智能技术生成

YAML特点

YAML 文件以 # 为注释符

YAML 文件以 .yml或者.yaml 结尾

YAML 文件以 --- 开始 ... 结束,但开始和结束标志都是可选的

基本语法

大小写敏感

使用缩进表示层级关系

缩进时是使用Tab键还是使用空格- -定要达到统- ,建议使用空格。

相同层级的元素必须左侧对齐即可

YAML 支持的数据结构有三种

字符串:

列表:

字典:

混合结构

验证YAML语法

Play 常用属性

一个完整的剧本

执行和校验Playbook

如何对Playbook进行语法校验?

下面校验的方法,只能校验PlayBook是否正确,而不能校验YAMl文件是否语法正确。

ansible-playbook -i hosts myPlaybook.yml --syntax-check

也可以使用python来检查

python -c 'import yaml,sys;print yaml.safe_load(sys.stdin)' < myPlaybook.ym

执行Playbook

ansible-playbook -i hosts myPlaybook.yml

如何单步跟从调试PlayBook

//执行Task中的任务,需要手动确认是否往下执行

ansible-playbook -i hosts myPlaybook.yml --step

测试运行PlayBook

//会执行完整个PLayBook,但是所有Task中的行为都不会在远程服务器上执行,所有执行都是模拟行为。

ansible-playbook myplaybook.yml -C

//-C为大写字母C

Ansible任务控制

Ansible条件判断

场景nginx启动逻辑欠缺考虑

Nginx语法校验

- name: check nginx syntax

  shell: /usr/sbin/nginx -t

可以使用Ansible中的注册变量。

获取Task任务结果

- name: check nginx syntax

  shell: /usr/sbin/nginx -t

  register: nginxsyntax

通过debug模块,打印出来的返回结果。

when条件判断

语法:

with_items循环

PlayBook中使用with items 去实现循环控制,且循环时的中间变量(上面shell循环中的$i变量)只能是关键字item,而不能随意自定义

Jinja2 模板

Jinja2是基于python书写的模板引擎。

jinja2 必知必会

1、jinja2文件以.j2为后缀,也可以不写后缀。

2、jinja2中存在 三种定界符

    注释:{{# #}}

    变量引用:{{ var }}

    逻辑表达:{% %}

3、jinja2 逻辑控制

条件表达

{% if %}

...

...

{% endif %}

案例:

循环控制:

案例:

注意:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

黑马金牌编程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值