当前位置: 首页 > news >正文

NFS:使用 Ansible 自动化配置 NFS 客户端服务端


  • 考试顺便整理
  • 博文内容整理涉及使用 Ansible 部署 NFS 客户端和服务端
  • 理解不足小伙伴帮忙指正

对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》


涉及到的文件

[student@workstation filestorage-automation]$ ls
ansible.cfg  inventory  nfs_client.yml  nfs_server.yml  smb_client.yml  smb_server.yml  smb_vars.yml  templates
[student@workstation filestorage-automation]$ tree .
.
├── ansible.cfg
├── inventory
├── nfs_client.yml
├── nfs_server.yml
└── templates└── share.exports.j2

配置文件和主机清单文件,不多解释

[student@workstation filestorage-automation]$ cat ansible.cfg
[defaults]
inventory=inventory
remote_user=devops
[student@workstation filestorage-automation]$ cat inventory
[servers]
serverd.lab.example.com[clients]
servera.lab.example.com
serverb.lab.example.com
serverc.lab.example.com
[student@workstation filestorage-automation]$

客户端配置

  • 安装nfs-utils软件包:使用yum模块确保目标主机上安装了nfs-utils软件包。
  • 挂载NFS共享并添加到/etc/fstab:使用mount模块将NFS共享挂载到指定的挂载点,fstype参数设置为nfs表示文件系统类型为NFS。
[student@workstation filestorage-automation]$ cat nfs_client.yml
---
- name: Access an NFS exporthosts: servera.lab.example.combecome: truevars:shared_dir: /nfssharemount_point: /datanfstasks:- name: the nfs-utils package is installedyum:name: nfs-utilsstate: present- name: the NFS export is mounted and in /etc/fstabmount:path: "{{ mount_point }}"src: serverd.lab.example.com:{{ shared_dir }}state: mountedfstype: nfs

服务端配置

  • 安装nfs-utils软件包:使用yum模块确保目标主机上安装了nfs-utils软件包。
  • 目录存在性检查:使用file模块检查目标目录({{ shared_dir }})是否存在。如果目录不存在,则使用指定的所有者、组和权限创建该目录。
  • 导出目录:使用template模块根据模板文件(templates/share.exports.j2)生成NFS导出配置文件(/etc/exports.d/share.exports)。该配置文件定义了要导出的目录以及访问权限等参数。导出配置文件的所有者、组和权限也被指定。
  • 启动并启用nfs-server服务:使用service模块启动并启用nfs-server服务,确保NFS服务器正在运行,并在系统启动时自动启用该服务。
  • 打开nfs防火墙服务:使用firewalld模块打开nfs防火墙服务,确保NFS流量可以通过防火墙。service参数指定要打开的服务为nfs,state参数设置为enabled表示启用该服务,immediate和permanent参数设置为yes表示立即生效并在系统重启后仍然生效。
[student@workstation filestorage-automation]$ cat nfs_server.yml
---
- name: Export a directory using NFShosts: serverd.lab.example.combecome: truevars:shared_dir: /nfssharetasks:- name: the nfs-utils package is installedyum:name: nfs-utilsstate: present- name: the directory existsfile:path: "{{ shared_dir }}"owner: studentgroup: rootmode: '0755'state: directory- name: the directory is exportedtemplate:src: templates/share.exports.j2dest: /etc/exports.d/share.exportsowner: rootgroup: rootmode: '0644'notify: reload exports- name: the nfs-server service is started and enabledservice:name: nfs-serverstate: startedenabled: yes- name: the nfs firewall service is openedfirewalld:service: nfsstate: enabledimmediate: yespermanent: yeshandlers:- name: reload exportsservice:name: nfs-serverstate: reloaded
[student@workstation filestorage-automation]$

生成NFS共享的导出配置文件

[student@workstation filestorage-automation]$ cat templates/share.exports.j2
{{ shared_dir }}{% for host in groups['clients'] %}{{ host }}(rw)
{%- endfor %}

博文部分内容参考

© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知,这是一个开源项目,如果你认可它,不要吝啬星星哦 😃


红帽服务管理与自动化(RH358)授课笔记


© 2018-2023 liruilonger@gmail.com, All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)

相关文章:

NFS:使用 Ansible 自动化配置 NFS 客户端服务端

考试顺便整理博文内容整理涉及使用 Ansible 部署 NFS 客户端和服务端理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃…...

IntelliJ IDEA使用——Debug操作

文章目录 版本说明图标和快捷键查看变量计算表达式条件断点多线程调试 版本说明 当前的IntelliJ IDEA 的版本是2021.2.2(下载IntelliJ IDEA) ps:不同版本一些图标和设置位置可能会存在差异,但应该大部分都差不多。 图标和快捷键…...

uniapp项目实践总结(十八)自定义多列瀑布流组件

导语:有时候展示图片等内容,会遇到图片高度不一致的情况,这时候就不能使用等高双列或多列展示了,这时候会用到瀑布流的页面布局,下面就一起探讨一下瀑布流的实现方法。 目录 准备工作原理分析实战演练案例展示 准备工…...

Ubuntu 22.04LTS + 深度学习环境安装全流程

一、 CUDA Toolkit 安装 1. 选择需要安装的版本(下载地址) 2. 选择自己的系统版本获取下载地址和安装指令 3. 运行安装指令进行安装 wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run sudo sh cuda_12.2.…...

【lesson7】git的介绍及使用

文章目录 什么是gitgit的历史git使用在gitee上创建仓库git clone HTTPS地址git add .git add 文件名git commit “日志”git pushgit loggit rm 文件名git statusgit pull 什么是git git是版本控制器,那么什么是版本控制器呢? 下面讲个故事为大家讲解一…...

Keepalived+LVS高可用集群

目录 一、keepalived介绍: 二、keepalived工具介绍: (1)管理 LVS 负载均衡软件: (2)支持故障自动切换: (3)实现 LVS 负载调度器、节点服务器的高可用性&…...

AK 9.12 百度Java后端研发B卷 笔试

T1(博弈论) #include <bits/stdc.h>#define endl \nusing namespace std;typedef long long LL;const int N 1e5 10;int n, m, t;void solve() {cin >> n >> m; t n m - 2;if(t & 1) cout << "Yes" << endl;else cout <&l…...

使用Python和XPath解析动态JSON数据

JSON动态数据在Python中扮演着重要的角色&#xff0c;为开发者提供了处理实时和灵活数据的能力。Python作为一种强大的编程语言&#xff0c;提供了丰富的工具和库来处理动态JSON数据使得解析和处理动态JSON数据变得简单和高效。例如&#xff0c;使用内置的json模块&#xff0c;…...

记录一个iOS实现视频分片缓存拖拽快进不能播放的问题

代码现状 首先来看一下我们将视频数据塞给请求的代码 - (void)finishLoadingWithLoadingRequest:(IdiotResourceTask *)task {// printf("哈哈执行到这里执行到到这里\n");printf("哈哈哈数量数量%ld\n", self.taskList.count);//填充信息task.loadingRe…...

如何解决 503 Service Temporarily Unavailable?

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…...

keil报错:Flash Download failed - Could not load file‘..\..\Output\Template.axf

keil报错&#xff1a;Flash Download failed - Could not load file’…\Output\Template.axf&#xff0c;如下图所示&#xff1a; 原因是很多.h文件没有定义位置&#xff0c;可以按照下图操作&#xff1a; 而且&#xff0c;如果是想使用压缩包&#xff0c;那一定要关闭keil后…...

从一到无穷大 #16 ByteSeries,思考内存时序数据库的必要性

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 引言 在[3]中我基于Gorilla讨论了时序数据库设置cache的可行性&#xff0c;最后得出结论&…...

分支和远程仓库

分支 查看分支 git branch -v 创建分支 git branch 分支名 切换分支 git checkout 分支名 合并分支 git merge 分支名 把指定的分支合并到当前分支上 查看当前所有远程地址别名&#xff1a; git remote -v 起别名&#xff1a; git remote add 别名 远程地址推送本地分支上的…...

编译原理 —— 编译器

文章目录 编译原理阶段词法分析器语法分析器语义分析器中间代码生成器代码优化器代码生成器 编译原理阶段 编译器分为9个阶段来将我们所编写的高级代码编译为计算机可执行的机器码 源程序词法分析器语法分析器语义分析器中间代码生成器独立于机器的代码优化器代码生成器依赖于…...

Python灰帽编程——错误异常处理与面向对象

文章目录 错误异常处理与面向对象1. 错误和异常1.1 基本概念1.1.1 Python 异常 1.2 检测&#xff08;捕获&#xff09;异常1.2.1 try except 语句1.2.2 捕获多种异常1.2.3 捕获所有异常 1.3 处理异常1.4 特殊场景1.4.1 with 语句 1.5 脚本完善 2. 内网主机存活检测程序2.1 scap…...

【每日一题】154. 寻找旋转排序数组中的最小值 II

154. 寻找旋转排序数组中的最小值 II - 力扣&#xff08;LeetCode&#xff09; 已知一个长度为 n 的数组&#xff0c;预先按照升序排列&#xff0c;经由 1 到 n 次 旋转 后&#xff0c;得到输入数组。例如&#xff0c;原数组 nums [0,1,4,4,5,6,7] 在变化后可能得到&#xff1…...

Linux中如何获取输入设备(如触摸屏、按键等)的事件信息

Linux中如何获取输入设备&#xff08;如触摸屏、按键等&#xff09;的事件信息 在Linux中&#xff0c;可以使用getevent命令来获取输入设备&#xff08;如触摸屏、按键等&#xff09;的事件信息。如果你想在C程序中获取输入设备事件&#xff0c;可以使用以下步骤&#xff1a; …...

Java学习day05:排序,选择、冒泡、快速、二分、杨辉三角

声明&#xff1a;该专栏本人重新过一遍java知识点时候的笔记汇总&#xff0c;主要是每天的知识点题解&#xff0c;算是让自己巩固复习&#xff0c;也希望能给初学的朋友们一点帮助&#xff0c;大佬们不喜勿喷(抱拳了老铁&#xff01;) Java学习day05&#xff1a;排序&#xff0…...

Mybatis的mapper.xml批量插入、修改sql

今天要有个功能&#xff0c;要进行一批数据的插入和修改&#xff0c;为了不频繁调用数据库&#xff0c;所以想到了批量插入和修改&#xff0c;因为从毕业后&#xff0c;就没写过批量插入和批量修改&#xff0c;所以在这里记录一下&#xff0c;避免后续再遇到忘记怎么写了 批量…...

Centos7部署单机版MongoDB

目录 Centos7部署单机版MongoDBMongoDB介绍数据模型索引分布式高可用性查询语言驱动和社区用途缺点 下载并解压安装包创建相关文件夹和文件编辑mongod.conf文件启动mongodb创建管理员用户终止MongoDB服务配置自启动服务关闭SELinux编辑自启动服务文件mongodb服务命令 Centos7部…...

Docker实战-第一章欢迎来到Docker世界

Docker基础 什么是Docker docker是包括一个命令行程序、后台守护进程和一组远程服务&#xff0c;它简化了安装、运行、发布和删除软件的工作。docker实现的基础是UNIX的容器技术。所以在docker出世之前已经有容器的概念&#xff0c;而且像谷歌一类公司也在探索自己的容器&…...

初识C语言——详细入门一(系统性学习day4)

目录 前言 一、C语言简单介绍、特点、基本构成 简单介绍&#xff1a; 特点&#xff1a; 基本构成&#xff1a; 二、认识C语言程序 标准格式&#xff1a; 简单C程序&#xff1a; 三、基本构成分类详细介绍 &#xff08;1&#xff09;关键字 &#xff08;2&#xf…...

python 学习笔记(6)—— Flask 、MySql

目录 Flask 1、起步 2、渲染项目的首页 3、处理无参数的 GET 请求 4、处理有 query 参数的 GET 请求 6、处理 params 参数的 get 请求 6、处理 application/json 类型请求体的 POST 请求 7、根据参数渲染模板页面 8、上传文件 数据库操作&#xff08;mysql&#xff0…...

Deepin下vsftp服务安装配置虚拟用户

1. 系统环境 Deepin20.9 2. 在线安装 # apt install -y vsftp //安装ftp服务软件 # apt install -y db-util //安装虚拟用户密码库处理软件 3. 离线安装 3.1 下载依赖包 # apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --n…...

OpenpyxlWriter‘ object has no attribute ‘save‘

问题 将实验结果保存为EXCEL&#xff0c;报错“OpenpyxlWriter‘ object has no attribute ‘save‘” data_df pd.DataFrame(Experiment_result) #关键1&#xff0c;将ndarray格式转换为DataFrame writer pd.ExcelWriter(./results/ args.model_num _args.data_name …...

ES6(三)

文章目录 Promise概念作用回调地狱Promise使用对象的状态Promise.allPromise.race Generator 函数概念基本语法异步流程 Class语法类的写法getter与setter静态属性和静态方法继承模块化 Promise 概念 Promise 是异步编程的一种解决方案&#xff0c;比传统的解决方案回调函数,…...

Android 数据库封装(SQLite)

Android 数据库操作&#xff08;SQLite&#xff09; Android 数据库操作&#xff08;SQLite&#xff09;动态预览使用初始化生成表实体类插入数据批量插入删除数据删除全部修改数据查找&#xff08;列表&#xff09;查找&#xff08;单条&#xff09;条件查找&#xff08;列表&…...

Git从入门到起飞(详细)

Git从入门到起飞 Git从入门到起飞什么是Git&#xff1f;使用git前提(注册git)下载Git在Windows上安装Git在macOS上安装Git在Linux上安装Git 配置Git配置全局用户信息配置文本编辑器 创建第一个Git仓库初始化仓库拉取代码添加文件到仓库提交更改推送 Git基本操作查看提交历史比较…...

R读写parquet文件

什么是parquet文件 Apache Parquet是一个开源的&#xff0c;列存储的数据文件格式。 https://parquet.apache.org/ 在R里面&#xff0c;我们可以通过arrow包来读写它。 我们先安装一下arrow包&#xff0c;并加载它。 install.packages("arrow") library(arrow)读写…...

Java21 LTS版本

一、前言 除了众所周知的 JEP 之外&#xff0c;Java 21 还有更多内容。首先请确认 java 版本&#xff1a; $ java -version openjdk version "21" 2023-09-19 OpenJDK Runtime Environment (build 2135-2513) OpenJDK 64-Bit Server VM (build 2135-2513, mixed mo…...

成都网站建设:思乐科技/优化网站搜索

摘要摘要在机器翻译和作文自动评分领域已经有比较成熟的研究成果&#xff0c;但是在人工翻译评分领域的研究还不够深入。在同为主观题的作文评分中&#xff0c;采用多元线性回归方法建立文本特征和分数之间的方程。但是人工翻译评分选取的文本特征之间关系更为复杂&#xff0c;…...

如何网站全部结构/百度开户流程

Sketch在作图应用&#xff08;与Photoshop同理&#xff09;的时候&#xff0c;为了省事&#xff0c;可能将页面内图层的顺序都随意摆放&#xff0c;有时候实在太多了就进行群组&#xff0c;英文叫group进行命名&#xff0c;这是一个默认的状态&#xff0c;会出现group1、2、3、…...

wordpress 图片上传插件/seo优化内页排名

一、规划和管理项目的合规性 1&#xff09;确认项目合规要求&#xff08;例如保护措施、健康和安全、监管合规&#xff09; 2&#xff09;对合规类别进行分类 3&#xff09;确定合规面临的潜在威胁 4&#xff09;采用相关方法为合规提供支持 5&#xff09;分析不合规的后果 6&a…...

国贸做网站公司/如何制作网站

今天&#xff0c;说一Ipad充不了电&#xff0c;我想才没买好久&#xff0c;这么快电池就坏了呀。难道买到歪货了&#xff1f; 它的表现是充电线一接上去&#xff0c;电池指示有反应&#xff0c;也有"闪电"标志&#xff0c;就是充不进去电。本来想打客服的&#xff0c…...

日本插画网站有哪些/百度24小时客服电话136

堆 逻辑结构&#xff1a; 1 / \ 1 3 / \ / \ 4  5 6 null 物理结构; 1.首先堆是一个完全二叉查找书&#xff08;Complete Binary Search Tree&#xff09;树&#xff0c;观察一下堆的逻辑结构和物理结构&#xff0c;逻辑结构是一颗完全二…...

外国小孩和大人做网站/正规代运营公司排名

本书的作用 本书会帮助你跨过“原理听起来不错&#xff0c;但还是有点儿新&#xff0c;不太适应”的门槛&#xff0c;从而熟练地编程。 “也许吧&#xff0c;”你可能会想&#xff0c;“可是Lambda、函数式编程&#xff0c;这些不是那些留着胡子、穿着凉鞋的学究们在象牙塔里面…...