1、语法检查的作用

在shell脚本中可以使用-n来检查语法是否正确,通过语法检查可以大大的降低了脚本开发时间,那么作为一款热门的自动化工具,ansible也支持语法检查,下面一起来了解一下。

2、如何进行语法检查

ansible中,我们可以通过剧本去实现脚本的一个功能,可以把剧本理解为我们的Shell脚本,大家都知道,写脚本难免会出现一些Bug之类的,而写剧本也同样会遇到这种情况,那么这时候通过语法检查就可以快速解决问题了。
语法如下:

ansible-playbook --syntax-check <ansible.yaml>

然后我们对下面这个剧本进行检查:

2.1、正确语法

- hosts: hello #使用的主机列表connection: ssh #连接方式remote_user: root #使用的远程用户tasks:- name: install git <name>yum: name=git,net-tools state=installed #安装git、net-tools- name: Unstaller mariadb <name>yum: name=mariadb-server state=installed #卸载mariadb-server


如果检查没问题,那么就会输出被检查的文件名,下面看一下错误语法

2.2、错误语法

- hosts: hello #使用的主机列表connection: ssh #连接方式remote_user: root #使用的远程用户tasks:- name: install git <name>yum: name=git,net-tools state=installed #安装git、net-tools- name: Unstaller mariadb <name>yu: name=mariadb-server state=installed #卸载mariadb-server


此时就会提示:

ERROR! no action detected in task. This often indicates a misspelled
module name, or incorrect

大致意思就是:

错误!在任务中未检测到操作。这通常表示模块名称拼写错误或不正确

然后提示是在第七行,也就是 - name: Unstaller mariadb <name>出错了,我们仔细看就可以看到,我在第八行的模块写的是yu,正确的应该是yum,所以报错了,然后修改,继续检查

- hosts: hello #使用的主机列表connection: ssh #连接方式remote_user: root #使用的远程用户tasks:- name: install git <name>yum: name=git,net-tools state=installed - name: Unstaller mariadb <name>yum: name=mariadb-server state=installed


然后就成功了

3、执行剧本

执行剧本有两种方式,如下:

名称 作用
伪执行ansible-playbook -C <file.yaml> 模拟执行,主要用于排错,不会产生实际影响
执行ansible-playbook <file.yaml> 直接执行

3.1、伪执行

 ansible-playbook -C yum.yaml


执行效果

3.2、执行

ansible-playbook  yum.yaml

执行效果

相关文章:

ansible从入门到入土:常用模块---->apt模块

ansible从入门到入土:教你如何编写ansible剧本实现yum安装软件

ansible从入门到入土:对剧本进行语法检查及真/伪执行剧本

ansible从入门到入土:带你从安装到实现“hello world

ansible从入门到入土:对剧本进行语法检查及真/伪执行剧本相关推荐

  1. ansible从入门到放弃

    ansible简单入门 ansible的安装 由于ansible所在的源为epel源,所以需要先配置epel [root@localhost ~]# vi /etc/yum.repos.d/bp.re ...

  2. rocketmq怎么保证消息一致性_从入门到入土(三)RocketMQ 怎么保证的消息不丢失?...

    精彩推荐 一百期Java面试题汇总SpringBoot内容聚合IntelliJ IDEA内容聚合Mybatis内容聚合 接上一篇:RocketMQ入门到入土(二)事务消息&顺序消息 面试官常常 ...

  3. Activiti工作流从入门到入土:完整Hello World大比拼(Activiti工作流 API结合实例讲解)

    文章源码托管:https://github.com/OUYANGSIHAI/Activiti-learninig 欢迎 star !!! 本来想着闲来无事,前面在项目中刚刚用到了工作流 Activit ...

  4. activiti api文档_【白银人机】Activiti 工作流从入门到入土:完整 hello world 大比拼(API 结合实例讲解)...

    点击上方"好好学java",选择"置顶"公众号 重磅资源.干货,第一时间送达 重磅推荐  ① 纯福利 | 公众号资源大汇总,一年才一次! ② 重磅!!2018年 ...

  5. 从入门到入土(十)RocketMQ集群流程以及核心概念

    精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 Mybatis内容聚合 接上一篇:从入门到入土(九)手摸手教你搭建RocketMQ双主双从同步集群 ...

  6. 从入门到入土(九)手摸手教你搭建RocketMQ双主双从同步集群,不信学不会!...

    精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 Mybatis内容聚合 接上一篇:从入门到入土(八)RocketMQ的Consumer是如何做的负 ...

  7. 从入门到入土(八)RocketMQ的Consumer是如何做的负载均衡的

    精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 Mybatis内容聚合 接上一篇:RocketMQ入门到入土(七 )为什么同一个消费组设置不同ta ...

  8. RocketMQ入门到入土(七 )为什么同一个消费组设置不同tag会出现奇怪现象

    精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 Mybatis内容聚合 接上一篇:RocketMQ入门到入土(六)发消息的时候选择queue的算法 ...

  9. RocketMQ入门到入土(六)发消息的时候选择queue的算法有哪些?

    精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 Mybatis内容聚合 接上一篇:RocketMQ入门到入土(五)消息持久化存储源码解析 一.说明 ...

最新文章

  1. DataTable的Compute功能详解
  2. HDU5934(强连通分量)
  3. 华为云总裁郑叶来:易获取、用得起、方便用的算力是人工智能发展的关键
  4. git遇到的一些小问题
  5. oracle 06502 解决,ora-06502如何解决。。。
  6. Windows10熄屏自动断开WiFi连接解决方法
  7. CF889E-Mod Mod Mod【dp】
  8. 一段最短的代码,用上js所有关键字
  9. 【OpenCV学习笔记】【函数学习】十五(批量读入图片)
  10. html可视化编辑器 mac,Sparkle For Mac v2.8.11 强大的可视化网页编辑设计工具 _ 黑苹果乐园...
  11. Webx系列之文件上传
  12. js底层原理作用域和作用域链
  13. linux -m32,32位gcc和64位gcc与-m32选项有什么区别?
  14. C++ 实用趣味小程序
  15. 信息学奥赛一本通1055:判断闰年
  16. 从员工到总经理的成长笔记:自慢(6)
  17. 全网最火爆,最详细Docker与自动化测试讲解,看完觉得我又行了
  18. 【Writeup】第六季极客大挑战(部分题目)
  19. iapp上传图片到云函数
  20. 攻击CSK靶机环境并学习linux渗透思路

热门文章

  1. android 全面屏/刘海屏有效适配
  2. 亚马逊新品如何测款 怎样快速打造出爆款
  3. vscode 设置背景图片
  4. 3D LUT Creator Pro for mac V1.5.2中文版
  5. 吉利星瑞噪音分贝测试软件,吉利星瑞性能测试:确实是最好的自主A级车
  6. 单细胞分析实录(14): 细胞类型注释的另一种思路 — CellID
  7. 前端随笔--WEB中播放视频(JS实现)
  8. ft232电路ttl_FT232R 的串行 UART 接口解析
  9. 易语言高级表格写入MYSQL_易语言数据库与高级表格思路分析.doc
  10. ensp模拟器构建局域网络与使用模拟器接入互联网