news 2026/7/13 3:48:48

自动化运维工程师之ansible启动rpcbind和nfs服务

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自动化运维工程师之ansible启动rpcbind和nfs服务

通过systemd模块分别启动rpcbindnfs服务,并设置它们为开机自启,是 NFS 服务部署中启动相关服务的典型配置。下面我会逐部分解析代码的含义、作用以及关键细节。

一、代码整体功能总结

这段代码包含两个独立的systemd模块任务,依次完成:

  1. 启动rpcbind服务,同时设置该服务开机自动启动;
  2. 启动nfs服务,同时设置该服务开机自动启动。

二、逐行代码解释

第一个任务:启动并启用 rpcbind 服务
-name:启动服务rpcbind,nfs# 任务名称(可自定义,执行时会显示该名称)systemd:# 调用 Ansible 的 systemd 模块(用于管理 systemd 服务)name:rpcbind# 指定要管理的服务名称为 rpcbindenabled:true# 设置服务为开机自启(等同于 systemctl enable rpcbind)state:started# 确保服务处于运行状态(等同于 systemctl start rpcbind)
  • rpcbind服务的作用rpcbind是 NFS 服务的依赖服务,负责映射 RPC(远程过程调用)端口,NFS 服务必须依赖rpcbind才能正常工作,因此需要先启动rpcbind
  • 参数说明
    • name: rpcbind:明确要操作的服务是rpcbind(系统中实际的服务名可能是rpcbind.service,写rpcbind即可,Ansible 会自动识别);
    • enabled: true:幂等性配置,无论执行多少次,都会保证服务是开机自启状态(已开启则跳过,未开启则执行启用操作);
    • state: started:幂等性配置,保证服务处于运行状态(已启动则跳过,未启动则执行启动操作)。
第二个任务:启动并启用 nfs 服务
-name:启动服务nfs# 任务名称(区分于上一个任务,更清晰)systemd:name:nfs# 指定要管理的服务名称为 nfsenabled:true# 设置 nfs 服务开机自启state:started# 确保 nfs 服务处于运行状态
  • nfs服务的注意点:在不同的 Linux 发行版中,NFS 服务的实际名称可能不同(比如 CentOS 7+/RHEL 7+ 中是nfs-server.service,部分系统简写为nfs也能识别)。如果直接写nfs报错,可改为nfs-server
  • 参数作用:和rpcbind任务的参数含义完全一致,都是保证服务运行+开机自启。

三、关键特性与优化建议

1. 幂等性保障(Ansible 核心特性)

这两个任务都是幂等的

  • 第一次执行:rpcbindnfs服务会被启动,同时设置开机自启(changed: true);
  • 重复执行:Ansible 会检查服务状态,若已启动且开机自启,则直接跳过(ok: true),不会产生重复操作。
2. 可优化的点(简化代码,提升效率)

你当前的代码是两个独立任务,可合并为一个任务管理多个服务(systemd模块支持列表形式的服务名),简化代码:

-name:启动并启用 rpcbind 和 nfs 服务systemd:name:"{{ item }}"# 循环遍历服务名enabled:truestate:startedloop:# 循环模块,依次处理每个服务-rpcbind-nfs# 若系统中是 nfs-server,改为 nfs-server 即可

这样修改后,功能和原来完全一致,但代码更简洁,尤其是需要管理多个服务时,优势更明显。

3. 服务名的兼容性处理

如果执行时出现nfs服务找不到的错误,可先在被控端执行systemctl list-unit-files | grep nfs查看实际服务名,然后修改name参数:

  • 比如实际服务名是nfs-server,则将name: nfs改为name: nfs-server

四、执行效果验证

执行完这段 Playbook 后,可通过以下 Ansible 命令验证服务状态:

# 验证 rpcbind 服务状态ansible 目标主机 -m systemd -a'name=rpcbind'--become# 验证 nfs 服务状态(若为 nfs-server 则替换名称)ansible 目标主机 -m systemd -a'name=nfs'--become

输出中会显示active (running)(运行中)和enabled(开机自启),表示配置生效。

总结

  1. 这段代码通过 Ansible 的systemd模块分别管理rpcbindnfs服务,实现启动服务+开机自启的核心功能;
  2. enabled: true保证开机自启,state: started保证服务运行,二者结合实现了服务的可靠配置;
  3. 可通过loop循环简化代码,同时注意不同系统中nfs服务名的兼容性问题。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/12 5:35:36

AtlasOS显卡性能优化终极指南:从新手到高手的完整教程

AtlasOS显卡性能优化终极指南:从新手到高手的完整教程 【免费下载链接】Atlas 🚀 An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atlas…

作者头像 李华
网站建设 2026/7/13 1:38:04

语义搜索技术:AI原生应用的关键技术栈

语义搜索技术:AI原生应用的关键技术栈 关键词:语义搜索、向量检索、AI原生应用、多模态融合、自然语言处理(NLP) 摘要:在AI原生应用时代,传统关键词匹配搜索已无法满足用户对“理解意图”的需求。本文将从“…

作者头像 李华
网站建设 2026/7/13 0:49:44

终极邮箱验证指南:无需发送邮件即可检测邮箱有效性

终极邮箱验证指南:无需发送邮件即可检测邮箱有效性 【免费下载链接】check-if-email-exists Check if an email address exists without sending any email, written in Rust. Comes with a ⚙️ HTTP backend. 项目地址: https://gitcode.com/gh_mirrors/ch/chec…

作者头像 李华
网站建设 2026/7/12 19:52:18

PPO训练效率革命:多进程并行技术深度解析与实战优化

PPO训练效率革命:多进程并行技术深度解析与实战优化 【免费下载链接】easy-rl 强化学习中文教程(蘑菇书🍄),在线阅读地址:https://datawhalechina.github.io/easy-rl/ 项目地址: https://gitcode.com/dat…

作者头像 李华
网站建设 2026/7/13 0:52:17

定位、感知、融合长期演进综述

定位、感知、融合长期演进综述SLAM 框架SLAM分类视觉SLAM——VIOORB-SLAM系列MSCKF系列VINS-Fusion激光SLAM——LIO3D激光SLAM视觉SLAM与激光SLAM融合FAST-LIO2基于深度学习的SLAM高斯语义SLAMLightning-LM技术架构与核心功能SLAM涉及的各种算法模块特征提取算法特征点检测算法…

作者头像 李华
网站建设 2026/7/12 22:50:23

Rucbase数据库系统实践项目:从理论到实现的完整技术指南

Rucbase数据库系统实践项目:从理论到实现的完整技术指南 【免费下载链接】rucbase-lab RUC Educational Database Project open lab 项目地址: https://gitcode.com/gh_mirrors/ru/rucbase-lab Rucbase是中国人民大学数据库教学团队开发的数据库管理系统实验…

作者头像 李华