ansible 语法

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

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

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

验证安装

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

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

验证卸载

下载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 #相当于拍摄完清场工作:撤换场景,演员卸/换妆等,执行环境的清理

关于更多的语法信息可以参考文档:
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模块实现

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

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

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

Git基础命令教程

Git学习git之前,我们需要先明白一个概念,版本控制!版本控制什么是版本控制版本控制(Revisioncontrol)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人协同开发追踪和记载一个或者多个文件的历史记录组织和保护你的源代码和文档统计工作量

Ansible入门及组件介绍

Ansible简介Ansible是自动化运维的工具,基于Python开发,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible是基于模块工作的,ansible提供一个框架,通过模块实现批量部署。Ansible是一种配置管理工具Ansible不需要安装客户端软件Ansible的功能实现基于SSH远

mysql设置时区

mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0

Docker容器学习与分享12

Docker多主机管理之前在一台Centos7上安装了Docker,如果是在多台主机上都安装Docker,用手动安装的方法不光效率低下,而且有可能出错,所以可以使用DockerMachine进行多台主机的Docker安装和管理。具体安装过程可以参照官方文档https://docs.docker.com/machine/installma