Files
homework06/README.md
2025-11-27 08:55:52 +03:00

263 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Домашнее задание 6
## Работа с NFS
Для выполнение задания используется 2 vm Ubuntu Server 24.04
Для дальнейших действий перейдем сразу в суперпользователя
```bash
nimda@ubuntu-nfs-server:~$ sudo su
[sudo] password for nimda:
root@ubuntu-nfs-server:/home/nimda#
```
```bash
nimda@ubuntu-nfs-client:~$ sudo su
[sudo] password for nimda:
root@ubuntu-nfs-server:/home/nimda#
```
### Устанавливаем NFS сервер
С помощью apt устанавливаем сервер nfs
```bash
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
```bash
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))
```
### Создаем и опубликовываем каталог
Создаем каталог
```bash
root@ubuntu-nfs-server:/home/nimda# mkdir -p /srv/nfs_share/upload
```
Меняем владельца
```bash
root@ubuntu-nfs-server:/home/nimda# chown -R nobody:nogroup /srv/nfs_share/
```
Меняем разрешение на папку upload. Разрешаем чтение и запись для всех
```bash
root@ubuntu-nfs-server:/home/nimda# chmod 0777 /srv/nfs_share/upload/
```
С помощью vi редактируем файл /etc/exports, и добавляем следующую строку
```bash
/srv/nfs_share 192.168.50.41(rw,sync)
```
Перечитываем файл конфигурации NFS
```bash
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
```
Проверим, что каталог опубликован
```bash
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 клиент
```bash
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 сервера
```bash
root@ubuntu-nfs-client:/home/nimda# mkdir /mnt/nfs
```
Редактируем /etc/fstab и добавляем туда автомонтирование калога по nfs для версии 3
```bash
192.168.50.28:/srv/nfs_share/ /mnt/nfs nfs vers=3,noauto,x-systemd.automount 0 0
```
Перечитываем конфигурацию служб, и перезапускаем службы монтирования по сети
```bash
root@ubuntu-nfs-client:/home/nimda# systemctl daemon-reload
root@ubuntu-nfs-client:/home/nimda# systemctl restart remote-fs.target
```
### Проверка
Проверяем на клиенте, что nsf каталог примонтировался
```bash
root@ubuntu-nfs-client:/home/nimda# ls -l /mnt/nfs/
total 4
drwxrwxrwx 2 nobody nogroup 4096 Nov 26 19:57 upload
```
Видим там папку upload
Создадим в ней файл
```bash
root@ubuntu-nfs-client:/home/nimda# touch /mnt/nfs/upload/clietn_file
```
проверим наличие файлы на сервере
```bash
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 для автонастройки сервера
```bash
#!/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 для автонастройки клиента
```bash
#!/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 "========================"
```