ansible 语法

胖大海
• 阅读 303

在控制端里编写脚本,执行之前最好保存当前快照或者先使用测试环境,如果出现错误可以及时恢复!

在管理机上使用yum模块控制两台被管理机安装tree软件

ansible ceshiji -m yum -a 'name=tree state=installed'

ansible 语法

验证安装

ansible 语法

在管理机上使用yum模块控制两台被管理机卸载tree软件

ansible ceshiji -m yum -a 'name=tree state=absent'

ansible 语法

验证卸载

ansible 语法

下载ansible一个检查语法的工具

yum -y install search ansible-lint.noarch

模块以及yaml语法补充

通过 Ansible 提供的用于远程执行命令的 command、shell、raw、script 模块,我们可以将被管理节点的 IP/计算机名信息写入 Ansible 的“演员”inventory——/etc/ansbile/hosts,将要执行的命令编排成 Ansible 的 playbook,然后运行这个 playbook 就可以达到远程配置的目的了。

command、shell、raw、script 模块有什么区别呢?
command 和 shell 模块都依赖 Python 解析器,而 raw、script 这两个模块不依赖 Python,直接调用目标客户端的/bin/sh 来执行命令。如果目标客户端安装了 Python,而且要执行的命令很简单,不涉及特殊的 shell 符号,可以考虑 command 模块,如果涉及重定向等特殊 shell 符号则要用 shell 模块;如果目标客户端没有安装 Python,就只能考虑用 raw 或者script 模块,如果临时组装 shell 命令清单,则使用 raw 模块,如果在 Ansible 控制器上已经编写好 shell脚本文件,需要发送到客户端去执行,则应该使用 script 模块。

playbook 又是什么?

playbook字母意思是剧本,剧本里写清楚了哪个演员什么时候应该说什么台词、做什么动作、展现什么神情等,电影、电视剧是按照剧本来拍摄的。Ansible 里的 playbook 作用就跟拍电影的剧本一样,把要执行的命令、任务在 playbook 里编排好,然后 Ansible 执行这个 playbook,Ansible的“电影”就这样“拍摄”完成了。由此可见,掌握 playbook 的编排对于掌握 Ansible 的应用有多重要!电影剧本有分幕、场(景)、镜等结构,Ansible 的 playbook 也分结构,类似于:
playbook #相当于总剧本
|----play #相当于场景剧本
|----tasks #相当于分镜头剧本
|----pre_tasks #相当于拍摄前准备工作:布置场景,演员化妆等,执行环境的准备
|----tasks #相当于开始拍摄,要执行的命令清单
|----post_tasks #相当于拍摄完清场工作:撤换场景,演员卸/换妆等,执行环境的清理

ansible 语法

关于更多的语法信息可以参考文档:
https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
YAML 1.1:https://yaml.org/spec/1.1/
YAML 1.2:https://yaml.org/spec/1.2/spec.html
Ansible playbook 的样例:https://github.com/ansible/ansible-examples
https://blog.csdn.net/qq_51625703/article/details/124364414

Command 模块
功能:在远程主机执行命令,此为默认模块,可忽略-m选项

注意:此命令不支持 $VARNAME < > | ; & 等,用shell模块实现

ansible 语法

Script模块
功能:在远程主机上运行ansible服务器上的脚本

ansible 语法

大家可以去网上多搜集一些资料共同学习,缺乏机器练手的小伙伴可以去 cnaaa 看一看!

点赞
收藏
评论区
推荐文章
lucien-ma lucien-ma
3年前
Git基础命令教程
Git学习git之前,我们需要先明白一个概念,版本控制!版本控制什么是版本控制版本控制(Revisioncontrol)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人协同开发追踪和记载一个或者多个文件的历史记录组织和保护你的源代码和文档统计工作量
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
STM32 中断详解
中断,在单片机中占有非常重要的地位。代码默认地从上向下执行,遇到条件或者其他语句,会按照指定的地方跳转。而在单片机执行代码的过程中,难免会有一些突发的情况需要处理,这样就会打断当前的代码,待处理完突发情况之后,程序会回到被打断的地方继续执行。1EXTI控制器外部中断/事件控制器(EXTI)管理了控制器的23个中断/事件线。每
Stella981 Stella981
2年前
Ansible入门及组件介绍
Ansible简介Ansible是自动化运维的工具,基于Python开发,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible是基于模块工作的,ansible提供一个框架,通过模块实现批量部署。Ansible是一种配置管理工具Ansible不需要安装客户端软件Ansible的功能实现基于SSH远
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
2年前
Docker容器学习与分享12
Docker多主机管理之前在一台Centos7上安装了Docker,如果是在多台主机上都安装Docker,用手动安装的方法不光效率低下,而且有可能出错,所以可以使用DockerMachine进行多台主机的Docker安装和管理。具体安装过程可以参照官方文档https://docs.docker.com/machine/installma
Stella981 Stella981
2年前
Jumserver安装日志审计和资产管理
Jumserver安装一、jumpserver介绍jumpserver是一款由python编写开源的堡垒机系统,基于ssh协议来管理,客户端无需安装agent。特点:国人开发,开源,GPL授权Python编写,方便二次开发实现了跳板机基本功能,资产管理、日志审计,集成了Ansible
Wesley13 Wesley13
2年前
(绝对有用)iOS获取UUID,并使用keychain存储
UDID被弃用,使用UUID来作为设备的唯一标识。获取到UUID后,如果用NSUserDefaults存储,当程序被卸载后重装时,再获得的UUID和之前就不同了。使用keychain存储可以保证程序卸载重装时,UUID不变。但当刷机或者升级系统后,UUID还是会改变的。但这仍是目前为止最佳的解决办法了,如果有更好的解决办法,欢迎留言。(我整理的解决办法的参
Stella981 Stella981
2年前
Noark入门之协议映射
0x00消息控制器消息控制器,主要作用就是为每个模块提供消息处理的入口.这里的消息不仅仅是协议,还有内部指令,事件等等逻辑入口,这也是为了响应线程模型作出的一种支撑,只要入口在此消息控制器内,那必然走期望的线程调度。@Controller用于标识一个类为当前模块的消息控制器入口.@Controller(threadGroup
Stella981 Stella981
2年前
DevOps世界中的软件开发
!(https://oscimg.oschina.net/oscnet/f40e68cbfe8148deb00f040b4e917a0a.jpg)在整个软件开发过程中,开发人员通常需要花费大量时间来修复错误和漏洞,以便一切按计划进行交付。但是,通过DevOps实践,可以更轻松地管理和保护这些问题。这是由于以下事实:使用DevOps实践的软
胖大海
胖大海
Lv1
故园东望路漫漫,双袖龙钟泪不干。
文章
62
粉丝
3
获赞
28