官方模块地址:
https://docs.ansible.com/ansible/2.9/modules/modules_by_category.html#
Ansible命令格式介绍
常用命令格式:ansible 组名/主机 [-m 模块名] [-a 模块参数]
ansible-doc -s command #查看模块详细信息
command模块
- command模块为默认模块,用于远程执行命令(命令模块)
- 使用command模块在远程主机中执行命令时,不会经过远程主机的shell处理,在使用command模块时,如果需要执行的命令中含比如’< > | ;,&’这些符号时,这些符号的功能会失效。
-
常用参数:
chdir
:此参数表示执行命令之前,会先进入到指定的目录中
creates
:此参数表示文件如果存在于远程主机中,则不执行对应命令,如果不存在,才执行
removes
:此参数表示文件如果不存在于远程主机中,则不执行对应命令,如果存在,才执行 - command模块示例:
ansible node -m command -a 'chdir=/ ls'
返回值是黄色?Why?
文件最后一次访问时间改变
touch命令:创建空文件,或者改变文件的时间戳属性
uname -a: 显示系统信息
Linux poma 3.10.0-1160.36.2.el7.x86_64 #1 SMP Wed Jul 21 11:57:15 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
uname -m: 显示计算机类型
x86_64
uname -n: 显示计算机名
uname -r: 显示操作系统发行编号
3.10.0-1160.36.2.el7.x86_64
uname -s: 显示操作系统名称
Linux
uname -v:显示系统版本与时间
#1 SMP Wed Jul 21 11:57:15 UTC 2021
free -h 查看内存使用信息
df -h 查看分区使用信息
hostname 查看主机名
systemctl stop firewalld && systemctl disable firewalld 关闭防火墙&&设置开机不自启
shell模块
- 远程执行命令模块,和command模块类似,区别在于shell模块通过/bin/bash程序处理命令
-
常用参数
cmd
:此参数指定用于执行的命令(用于在Playbook剧本中)
chdir
:此参数表示执行命令之前,会先进入到指定的目录中
creates
:此参数表示文件如果存在于远程主机中,则不执行对应命令,如果不存在,才执行
removes
:此参数表示文件如果不存在于远程主机中,则不执行对应命令,如果存在,才执行
提示: shell模块中chdir、creates、removes参数的作用与command模块中的作用都是相同的。
-
shell模块示例:
#查看/etc/passwd文件,并通过管道符传递给’wc -l ‘统计文件行数
ansible node -m shell -a 'cat /etc/passwd | wc -l'
script模块
- script模块用于远程执行脚本,脚本存放在ansible主机本地,不需要拷贝到远程主机
-
常用参数:
chdir
:此参数表示执行命令之前,会先进入到指定的目录中
creates
:此参数表示文件如果存在于远程主机中,则不执行对应命令,如果不存在,执行命令
removes
:此参数表示文件如果不存在于远程主机中,则不执行对应命令,如果存在,才执行命令 - script模块示例:
ansible node -m script -a 'xxx.sh'
yum模块
- yum模块,用于在远程主机通过yum源管理软件包
-
常用参数:
name
:必须参数,用于指定需要管理的软件包名字
state
:用于指定软件包的状态
present:此状态为默认值,表示安装软件包
installed:此状态表示安装软件包,与present等效
latest:此状态表示安装yum中最新版本软件包removed:此状态表示删除对应软件包
absent:此状态表示删除对应软件包,与removed等效 -
yum模块示例:
使用yum模块安装vsftpd软件包:
ansible node -m yum -a 'name=vsftpd'
卸载vsftpd软件包
ansible node -m yum -a 'name=vsftpd state=removed'
ansible特性:
*幂等性:就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。
service模块
-
service模块,用于管理远程主机的服务,如:启动或停止服务
常用参数:
name
:此参数用于指定需要操作的服务名称,如vsftpd
state
:此参数用于指定服务的状态
started:此状态用于启动服务
restarted:此状态用于重启服务 -
service模块示例
启动ftp服务:
ansible ftp -m service -a 'name=vsftpd state=started'