Command命令模块,模块下常用的几个命令:
chdir # 在执行命令之前,先切换到该目录
executable # 切换shell来执行命令,需要使用命令的绝对路径
free_form # 要执行的Linux指令,一般使用Ansible的-a参数代替。
creates # 一个文件名,当这个文件存在,则该命令不执行,可以
用来做判断
removes # 一个文件名,这个文件不存在,则该命令不执行
ping主机
ansible web -m ping
直接在远程主机上执行命令,并将结果返回本主机
ansible web -m command -a 'hostname'
先切换到/data/ 目录,再执行“ls”命令
ansible web -m command -a 'chdir=/tmp/ ls'
如果/data/aaa.jpg存在,则不执行“ls”命令
ansible web -m command -a 'creates /data/aaa.jpg ls'
如果/data/aaa.jpg存在,则执行“cat /data/a”命令
ansible web -m command -a 'removes /data/aaa.jpg cat /data/a'
Shell模块
shell模块可以在远程主机上调用shell解释器运行命令,支持shell的各种功能,例如管道等。
ansible web -m shell -a 'cat /etc/passwd | grep bash'
File模块
该模块主要用于设置文件的属性,比如创建文件、创建链接文件、删除文件等。
force
#需要在两种情况下强制创建软链接,一种是源文件不存在,但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|nogroup
#定义文件/目录的属组。后面可以加上mode
:定义文件/目录的权限owner
#定义文件/目录的属主。后面必须跟上path
:定义文件/目录的路径recurse
#递归设置文件的属性,只对目录有效,后面跟上src
:被链接的源文件路径,只应用于state=link
的情况dest
#被链接到的路径,只应用于state=link
的情况state
#状态,有以下选项:
directory
:如果目录不存在,就创建目录file
:即使文件不存在,也不会被创建link
:创建软链接hard
:创建硬链接touch
:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间absent
:删除目录、文件或者取消链接文件
创建目录,如果文件不存在就创建目录
ansible web -m file -a 'path=/data/app state=directory'
删除目录或文件
ansible web -m file -a 'path=/data/a state=absent'
Yum模块
该模块主要用于软件的安装。
ansible web -m yum -a 'name=vim'
Copy模块
src
#被复制到远程主机的本地文件。可以是绝对路径,也可以是相对路径。如果路径是一个目录,则会递归复制,用法类似于"rsync"content
#用于替换"src",可以直接指定文件的值dest
#必选项,将源文件复制到的远程主机的绝对路径backup
#当文件内容发生改变后,在覆盖之前把源文件备份,备份文件包含时间信息directory_mode
#递归设定目录的权限,默认为系统默认权限force
#当目标主机包含该文件,但内容不同时,设为"yes",表示强制覆盖;设为"no",表示目标主机的目标位置不存在该文件才复制。默认为"yes"others
#所有的 file 模块中的选项可以在这里使用
复制文件
ansible web -m copy -a 'src=/tmp/hello dest=/data/hello'
给定内容生成文件,并制定权限
ansible web -m copy -a 'content="I am keer\n" dest=/data/name mode=666'