
如何选对Ansible模块copy、template、service等70内置模块实战清单【免费下载链接】ansibleAnsible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com.项目地址: https://gitcode.com/GitHub_Trending/ans/ansibleAnsible 是一个 radically simple极度简单的 IT 自动化平台通过 SSH 连接远程系统无需安装任何 Agent就能用接近英语的语言完成部署、配置和云管理。而它的核心战斗力就藏在70 个内置模块里——学会选对 Ansible 模块copy、template、service、command……你的 Playbook 会事半功倍。本文给你一份完整的选型清单。1 分钟了解模块在哪里所有内置模块源码都在 lib/ansible/modules/ 目录下共 70 余个.py文件每个文件即一个模块。想知道某个模块的参数和示例无需翻文档用命令直接查ansible-doc -l # 列出全部模块按字母排序 ansible-doc copy # 查看 copy 模块的完整文档 技巧任务写法里的copy、template等动作名其实就是模块名一一对应。 文件与配置类copy 还是 template新手最纠结的一组。直接看结论模块干什么一句话选法copy把本地文件原样拷贝到远程文件不需要变量替换→ copytemplate用 Jinja2 渲染模板后写到远程文件含{{ 变量 }}→ templatelineinfile保证某一行存在/被替换只改一行配置blockinfile在标记块内插入/更新一段文本改一段配置replace正则替换文件内容批量替换字符串assemble把多个碎片文件拼成一个分片组装配置stat获取文件属性是否存在、大小、属主先探测再决策file管理文件属性软链、目录、权限、删除只动属性不动内容实战口诀整文件传输用copy带变量渲染用template改局部用lineinfile/blockinfile查状态用stat。⚡ 命令执行类command、shell、raw 怎么选模块特点适用场景command不经过 Shell安全防注入执行单条命令首选shell走/bin/sh支持管道、需要Shell 语法时raw直连执行不依赖 Python目标机器没装 Python时兜底script先传后执行本地脚本在远程跑一段完整脚本expect交互式应答命令处理交互式提示⚠️ 注意command/shell不识别changed常配合creates/removes条件或changed_when使用避免误报。 系统与包管理service 及三兄弟服务管理要看目标系统service通用服务管理跨平台默认选择systemd / systemd_serviceSystemd 专属支持 unit、daemon-reloadsysvinit老式 SysV init 系统包管理同理按发行版选模块平台apt / apt_repository / apt_keyDebian / Ubuntudnf / dnf5 / yum_repositoryRHEL / CentOS 系package不想区分发行版时的通用兜底pipPython 依赖unarchive下载后解压 tar/zip 包 账户、网络与状态类模块user / group管理用户与用户组hostname改主机名iptables防火墙规则known_hosts维护 SSH known_hostsget_urlHTTP/HTTPS/FTP 下载文件uri请求 Web 服务 APIgit / subversion从代码仓库部署wait_for / wait_for_connection等待端口/服务就绪cron计划任务reboot重启机器并等待回来tempfile创建临时文件/目录 调试与流程控制模块ping连通性自检新接机器必跑debug打印变量排查问题第一站assert断言条件不满足立即失败fail主动抛错并附带自定义消息set_fact / include_vars运行时设变量、加载变量文件gather_facts / setup收集主机事实meta执行refresh_inventory等控制动作pause暂停执行人工确认、倒计时group_by / add_host动态分组与加主机编排类静态导入 vs 动态包含是常见考点import_playbook/import_role/import_tasks解析期展开include_role/include_tasks运行期加载详见 lib/ansible/keyword_desc.yml 中的关键词说明。 选模块速查表建议收藏你的需求首选模块传一个固定文件copy传一个含变量的配置文件template改配置文件里的一行/一段lineinfile/blockinfile装软件包apt/dnf/package启动/重启服务serviceSystemd 用systemd跑一条命令command需要管道才用shell下载并解压get_urlunarchive建用户/组user/group等端口/服务可用wait_for排查问题ping→debug→assert 模块之外的插件宇宙Ansible 的能力不止于模块同仓库还有配套插件可搭配使用过滤器lib/ansible/plugins/filter/如to_json、regex_replace用于变量加工测试lib/ansible/plugins/test/如defined、match用于条件判断查找器lib/ansible/plugins/lookup/如env、file、password用于取值动作插件lib/ansible/plugins/action/模块的执行引擎一般无需直接关注✅ 总结4 步选出正确模块先搜后写ansible-doc -l | grep 关键词避免重复造轮子优先幂等模块能用template/user/service就别用command保证可重入按平台选专用模块apt之于 Debian、dnf之于 RHEL跨平台时用package/service兜底看源码文档每个模块头部的 DOCUMENTATION 字符串如 copy.py就是最权威的参数说明掌握这份清单后面对新需求先问自己这件事是不是已有内置模块——99% 的答案是有这就是 Ansible 模块体系的优雅之处。【免费下载链接】ansibleAnsible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com.项目地址: https://gitcode.com/GitHub_Trending/ans/ansible创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考