263 lines
6.8 KiB
Markdown
263 lines
6.8 KiB
Markdown
# Домашнее задание 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 "========================"
|
||
|
||
``` |