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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)