誉天教育,武汉誉天,誉天ICT认证培训.png/

Datapass

数通
当前位置:首页 > 誉天学堂 > 运维 > 【誉天红帽学习指南】Ansible Ad-hoc与命令执行模块

【誉天红帽学习指南】Ansible Ad-hoc与命令执行模块

  • 2023/09/06

实验概述:(本次实验采用3台虚拟机,分别为1台主控端YTeduRHEL8,和2台被控端node1、node2)


在本章我们将了解在Ansible内使用"Ad- Hoc"命令,又指在Ansible下临时执行的一条命令,Ad- Hoc命令的执行依赖于模块,那么Ansible官方提供了大量的模块,例如:command、raw、shell、file、cron等。


1.png


命令说明:

ansible 主机或组 -m 模块名 -a '模块参数' ansible参数


主机和组,是在/etc/ansible/hosts 里进行指定;


640.png


模块名,可以通过ansible-doc -l 命令查看目前已安装的所有模块,默认不指定模块时,使用的是command模块,具体可以查看/etc/ansible/ansible.cfg 的“#module_name = command ”部分,默认模块可以在该配置文件中进行修改;


640 (1).png


模块参数,可以通过“ansible-doc 模块名”查看具体的用法及后面的参数;


640 (2).png


ansible参数,可以通过ansible命令的帮助信息里查看到,这里有很多参数可以供选择,如是否需要输 入密码、是否sudo等。

总结

帮助查询:
# ansible-doc -l 查看所有模块
# ansible-doc -s module 查看某个模块的参数
# ansible-doc module 查看该模块更详细的信息


2.png


命令执行模块包含如下四个模块:


command模块:该模块通过-a跟上要执行的命令可以直接执行,不过命令里如果有带有如下字符部分则 执行不成功“ "<", ">", " |", "&";

# ansible node1 -m command -a 'pwd' 默认模块为command时,可以不指定-m command

640 (3).png


shell 模块:用法基本和command一样,不过其是通过/bin/sh进行执行,所以shell模块可以执行任何命 令,就像在本机执行一样;


# ansible node1 -m shell -a 'ls'


640 (4).png


raw模块:用法和shell模块一样,也可以执行任意命令,就像在本机执行一样;和command、shell模块不同的是其没有chdir、creates、removes参数;


参数说明

chdir:在执行指令之前,先切换到该指定的目录,默认工作目录是远程主机的家目录;

creates:一个文件名,当该文件存在,则该命令不执行;

removes:一个文件名,当该文件不存在,则该命令不执行;


实验:

640 (5).png


640 (6).png


说明:两个命令都会返回执行成功的状态。不过实际上只有command模块中的文件会被创建成功。使用raw模块的执行的结果文件事实上也被正常创建了,不过不是在chdir指定的目录,而是在当前执行用户的家目录


640 (7).png


640 (8).png


640 (9).png



script模块:将管理端的shell在被管理主机上执行,其原理是先将shell复制到远程主机,再在远程主机上执行。


实验:

要执行的脚本文件script.sh 内容如下:

640 (10).png


640 (11).png


执行指令:
ansible node1 -m script -a 'scripts.sh'
## script模块的脚本文件在主控端,而不需要传到被控端

返回列表
上一篇:
【誉天红帽学习指南】Linux应急响应技巧
下一篇:
【誉天红帽学习指南】Ansible自动化运维之Ansible原理与安装
免费试听
姓名
电话
城市
咨询课程