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