运维效率翻倍:带你认识 Ansible 最常用的 14 个模块
本文将介绍 Ansible 在运维工作中最常用的 14 个模块,带你实现工作效率的翻倍。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
Ansible 是一款开源的自动化运维工具,主要用于配置管理、应用部署、任务自动化和持续交付。Ansible 对于运维工作有多重要性,已经不需要再多言,掌握它的使用如同打开了自动化的大门。
本文将介绍Ansible在运维工作中最常用的14个模块,带你实现工作效率的翻倍。

一、基础连接与测试模块
1. ping模块
测试与目标主机的连接性:
ansible all -m ping
示例输出:
server1 | SUCCESS => { "changed": false, "ping": "pong"}
2. command模块(不支持shell特性)
在远程主机执行命令:
ansible webservers -m command -a "uptime"
常用参数:
- `chdir`:执行前切换目录- `creates`:如果文件存在则不执行- `removes`:如果文件不存在则不执行示例:
ansible db -m command -a "mysqldump -u root -p password dbname > backup.sql chdir=/backups"
3. shell模块
在远程主机通过shell执行命令(支持管道、重定向等):
ansible all -m shell -a "df -h | grep /dev/sda1"
二、文件操作模块
4. copy模块
复制本地文件到远程主机:
ansible webservers -m copy -a "src=/etc/nginx/nginx.conf dest=/etc/nginx/nginx.conf owner=root group=root mode=0644 backup=yes"
5. file模块
管理文件属性或创建文件/目录/链接:
创建目录:ansible app -m file -a "path=/opt/myapp state=directory mode=0755"创建软链接:
ansible all -m file -a "src=/etc/nginx/nginx.conf dest=/tmp/nginx.conf state=link"删除文件:
ansible all -m file -a "path=/tmp/testfile state=absent"
6. stat模块
获取文件状态信息:
ansible webservers -m stat -a "path=/etc/nginx/nginx.conf"
输出示例:
{ "changed": false, "stat": { "exists": true, "gid": 0, "group": "root", "mode": "0644", "mtime": 1634567890.1234567, "path": "/etc/nginx/nginx.conf", "size": 1024, "uid": 0, "owner": "root" }}
三、软件包管理模块
7. yum模块 (RHEL/CentOS)
安装包:
ansible centos_servers -m yum -a "name=nginx state=present"
更新所有包:
ansible centos_servers -m yum -a "name=* state=latest"
删除包:
ansible centos_servers -m yum -a "name=nginx state=absent"
8. apt模块 (Debian/Ubuntu)
安装包:
ansible ubuntu_servers -m apt -a "name=nginx state=present update_cache=yes"
删除包:
ansible ubuntu_servers -m apt -a "name=nginx state=absent"
四、系统服务管理
9. service模块
启动服务:
ansible webservers -m service -a "name=nginx state=started enabled=yes"
重启服务:
ansible webservers -m service -a "name=nginx state=restarted"
停止服务:
ansible webservers -m service -a "name=nginx state=stopped"
五、用户与组管理
10. user模块
创建用户:
ansible all -m user -a "name=testuser uid=1000 group=admin create_home=yes shell=/bin/bash"
删除用户:
ansible all -m user -a "name=testuser state=absent remove=yes"
11. group模块
创建组:
ansible all -m group -a "name=admin gid=1000 state=present"
删除组:
ansible all -m group -a "name=admin state=absent"
六、常用高级模块
12. setup模块
收集主机系统信息:
ansible all -m setup
过滤特定信息:
ansible all -m setup -a "filter=ansible_distribution*"
13. cron模块
添加cron任务:
ansible all -m cron -a "name='daily backup' minute=0 hour=2 job='/usr/local/bin/backup.sh'"
删除cron任务:
ansible all -m cron -a "name='daily backup' state=absent"
14. lineinfile模块
确保某行存在:
ansible all -m lineinfile -a "path=/etc/ssh/sshd_config line='PermitRootLogin no' regexp='^PermitRootLogin'"
删除某行:
ansible all -m lineinfile -a "path=/etc/hosts state=absent line='127.0.0.1 badhost'"
七. 实际使用技巧
(1) 查看模块帮助文档:
ansible-doc copy
(2) 限制执行主机:
ansible webservers[0] -m ping # 只对webservers组第一个主机执行
(3) 并行执行控制:
ansible all -m ping -f 10 # 使用10个并行进程
(4) 使用become提权:
ansible all -m yum -a "name=nginx state=present" --become --ask-become-pass
(5) 调试模式:
ansible all -m command -a "ls /nonexistent" --check -vvv
掌握这些常用模块的命令行用法,可以快速完成日常运维任务,提高工作效率。当然,对于更加复杂的任务,建议还是使用Playbook来实现更结构化的自动化管理。
相关攻略
企业需要定制化系统安装盘是为了提升部署效率、确保标准化配置、增强安全性及降低运维成本。具体步骤包括:1 准备参考机并安装纯净系统与通用驱动、更新和软件;2 使用sysprep工具对
一、目标与范围明确通过自动化运维提升网络运维效率、减少故障时间的目标。涵盖企业内部网络设备、服务器及相关网络应用的运维工作。二、现状评估全面梳理现有的网络架构、设备清单、运维流程以
postfix反垃圾邮件配置的基本步骤包括:1)启用smtpd的反垃圾邮件保护,2)配置灰名单,3)设置spf,这些步骤为postfix提供了一个基础的反垃圾邮件框架。配置Post
热门专题
热门推荐
金亨泰亲证:《剑星》核心灵感源自三上真司经典动作游戏《P N 03》 近日,游戏界迎来一则令动作游戏爱好者振奋的重磅消息。Shift Up创始人金亨泰通过官方视频,正式宣布与传奇制作人三上真司旗下工作室展开深度合作。他特别强调,此次联手并非简单的资源整合,而是要让玩家亲眼见证,当三上真司深厚的动作游
红色沙漠属性限制怎么突破 在《红色沙漠》游戏进程中,很多玩家会发现,当角色属性提升至10级后便会遭遇等级上限的封锁,无法继续升级。这并非设计缺陷,而恰恰是游戏深度成长系统的起点——只有成功突破这层限制,角色真正的潜力才能被彻底释放。 那么,突破属性限制的具体方法是什么?关键在于寻访分布在游戏世界各地
Kraken旗下代币化美股平台xStocks宣布将推出xPoints!积分计划细节引出发币猜想 随着真实世界资产(RWA)赛道持续升温,代币化股票已然成为加密市场里增长最为迅猛的领域之一。最新消息显示,知名交易所Kraken旗下的代币化美股平台xStocks即将推出名为“xPoints”的奖励计划,
一、BD核心构建思路 想要打造一个能抗能打、生存与输出兼备的近战角色吗?双修闪打德鲁伊无疑是你的理想选择。这套玩法的核心理念非常清晰:召唤强大的熊灵作为你的“不朽壁垒”,在前排承担主要伤害并稳固仇恨;与此同时,你自身则化身为“风暴裁决者”,依靠风暴打击实现高频位移与持续输出。一守一攻,默契配合,使得
虚拟币网格交易超出区间会强行卖出吗? 聊起网格交易,很多朋友第一印象就是“自动化低买高卖”。作为一种经典的量化策略,它确实试图在市场波动中捕捉利润。但问题来了:一旦币价飘出了预设的“网格”,系统会不会来个“清仓大甩卖”呢?通常来说,答案是否定的,强行卖出并非标准动作。不过,具体会发生什么,还真得看您





