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:操作的对象名称
  • 使用 vvvvvv 参数可显示详细执行过程

3. 幂等性(Idempotent)

  • 大多数 Ansible 模块具有幂等性,即多次执行结果一致
  • 如文件已存在时不会重复创建,服务已启动时不会重复启动

五、注意事项

  1. 模块选择:根据操作类型选择合适的模块,如文件操作优先使用 file 模块而非 shell
  1. 参数验证:使用 ansible-doc 查看模块支持的参数和示例
  1. 权限问题:确保 Ansible 控制机有足够的权限执行相应操作
  1. 测试验证:生产环境使用前先在测试环境验证模块行为
Loading...