ansible的常用模块总结
command模块
command 模块: 在远程主机上执行命令操作 默认模块
常用参数:
free_from 参数 :需要远程执行的命令 不同之处在于不需要使用键值对的方式给参数赋值 其他参数是需要的
说明:并没有任何的参数名字为free_from free_from=ls(错误写法)
chdir 参数:在执行命令之前 首先进入chdir参数指定的目录中
creates参数:如果文件存在 则不执行free_from命令
removes参数:如果文件存在 则执行free_from命令
ps:有一些特殊符号不能被使用 | & > >>
适合使用简单的命令 无法支持特殊字符
ansible ip -m command -a "date"
ansible all -a "date"
ansible all -m command -a 'ls /'
默认使用模块:/etc/ansible/ansible.cfg
# default module name for /usr/bin/ansible
# module_name = command
shell模块 - 万能模块
shell模块 - 万能模块
不能做校验,校验此命令之前是否执行过 如果执行过就会报错 下面的剧本就无法继续执行
功能类似于command
cron模块
cron 模块: 定时任务模块
两种状态state: present(添加) absent(移除)
active:
state=present / absent
minute="*/1" // 1minute 执行一次
hour="*/1" //1 hour 执行一次
day="*/1" //1 day 执行一次
mouth="*/1" //1 month 一个月执行一次
weekday="*/1" //周一
job="具体的执行命令"
name="标识 执行absent时的确认位置"
eg: ansible all -m cron -a 'minute="*/1" job="/usr/bin/echo hello" name="chenjunde cron job"'
ansible all -m cron -a 'name="chenjunde cron job" state=absent' 通过name来识别
user模块
user 模块 - 用户模块 请求三个指令useradd userdel usermod
ansible-doc -s user
active :
name="chenjunde" //指定用户的名字为chenjunde
state=absent / present
shell=/bash/shell 或者 /bin/nologin 指定用户shell
home=/home/dba //指定用户的家目录
append=yes/no
yes:增量的添加组
no:全量的改变组(默认)
groups= admins,ssd 指定用户所在的附加组
group=指定用户的组
uid:只当用户的uid号
password=加密后的密码
scripts模块 执行脚本模块
script 模块: 在远程服务器上执行本地的脚本
script 模块可以帮助我们在远程主机上执行 ansible 管理主机上的脚本,
也就是说,脚本一直存在于 ansible 管理主机本地,不需要手动拷贝到远程主机后再执行。
常见参数:
free_form: 必须存在的参数
chdir : 此参数的作用就是指定一个远程主机的目录 执行脚本之前 先进入到这个目录
creates : 使用此参数只当远程主机中的文件 当指定文件存在时 就不执行对应的脚本
removes :使用此参数指定一个远程主机中的文件 当指定文件存在时 执行脚本
ps: ansible all -m script "chdir=/opt chenjunde.sh"
copy 批量分发模块
copy 模块:批量分发模块
将ansible管理主机文件拷贝到远程主机中(实现批量分发)
于fetch模块相反,fetch模块实现的是将远程主机的文件拉去到ansible管理主机
常用参数:
src:用于指定copy文件或者目录
dest:用于指定文件将被拷贝到远程主机的哪个目录中 dest为必须参数
content:当不使用src指定拷贝的文件时 可以使用content直接指定文件内容 src与content两个参数必须有一个
force:如果远程主机的目标路径中已存在同名文件 是否强制覆盖
yes no
backup:当远程主机的目标路径中存在同名文件 并且与ansible主机中的文件按内容不同时 是否对远程主机文件进行备份
yes no
owner:指定文件拷贝到远程主机后的属主
group:指定文件拷贝到远程主机后的属组
mode:指定文件拷贝到远程主机后的权限
fetch 模块 文件批量收集模块
fetch 模块:批量收集模块
从被管理端主机拉去数据文件
对应copy模块
常见参数:
src: 只当从受管理主机中拉去那个文件数据
dest: 指定拉去的文件是存放的位置
ping模块
ping 模块 : 测试主机是否是通的,不涉及参数
测试模块,测试远程主客户端是否在线,返回值是change ping
ps:ansible all -m ping
file 模块
file模块 :文件模块
可以帮助我们完成一些对文件的操作 创建文件或目录 删除文件或目录 修改文件权限
常用参数:
path: 指定要操作的文件或者目录 (name dest 同时适用)
state: 指定你要操作的是一个文件还是一个目录 硬链接还是软链接 删除还是创建
=directory //指定创建目录
=touch //创建文件
=line //软链接
=hard //硬链接
=absent //删除文件
src: 当我们指定我们要创建的是链接文件时指定链接点
force: 当state=link的时候,可配合此参数强制创建链接文件,当force=yes时,表示强制创建链接文件。不过强制创建链接文件分为三种情况。
情况一:当要创建的链接文件指向的源文件并不存在时,使用此参数,可以先强制创建出链接文件。
情况二:当要创建链接文件的目录中已经存在与链接文件同名的文件时,将force设置为yes,会将同名文件覆盖为链接文件,相当于删除同名文件,创建链接文件。
情况三:当要创建链接文件的目录中已经存在与链接文件同名的文件,并且链接文件指向的源文件也不存在,这时会强制替换同名文件为链接文件。
owner: 指定用户的属主
group: 指定用户的属组
mode: 指定用户的权限
recurse: 当文件为目录是 recurse=yes可以修改目录的文件属性