ansible常见模块

这里介绍一些ansible常用的模块,以后有用到其他的会再补充进来。

1.shell

在被管理机统一执行shell命令

参数:

  • 命令
  • chdir=目录 切换到指定目录执行命令
ansible [web] -m shell -a "uptime"

- name:
  shell: uptime

 

2.command

与shell命令类似,但是不支持一些特殊符号,比如”<“, “>”, “|”, “;” 和 “&” 

参数:

  • creates 指定一个路径,表示该文件存在时就不执行命令
  • removes 与creates相反,表示文件不存在时执行命令

3.yum_repository

 管理yum仓库

参数:

  • name 必须参数,指定yum仓库的源标识,就是方括号内的东西
  • baseurl 指定仓库的url
  • description 对应仓库中的name
  • file 设置仓库的文件名,不用加.repo后缀
  • enabled 设置该yum源是否可用,默认值为yes,表示启用
  • gpgcheck 是否开启检测功能,默认值为no
  • state 默认值为present ,absent表示删除对应的yum源

4.yum

管理rpm软件包

参数:

  • name 指定软件名
  • state 指定软件包的状态,默认为present,installed与present类似,lasted表示安装最新版本,absent和remove等效,表示删除软件包

4.script

推送脚本并执行,不需要把脚本发送到被管理机

参数:

  • 脚本文件
  • chdir 切换到指定目录执行脚本
  • creates 指定一个文件路径,文件存在时不执行脚本
  • removes 指定一个文件路径,文件不存在时不执行对应脚本

5.file

创建文件或目录,删除文件或目录,修改文件权限等

参数:

  • path 指定路径
  • state 
    • directory 表示目录
    • touch 管理文件
    • link 管理软连接文件
    • hard 管理硬链接文件
    • absent 删除文件,不用区分文件类型
  • src 结合link和hard使用,指定链接文件的源文件
  • force 强制创建链接文件

    当state=link的时候,可配合此参数强制创建链接文件,当force=yes时,表示强制创建链接文件。不过强制创建链接文件分为三种情况。情况一:当要创建的链接文件指向的源文件并不存在时,使用此参数,可以先强制创建出链接文件。情况二:当要创建链接文件的目录中已经存在与链接文件同名的文件时,将force设置为yes,会将同名文件覆盖为链接文件,相当于删除同名文件,创建链接文件。情况三:当要创建链接文件的目录中已经存在与链接文件同名的文件,并且链接文件指向的源文件也不存在,这时会强制替换同名文件为链接文件。

  • owner 指定被操作文件的属主,属主必须是存在的用户,否则会报错
  • group 指定被操作文件的属组,属组必须存在,否则会报错
  • mode 用于指定权限,权限用数字表示,如655
  • recurse 递归修改文件属性

 6.archive和unarchive

  • archive
    • 在远端主机打包与压缩
    • 参数
      • path 要压缩的文件或目录
      • dest 压缩后的文件
      • formate 指定压缩包类型:bz2、gz、tar、xz、zip
将/var/log 目录压缩为 tar.gz 格式,并存储至 /opt 目录下;
[root@xuzhichao ~]# ansible 192.168.20.23 -m archive -a 'path=/var/log dest=/opt/log.tar.gz format=gz'

 

  • unarchive
    • 在远端主机解包与解压缩
    • src 要解压的文件路径
    • dest 解压到的目录位置
    • remote_src yes:要解压的包在被管理端;no:要解压的包在管理端
    • owner 文件复制到远程并设定属主
    • group 文件复制到远程并设置属组
    • mode 文件复制到远程并设置权限,默认file=644,directory=755
#把压缩包拷贝到远端主机:
# ansible 192.168.20.23 -m copy -a 'src=/root/nginx-1.20.1.tar.gz dest=/tmp/'
#在远端主机解压缩
# ansible 192.168.20.23 -m copy -a 'src=/tmp/nginx-1.20.1.tar.gz dest=/tmp/nginx-1.20.1 remote_src=yes'
#压缩包在ansible主机上,直接解压到被控主机: 
# ansible 192.168.20.23 -m unarchive -a 'src=/root/nginx-1.20.1.tar.gz dest=/tmp/ remote_src=no'

 

7.copy

推送文件

  • 参数:
    • src= 源文件
    • dest= 目的文件
    • mode= 权限
    • owner= 属主
    • group= 属组

8.ping模块

测试通信

9.service

管理系统服务

  • 参数
    • name= 服务名称
    • state={ started | restarted | stopped }
    • enabled={ yes | no }
posted @   Sunnyaniu  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示