Linux NFS NTP NIS 配置

由GPT-4整理: 以下是整理后的在管理节点 (mgt) 设置NFS服务的步骤:

NFS

NFS服务端

1. 安装RPC依赖和NFS服务

首先,在终端运行以下命令以安装必要的软件包:

sh

yum install rpcbind nfs-utils

这将安装rpcbindnfs-utils,这两个软件包是运行NFS服务所必需的。

2. 修改NFS配置文件

使用文本编辑器编辑 /etc/exports 文件来配置NFS分享。例如使用vim:

sh

bash 复制代码
vim /etc/exports

在该文件中加入下列行来配置NFS共享的目录和权限(请根据实际路径调整):

plaintext

bash 复制代码
/share *(rw,no_root_squash,sync,no_subtree_check)

参数含义:

  • rw:可读写权限。

  • no_root_squash:不降低root用户的权限。

  • sync:同步写入数据到内存与硬盘中。

  • no_subtree_check:不检查子目录的父目录权限,提高效率。

3. 重启NFS服务

配置完成后,需要重启NFS服务来应用这些更改:

sh

systemctl restart nfs

附加步骤

  • 确保rpcbindnfs-server在启动时自动启动:

sh

bash 复制代码
    systemctl enable rpcbind
    systemctl enable nfs-server
  • 检查/etc/exports配置是否正确:

sh

markdown 复制代码
    exportfs -rv

plaintext

bash 复制代码
这个命令会重新读取`/etc/exports`文件,并显示实际导出的文件系统。
  • 查看NFS共享状态:

sh

markdown 复制代码
    showmount -e

plaintext

运行这个命令来确认NFS共享已经正确设置并可被客户端访问。

按照以上步骤,你应该能够在你的管理节点(mgt)上设置并运行NFS服务,允许其他节点访问和使用指定的共享目录。

NFS客户端

以下是整理后的NFS客户端设置步骤:

1. 安装RPC依赖和NFS客户端服务

在c1节点上执行以下命令来安装RPC依赖和NFS客户端服务:

sh

yum install rpcbind nfs-utils

2. 启动RPC和NFS服务

虽然一般客户端不需要运行NFS服务,但由于某些依赖,可能需要重启nfs服务(如果需要的话):

sh

sql 复制代码
systemctl start rpcbind
systemctl restart nfs

3. 创建挂载目录

创建目录来挂载共享资源:

sh

bash 复制代码
mkdir /share

4. 挂载NFS共享目录

使用以下命令手动挂载mgt服务器上的共享资源:

sh

bash 复制代码
mount mgt:/share /share

5. 永久挂载:方法一(编辑 /etc/fstab)

a. 编辑 /etc/fstab 文件:

sh

bash 复制代码
vim /etc/fstab

b. 在该文件中添加以下行:

fstab

bash 复制代码
mgt:/share /share nfs defaults 0 0

c. 重新加载fstab使设置生效,无需重新启动:

sh

css 复制代码
mount -a

6. 永久挂载:方法二(编辑 /etc/rc.local)

如果 /etc/rc.local 是可行的启动脚本(注意在最新Linux系统中,可能会被systemd取代),则:

a. 编辑 /etc/rc.local 文件:

sh

bash 复制代码
vim /etc/rc.local

b. 在该文件中添加以下行:

bash

bash 复制代码
/bin/mount -t nfs mgt:/share /share

7. 查看服务器的共享文件

为了确认配置是否正确,可以在客户端执行以下命令查看服务器的共享文件:

sh

showmount -e mgt

请注意,确保在客户端集群的每个节点上都进行了这些设置操作,以确保它们能够访问NFS共享目录。如果你的系统使用的是systemd,步骤2中可能不需要重启整个NFS服务,仅启动rpcbind服务即可。

使用 /etc/fstab 文件和 /etc/rc.local 脚本两种方法进行NFS挂载,主要区别在于挂载时机、管理方式和易用性:

1. 使用 /etc/fstab 挂载

  • 时机:系统引导时自动执行挂载,无需人工干预。

  • 管理 :通过文件系统表(/etc/fstab)统一管理,与磁盘、分区等其他挂载点一起进行管理,符合Linux系统挂载管理的传统方式。

  • 易用性 :编辑 /etc/fstab 文件容易对新手造成困扰,但一旦设置完成,系统会在每次启动时自动挂载,无需手动操作。

  • 安全性/etc/fstab 中的错误配置可能会导致系统启动延迟或失败,尤其是网络挂载(如NFS)在网络不可用的情况下。

2. 使用 /etc/rc.local 挂载

  • 时机:在系统启动过程的最后阶段执行挂载,系统引导完成后执行,为手动挂载提供了一种自动化方案。

  • 管理:通过单独的脚本文件进行管理,与系统的其他启动任务一起执行,但与标准的文件系统挂载管理方式分离。

  • 易用性 :对于习惯于编写启动脚本的用户来说,编辑 /etc/rc.local 文件较为直观易懂,但对系统启动流程的理解要求较高。

  • 灵活性:可能更适合高级配置和特殊需求,例如在挂载前需执行特定的网络检查或配置。

总的来说,通过 /etc/fstab 进行挂载更符合Linux系统管理习惯,为自动挂载提供了一个既简单又强大的解决方案。而使用 /etc/rc.local 的方法提供了额外的灵活性和控制,但可能需要更多的系统知识来安全地使用。对于绝大多数用途,推荐使用 /etc/fstab 方法来挂载NFS或其他网络文件系统,因为它提供了更好的一致性和可靠性。

NTP

服务端

安装 Chrony

  1. 在 mgt 节点上安装 Chrony:

sh

yum -y install chrony

配置 Chrony

  1. 编辑 Chrony 的配置文件 /etc/chrony.conf

sh

bash 复制代码
vi /etc/chrony.conf
  1. 注释掉默认的 NTP 服务器(如果你不打算使用它们作为上游服务器):

conf

arduino 复制代码
解释
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
  1. 允许特定的客户端或客户端IP网段与此服务器同步时间:

conf

allow 192.168.1.2

或者,若要允许整个子网 192.168.1.0/24(即IP范围是 192.168.1.0192.168.1.255)的设备同步时间,使用以下配置:

conf

allow 192.168.1.0/24

5.(可选)配置这台服务器作为一个特定层级的时间服务器:

conf

bash 复制代码
local stratum 10

这里设置本机作为第10层的时间服务器。

重启 Chrony 服务

  1. 应用修改并重启 Chrony 服务:

sh

systemctl restart chronyd

验证和调试

  1. 通过查看 Chronyd 的状态和日志来验证配置:

sh

lua 复制代码
systemctl status chronyd

sh

journalctl -u chronyd

通过 allow 192.168.1.0/24 的配置,你可以允许处于 192.168.1.0/24 这个子网内的所有设备与你的 Chrony 服务同步时间,这样的设置比单个IP更灵活,特别是在局域网环境中,这样做可以避免你需要为每个客户机单独设置权限,简化了管理工作。

客户端

此处开始由GPT3.5生成 以下是整理后的流程:

  1. 在客户端节点(c1)上执行以下命令安装 chrony:

    css 复制代码
    Copy code
    yum -y install chrony
  2. 使用文本编辑器编辑 /etc/chrony.conf 文件:

    bash 复制代码
    bashCopy code
    vi /etc/chrony.conf
  3. 在配置文件中,注释掉默认的 NTP 服务器(以"#"开头),并添加你的时间同步服务端的 IP 地址:

    less 复制代码
    arduinoCopy code
    解释
    #server 0.centos.pool.ntp.org iburst
    #server 1.centos.pool.ntp.org iburst
    #server 2.centos.pool.ntp.org iburst
    #server 3.centos.pool.ntp.org iburst
    server 192.168.1.2 iburst
  4. 保存并关闭文件后,重新启动 chronyd 服务以使更改生效:

    css 复制代码
    Copy code
    systemctl restart chronyd
  5. 检查当前 NTP 源以确保已与指定的服务器同步:

    css 复制代码
    Copy code
    chronyc sources -v

在这个过程中,确保替换 192.168.1.2 为你实际的时间同步服务端的 IP 地址。这样就可以确保客户端节点与时间同步服务器进行了正确的配置和同步。

NIS

服务端

整理后的 NIS 服务端搭建流程如下:

  1. 安装 NIS 服务端的包:

    css 复制代码
    Copy code
    yum install ypserv
  2. 设置 NIS 域名:

    • 编辑 /etc/sysconfig/network 文件:

      bash 复制代码
      bashCopy code
      vi /etc/sysconfig/network
    • 在文件中添加域名:

      ini 复制代码
      makefileCopy code
      NISDOMAIN=hpc
    • 在命令行设置域名:

      css 复制代码
      Copy code
      nisdomainname hpc
  3. 设置开机自启:

    • 编辑 /etc/rc.d/rc.local 文件:

      bash 复制代码
      bashCopy code
      vi /etc/rc.d/rc.local
    • 在文件中添加命令:

      bash 复制代码
      bashCopy code
      /bin/nisdomainname hpc
    • 确保 /etc/rc.d/rc.local 文件已设置为可执行:

      bash 复制代码
      bashCopy code
      chmod +x /etc/rc.d/rc.local
  4. 将集群中各个节点的 IP 地址和域名映射加入到 hosts 文件中。

  5. /share 目录中创建子目录:

    arduino 复制代码
    arduinoCopy code
    mkdir -p /share/home
  6. 将用户所在目录或上层目录设置为共享目录(以 /share/home 目录为例):

    • 编辑 /etc/exports 文件:

      bash 复制代码
      bashCopy code
      vi /etc/exports
    • 在文件中添加共享配置:

      bash 复制代码
      bashCopy code
      /share *(rw,no_root_squash,sync,no_subtree_check)
    • 重启 NFS 服务:

      css 复制代码
      Copy code
      systemctl restart nfs
  7. 新建用户:

    arduino 复制代码
    arduinoCopy code
    useradd -d /share/home/dh -m dh
  8. 建立 NIS 数据库:

    bash 复制代码
    bashCopy code
    /usr/lib64/yp/ypinit -m
  9. 启动 NIS 服务端:

    css 复制代码
    Copy code
    systemctl restart ypserv
  10. 如果之后有用户更新,执行以下命令更新数据库:

    css 复制代码
    goCopy code
    make -C /var/yp/

确保按照正确的顺序执行每个步骤,并确保在编辑配置文件时使用正确的语法和文件路径。

客户端

整理后的 NIS 客户端搭建流程如下:

在 c1 节点上进行 NIS 客户端的搭建:

  1. 安装 NIS 客户端的包:

    css 复制代码
    Copy code
    yum install ypbind
  2. 设置 NIS 域名:

    • 编辑 /etc/sysconfig/network 文件:

      bash 复制代码
      bashCopy code
      vi /etc/sysconfig/network
    • 在文件中添加域名:

      ini 复制代码
      makefileCopy code
      NISDOMAIN=hpc
    • 在命令行设置域名:

      css 复制代码
      Copy code
      nisdomainname hpc
  3. 设置开机自启:

    • 编辑 /etc/rc.d/rc.local 文件:

      bash 复制代码
      bashCopy code
      vi /etc/rc.d/rc.local
    • 在文件中添加命令:

      bash 复制代码
      bashCopy code
      /bin/nisdomainname hpc
    • 确保 /etc/rc.d/rc.local 文件已设置为可执行:

      bash 复制代码
      bashCopy code
      chmod +x /etc/rc.d/rc.local
  4. 将 NIS 服务器的记录加入到 hosts 文件中:

    • 编辑 /etc/hosts 文件:

      bash 复制代码
      bashCopy code
      vi /etc/hosts
    • 在文件中添加 NIS 服务器的 IP 地址和主机名:

      css 复制代码
      Copy code
      192.168.1.1 mgt
  5. 修改密码验证方式:

    • 编辑 /etc/nsswitch.conf 文件:

      bash 复制代码
      bashCopy code
      vi /etc/nsswitch.conf
    • 在文件中配置密码验证方式,将 nis 添加到 passwdshadowgroup 配置中,如下所示:

      makefile 复制代码
      makefileCopy code
      passwd:      files nis sss
      shadow:      files nis sss
      group:       files nis sss
  6. 设置 NIS 服务器的主机名和域名:

    • 编辑 /etc/yp.conf 文件:

      bash 复制代码
      bashCopy code
      vi /etc/yp.conf
    • 在文件中添加 NIS 服务器的域名和主机名:

      css 复制代码
      Copy code
      domain hpc server mgt
  7. 启动客户端服务:

    css 复制代码
    Copy code
    systemctl restart ypbind

确保按照正确的顺序执行每个步骤,并确保在编辑配置文件时使用正确的语法和文件路径。

相关推荐
舞动CPU4 小时前
linux c/c++最高效的计时方法
linux·运维·服务器
秦jh_6 小时前
【Linux】多线程(概念,控制)
linux·运维·前端
keep__go8 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell
矛取矛求8 小时前
Linux中给普通账户一次性提权
linux·运维·服务器
Fanstay9858 小时前
在Linux中使用Nginx和Docker进行项目部署
linux·nginx·docker
大熊程序猿8 小时前
ubuntu 安装kafka-eagle
linux·ubuntu·kafka
daizikui10 小时前
Linux文件目录命令
linux·运维·服务器
NikitaC10 小时前
ldconfig 和 LD_LIBRARY_PATH 区别
linux·c++
清源妙木真菌10 小时前
Linux:进程概念
linux