Ansible命令格式和常用模块介绍

Ansible命令格式介绍

Ansible命令格式

ansible [群组名] -m [模块名] -a [参数]

Ansible命令返回值的颜色表示

绿色:代表对远程节点不进行相应修改,没有发生改变,命令执行成功
黄色:代表对远程节点进行了相应的修改,命令执行成功
红色:代表命令执行失败或者有异常
粉色:代表命令执行后发出的警告信息,给出建议(可以忽略)

Ansible执行命令的方式

ad-doc:在命令行执行的命令(临时命令)
Playbook:将命令写入到Playbook剧本中

Ansible常用模块介绍

command模块

  • command模块为默认模块,用于远程执行命令(命令模块)
  • 使用command模块在远程主机中执行命令时,不会经过远程主机的shell处理,在使用command模块时,如果需要执行命令中的含"<",">","|","&"等特殊符号时,这些符号功能会失效
  • 常用参数:
chdir: 此参数表示执行命令前,会先进入到指定的目录中
creates: 表示文件如果存在于远程主机中,则不执行对应命令,如果不存在则执行
removes: 表示文件如果不存在于远程主机中,则不执行对应命令,如果存在则执行
  • command模块示例
chdir参数示例
执行ls命令前,先切换到/root目录

image

creates参数示例
执行ls命令前,先判断是否存在/etc/passwd这个文件,如果存在则不执行命令,不存在则执行

image

removes参数示例
执行ls命令前,先判断是否存在/etc/passwd这个文件,如果不存在则不执行命令,存在则执行

image

shell模块

  • shell模块,远程执行命令模块,和command模块类似,区别在于shell模块通过/bin/bash解释器处理命令
  • 常用参数:
cmd:指定用于执行的命令(用在Playbook剧本中)
chdir: 此参数表示执行命令前,会先进入到指定的目录中
creates: 表示文件如果存在于远程主机中,则不执行对应命令,如果不存在则执行
removes: 表示文件如果不存在于远程主机中,则不执行对应命令,如果存在则执行

提示:shell模块中的chdir,creates、removes参数的作用都是相同的

script模块

  • script模块用于执行远程脚本,脚本存放在ansible主机本地,不需要拷贝到远程主机
    ansible [群组名] -m script -a [需要执行的脚本]

yum模块

  • yum模块用于在远程主机通过yum源管理软件包
  • 常用参数
name:必须参数,用于指定需要管理的软件包名字
state:用于指定软件包的状态
	present:默认值,表示安装软件包
	installed:此状态表示安装软件包,与present等效
	latest:表示安装yum中最新版本软件包
	removed:表示删除对应软件包
	absent:表示删除对应软件包,与removed等效

service模块

  • service模块用于管理远程主机的服务,如:启动或停止服务
  • 常用参数:
name:用于指定需要操作的服务名称
state:用于指定服务的状态
	started:启动服务
	restarted:重启服务
	stopped:停止服务
enabled:用于指定是否将服务设置为开机启动项,设置为yes表示设置开机启动,设置no表示不会开机启动

copy模块

  • copy模块用于将文件复制到远程主机
  • 常用参数
src:用于指定需要拷贝的文件或目录
dest:用于指定文件将拷贝到远程主机的哪个目录中,dest为必须参数
content:当不使用src指定拷贝的文件时,可以使用content直接指定文件内容,src与content两个参数必有其一,否则会报错
force:当远程主机的目标路径中已经存在同名文件,并且与ansible主机中的文件内容不同时,是否强制覆盖,默认值为yes,表示覆盖,如果设置为no,则不会执行覆盖拷贝操作,远程主机中的文件保持不变
backup:当远程主机的目标路径中已经存在同名文件,并且与ansible主机中的文件内容不同时,是否对远程主机的文件进行备份,默认为no,设置为yes时,会先备份远程主机中的文件,然后再将ansible主机中的文件拷贝到远程主机
owner:指定文件拷贝到远程主机后的属主,远程主机上必须有对应的用户,否则会报错
group:用于指定文件拷贝到远程主机后属组,远程主机上必须有对应的组,否则会报错
mode:指定文件拷贝到远程主机后的权限,例:设置权限为rw-r--r--,可以使用mode=0644表示