Ansible 常用模块
type
status
date
slug
summary
tags
category
icon
password
一、Ansible 命令基本语法
二、常用模块详解
1. shell 模块
作用:在远程主机上执行 shell 命令
注意:对于需要管道、重定向等复杂命令,使用 shell 模块;简单命令可使用
command 模块2. copy 模块
作用:将本地文件推送到远程主机
参数:
src:源文件路径
dest:目标路径
mode:文件权限(如 0644)
owner:文件属主
group:文件属组
backup:是否备份原文件(yes/no)
3. fetch 模块
作用:从远程主机拉取文件到控制机
特点:
- 会自动按
主机IP/文件路径的目录结构保存
- 适合收集日志、配置文件等
4. file 模块
作用:管理文件和目录的属性
常用操作:
5. lineinfile 模块
作用:确保某行内容存在于文件中(基于正则匹配)
补充:对于多行内容管理,可使用
blockinfile 模块6. cron 模块
作用:管理计划任务
参数说明:
name:任务标识名称(必填)
state:present(添加)、absent(删除)
7. yum 模块
作用:管理 RPM 软件包
state 参数:
present:安装(如已安装则不操作)
latest:安装最新版本
absent:卸载
8. service 模块
作用:管理系统服务
参数:
state:started、stopped、restarted、reloaded
enabled:是否开机自启(yes/no)
9. user/group 模块
作用:管理用户和用户组
10. script 模块
作用:将本地脚本复制到远程主机执行后自动删除
特点:脚本会在远程主机的临时目录执行,执行完毕后自动清理
三、补充重要模块
11. command 模块(默认模块)
作用:执行简单命令(Ansible 默认模块)
与 shell 模块区别:不支持管道、变量、重定向等 shell 特性
12. setup 模块
作用:收集远程主机 facts 信息
13. apt 模块
作用:在 Debian/Ubuntu 系统上管理软件包(对应 yum 模块)
14. mount 模块
作用:管理文件系统挂载
四、模块使用技巧
1. 查看模块帮助
2. 常用参数说明
state:多数模块都有该参数,通常为 present/absent 或 started/stopped
name:操作的对象名称
- 使用
v、vv、vvv参数可显示详细执行过程
3. 幂等性(Idempotent)
- 大多数 Ansible 模块具有幂等性,即多次执行结果一致
- 如文件已存在时不会重复创建,服务已启动时不会重复启动
五、注意事项
- 模块选择:根据操作类型选择合适的模块,如文件操作优先使用 file 模块而非 shell
- 参数验证:使用
ansible-doc查看模块支持的参数和示例
- 权限问题:确保 Ansible 控制机有足够的权限执行相应操作
- 测试验证:生产环境使用前先在测试环境验证模块行为
Loading...