13
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CentOS7にNFSサーバーを秒で構築

Last updated at Posted at 2019-06-14

概要

Kubernetesで利用するPersistent Volumeを簡易的に作りたかったので、秒でNFSサーバーを構築した。

関連記事

環境

  • CentOS 7.6
  • nfs-utils-1.3.0-0.61

NFSサーバーのインストール

NFSにするサーバーで以下を実行

接続許可設定は環境にあったものに変更してください。

nfs-installer.sh
#!/bin/bash
sudo yum install -y rpcbind nfs-utils

# mountするディレクトリ
sudo mkdir -p /var/share/nfs

# 共有ディレクトリを設定
EXPORTS_FILE='/etc/exports'
# 接続許可設定
DEFINITION='/var/share/nfs 192.168.249.0/24(rw)'

sudo cat ${EXPORTS_FILE} | grep -w "${DEFINITION}" > /dev/null 2>&1
if [ $? = 1 ]; then
  sudo echo "${DEFINITION}" >> ${EXPORTS_FILE}
  sudo exportfs -ra
  sudo exportfs -v
else
  echo 'Alreday defined.'
fi

# Domain の行にドメイン名を指定します。ここで指定したドメイン名は NFSv4 が内部的に使用します
# Domainはサーバ・クライアントで共通であればなんでもいいようです
IDMAPD_FILE='/etc/idmapd.conf'
ORIGINAL='#Domain = local\.domain\.edu'
REPLACED='Domain = local\.domain\.edu'

sudo sed -i -e "s/${ORIGINAL}/${REPLACED}/g" ${IDMAPD_FILE}

# 起動
sudo systemctl start rpcbind
sudo systemctl start nfs-server
sudo systemctl start nfs-lock
sudo systemctl start nfs-idmap
sudo systemctl enable nfs-server

# firewalld
sudo firewall-cmd --permanent --zone=public --add-service=nfs
sudo firewall-cmd --reload

実行

$ chmod u+x nfs-installer.sh
$ sudo ./nfs-installer.sh

Clientでの作業

mountする側のサーバーで実行。こちらでもrpcbind nfs-utilsが必要。

client.sh
#!/bin/bash
NFS_SERVER='NFSサーバーのIPアドレス'
REMOTE_VOLUME='/var/share/nfs'
LOCAL_VOLUME='/mnt/nfs'

sudo yum install rpcbind nfs-utils -y
# mountする
sudo mount -t nfs ${NFS_SERVER}:${REMOTE_VOLUME} ${LOCAL_VOLUME}

実行

$ chmod u+x client.sh
$ sudo ./client.sh

mountされたか確認

NFSサーバー

$ sudo touch /var/share/nfs/sample.txt

Clientサーバー

$ ls /mnt/nfs
sample.txt

unmount

client側で実行

$ sudo umount /mnt/nfs

root権限でNFSのmount先に書き込みができない

/etc/exportsにno_root_squashを付ける。

/etc/exports
/var/share/nfs 192.168,1.0/24(rw,no_root_squash)

NFSでは、デフォルトでroot権限でのmount先の領域に書き込みができないようになっている。
mount先のroot権限を持っていなくても、リモートからroot権限での書き込みができてしまうことがセキュリティ上よくないからだ。
no_root_squashを付与することで、root権限での書き込みが可能となる。

参考:https://okwave.jp/qa/q6145679.html

参考

13
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?