ansible 语法

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

 

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

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

ansible 语法_第1张图片

验证安装

ansible 语法_第2张图片

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

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

ansible 语法_第3张图片

验证卸载

ansible 语法_第4张图片

下载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 语法_第5张图片

关于更多的语法信息可以参考文档:
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 语法_第6张图片

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

ansible 语法_第7张图片

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

你可能感兴趣的:(linux,运维,服务器)