Домашнее задание 6
Работа с NFS
Для выполнение задания используется 2 vm Ubuntu Server 24.04
Для дальнейших действий перейдем сразу в суперпользователя
nimda@ubuntu-nfs-server:~$ sudo su
[sudo] password for nimda:
root@ubuntu-nfs-server:/home/nimda#
nimda@ubuntu-nfs-client:~$ sudo su
[sudo] password for nimda:
root@ubuntu-nfs-server:/home/nimda#
Устанавливаем NFS сервер
С помощью apt устанавливаем сервер nfs
root@ubuntu-nfs-server:/home/nimda# apt install nfs-kernel-server -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
keyutils libnfsidmap1 nfs-common rpcbind
Suggested packages:
watchdog
The following NEW packages will be installed:
keyutils libnfsidmap1 nfs-common nfs-kernel-server rpcbind
0 upgraded, 5 newly installed, 0 to remove and 25 not upgraded.
....
....
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
root@ubuntu-nfs-server:/home/nimda#
Проверяем, слушаются ли порты 2049 и 111
root@ubuntu-nfs-server:/home/nimda# ss -tnplu | grep -E '0:2049|0:111'
udp UNCONN 0 0 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=1510,fd=5),("systemd",pid=1,fd=100))
tcp LISTEN 0 64 0.0.0.0:2049 0.0.0.0:*
tcp LISTEN 0 4096 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=1510,fd=4),("systemd",pid=1,fd=96))
Создаем и опубликовываем каталог
Создаем каталог
root@ubuntu-nfs-server:/home/nimda# mkdir -p /srv/nfs_share/upload
Меняем владельца
root@ubuntu-nfs-server:/home/nimda# chown -R nobody:nogroup /srv/nfs_share/
Меняем разрешение на папку upload. Разрешаем чтение и запись для всех
root@ubuntu-nfs-server:/home/nimda# chmod 0777 /srv/nfs_share/upload/
С помощью vi редактируем файл /etc/exports, и добавляем следующую строку
/srv/nfs_share 192.168.50.41(rw,sync)
Перечитываем файл конфигурации NFS
root@ubuntu-nfs-server:/home/nimda# exportfs -r
exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.50.41:/srv/nfs_share".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x
Проверим, что каталог опубликован
root@ubuntu-nfs-server:/home/nimda# exportfs -s
/srv/nfs_share 192.168.50.41(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
Устанавливаем NFS клиент
Устанавливаем nfs клиент
root@ubuntu-nfs-client:/home/nimda# apt install nfs-common -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
keyutils libnfsidmap1 rpcbind
Suggested packages:
watchdog
The following NEW packages will be installed:
keyutils libnfsidmap1 nfs-common rpcbind
0 upgraded, 4 newly installed, 0 to remove and 34 not upgraded.
Need to get 400 kB of archives.
....
....
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
Создаем каталог, куда будем монтировать из nfs сервера
root@ubuntu-nfs-client:/home/nimda# mkdir /mnt/nfs
Редактируем /etc/fstab и добавляем туда автомонтирование калога по nfs для версии 3
192.168.50.28:/srv/nfs_share/ /mnt/nfs nfs vers=3,noauto,x-systemd.automount 0 0
Перечитываем конфигурацию служб, и перезапускаем службы монтирования по сети
root@ubuntu-nfs-client:/home/nimda# systemctl daemon-reload
root@ubuntu-nfs-client:/home/nimda# systemctl restart remote-fs.target
Проверка
Проверяем на клиенте, что nsf каталог примонтировался
root@ubuntu-nfs-client:/home/nimda# ls -l /mnt/nfs/
total 4
drwxrwxrwx 2 nobody nogroup 4096 Nov 26 19:57 upload
Видим там папку upload
Создадим в ней файл
root@ubuntu-nfs-client:/home/nimda# touch /mnt/nfs/upload/clietn_file
проверим наличие файлы на сервере
root@ubuntu-nfs-server:/home/nimda# ls -l /srv/nfs_share/upload/
total 0
-rw-r--r-- 1 nobody nogroup 0 Nov 26 20:36 clietn_file
Скрипты автоматической настройки
Скрипт nfss_script.sh для автонастройки сервера
#!/bin/bash
echo "========================"
echo ""
echo "Установка NFS сервера"
echo ""
echo "========================"
apt install -y nfs-kernel-server
echo "========================"
echo ""
echo "Подготовка каталога Upload"
echo ""
echo "========================"
mkdir -p /srv/nfs_share/upload
chown nobody:nogroup /srv/nfs_share/upload
chmod 0777 /srv/nfs_share/upload
echo "========================"
echo ""
echo "Публикация каталога"
echo ""
echo "========================"
echo "/srv/nfs_share 192.168.50.41(rw,sync)" >> /etc/exports
exportfs -r
echo "========================"
echo ""
echo "Установка и настройка завершена"
echo ""
echo "========================"
Скрипт nfsc_script.sh для автонастройки клиента
#!/bin/bash
echo "========================"
echo ""
echo "Установка NFS клиента"
echo ""
echo "========================"
apt install nfs-common -y
echo "========================"
echo ""
echo "Подготовка каталога, куда будем монтировать"
echo ""
echo "========================"
mkdir /mnt/nfs
echo "========================"
echo ""
echo "Автомонтирование каталога"
echo ""
echo "========================"
echo "192.168.50.28:/srv/nfs_share/ /mnt/nfs nfs vers=3,noauto,x-systemd.automount 0 0" >> /etc/fstab
echo "========================"
echo ""
echo "Перезапуск служб"
echo ""
echo "========================"
systemctl daemon-reload
systemctl restart remote-fs.target
echo "========================"
echo ""
echo "Установка и настройка завершена"
echo ""
echo "========================"