Я пытаюсь установить Открытый edx devstack на моей человечности 16.04. Для этого nfsd клиент должен работать на моей человечности. Я установил его команда использования:
sudo apt-get update
sudo apt-get install nfs-common
но когда я использую ниже команд,
sudo nfsd status or sudo nfsd start
Это дает ошибку:
sudo: nfsd: command not found.
Скажите мне, как установить клиент nfs на моей человечности, так, чтобы открытый edx devstack был установлен?
Пожалуйста, проверьте ответ ниже, скопированный из SO ответа Винаяк Бхат :
nfsd status
работает в macOS.
В Ubuntu используйте /etc/init.d/nfs-kernel-server status
Этот шаг, упомянутый в установке open edx devstack, заключается в том, чтобы убедиться, что службы nfs работают, чтобы хранилище кода на локальном компьютере можно было использовать совместно с виртуальным машина через точку монтирования NFS.
Я думаю, что эта ссылка полезна для Вас.
Как настроить NFS, монтируются на Ubuntu 16.04
В этом руководстве мы покроем, как настроить NFS, монтируется.
Предпосылки
Мы будем использовать два сервера в этом учебном руководстве: каждый совместно использует часть его файловой системы с другим. Для следования вперед Вам будет нужно:
1. Два сервера Ubuntu 16.04, каждый с некорневым пользователем с sudo
полномочия и частные сети, если это доступно Вам.
Для помощи, настраивающей пользователя с этими полномочиями, следуйте за нашей Начальной Установкой Сервера с руководством Ubuntu 16.04.
Для справки, настраивающей частные сети, посмотрите, Как Настроить И Использовать DigitalOcean Частные Сети.
Всюду по учебному руководству мы обращаемся к серверу, который совместно использует его каталоги как хост и сервер, который монтирует эти каталоги как клиент. Для хранения их прямо, мы будем использовать следующие IP-адреса в качестве заместителей для клиентских значений и хоста:
Хост: 203.0.113.0 Клиент: 203.0.113.256
Необходимо заменить эти значения собственным хостом и клиентскими IP-адресами.
Шаг 1 — загрузка и установка компонентов
Мы начнем путем установки необходимых компонентов на каждом сервере.
На хосте
На хост-сервере мы установим пакет сервера ядра nfs, который позволит нам совместно использовать наши каталоги. Так как это - первая операция, которую мы выполняем с Кв. на этой сессии, мы обновим наш локальный индекс пакета перед установкой:
sudo apt-get update
sudo apt-get install nfs-kernel-server
После того как эти пакеты установлены, переключаются на клиент-сервер.
На клиенте
На клиент-сервере мы должны установить пакет, названный общим для nfs, который обеспечивает функциональность NFS без включения ненужных серверных компонентов. Снова, мы обновим локальный индекс пакета до установки, чтобы гарантировать, чтобы у нас была актуальная информация:
sudo apt-get update
sudo apt-get install nfs-common
Теперь, когда оба сервера имеют необходимые пакеты, мы можем начать настраивать их.
Шаг 2 — создание каталогов доли на хосте
Мы собираемся совместно использовать два отдельных каталога, с различными параметрами конфигурации, для иллюстрирования двух ключевых способов, которыми монтирование NFS может быть настроено относительно доступа суперпользователя.
Суперпользователи могут сделать что-либо где угодно в их системе. Однако смонтированные NFS каталоги не являются частью системы, в которой они смонтированы, так по умолчанию, сервер NFS отказывается выполнять операции, которые требуют полномочий суперпользователя. Это ограничение по умолчанию означает, что суперпользователи на клиенте не могут записать файлы как корень, повторно присвоить владение или выполнить, любые другие задачи суперпользователя на NFS монтируются.
Иногда, однако, существуют доверяемые пользователи в клиентской системе, которые должны смочь сделать эти вещи в смонтированной файловой системе, но у кого нет потребности в доступе суперпользователя на хосте. Сервер NFS может быть настроен для разрешения этого, хотя он представляет элемент риска, как такового, пользователь мог получить корневой доступ ко всей хост-системе.
Пример 1: экспорт монтирования общего назначения
В первом примере мы создадим NFS общего назначения, монтируют, что значение по умолчанию использования поведение NFS к мешает пользователю с полномочиями пользователя root на клиентской машине взаимодействовать с хостом с помощью тех клиентских полномочий суперпользователя. Вы могли бы использовать что-то вроде этого, чтобы хранить загруженное использование файлов системы управления контентом или создать пространство для пользователей, чтобы легко совместно использовать файлы проекта.
Во-первых, сделайте каталог доли названным nfs
:
host$ sudo mkdir /var/nfs/general -p
Так как мы создаем его с sudo, каталог принадлежит корню здесь на хосте.
host$ ls -la /var/nfs/general
Вывод
4 корня drwxr-xr-x 2 базируются 4096 25 июля 15:26
NFS переведет любые корневые операции на клиенте к nobody:nogroup учетным данным как меры безопасности. Поэтому мы должны изменить владение каталога для соответствия тем учетным данным.
host$ sudo chown nobody:nogroup /var/nfs/general
Этот каталог теперь готов к экспорту.
Пример 2: экспорт корневого каталога
В нашем втором примере цель состоит в том, чтобы сделать пользовательские корневые каталоги сохраненными на хосте доступный на клиент-серверах, в то время как разрешение доверяло администраторам тех клиент-серверов доступ, они должны удобно управлять пользователями.
Чтобы сделать это, мы экспортируем /home
каталог. Так как это уже существует, мы не должны создавать его. Мы не изменим полномочия, также. Если бы мы сделали, то это вызвало бы все виды проблем для любого с корневым каталогом на хост-машине.
Шаг 3 — конфигурирование экспорта NFS на хост-сервере
Затем, мы погрузимся в конфигурационный файл NFS для установки совместного использования этих ресурсов.
Откройтесь /etc/exports
файл в Вашем текстовом редакторе с полномочиями пользователя root:
host$ sudo nano /etc/exports
Файл имеет комментарии, показывающие общую структуру каждой строки конфигурации. Синтаксис в основном:
/etc/exports
directory_to_share client(share_option1,...,share_optionN)
Мы должны будем создать строку для каждого из каталогов, которые мы планируем совместно использовать. Так как у нашего клиента в качестве примера есть IP 203.0.113.256, наши строки будут похожи на следующее. Обязательно измените дюйм/с для соответствия клиенту:
/etc/exports
/var/nfs/general 203.0.113.256(rw,sync,no_subtree_check)
/home 203.0.113.256(rw,sync,no_root_squash,no_subtree_check)
Мы используем те же параметры конфигурации для обоих каталогов за исключением no_root_squash. Давайте смотреть на какой каждое средство.
rw: Эта опция дает клиентскому компьютеру и доступ для чтения и доступ для записи к объему.
синхронизация: Эта опция вынуждает NFS записать изменения в диске перед ответом. Это приводит к более стабильной и последовательной среде, так как ответ отражает реальное положение удаленного объема. Однако это также уменьшает скорость операций файла.
no_subtree_check: Эта опция предотвращает проверку поддерева, которая является процессом, где хост должен проверить, доступен ли файл на самом деле все еще в экспортируемом дереве для каждого запроса. Это может вызвать много проблем, когда файл переименован, в то время как клиенту открыли его. Почти во всех случаях лучше отключить проверку поддерева.
no_root_squash: По умолчанию NFS переводит запросы от пользователя root удаленно в непривилегированного пользователя на сервере. Это было предназначено как средство защиты для предотвращения корневой учетной записи на клиенте от использования файловой системы хоста как корень. no_root_squash отключает это поведение для определенных долей. Когда Вы закончены, внеся Ваши изменения, сохраняете и закрываете файл. Затем для предоставления доступа к долям доступными для клиентов, которые Вы настроили перезапустите сервер NFS со следующей командой:
host$ sudo systemctl restart nfs-kernel-server
Прежде чем можно будет на самом деле использовать новые доли, однако, необходимо будет быть уверены, что трафик к долям разрешен правилами брандмауэра
Шаг 4 — корректировка брандмауэра на хосте
Во-первых, давайте проверим состояние брандмауэра, чтобы видеть, включено ли оно и если так, для наблюдения то, что в настоящее время разрешается:
sudo ufw status
Вывод
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
В нашей системе только позволяется трафик SSH, таким образом, мы должны будем добавить правило для трафика NFS.
Со многими приложениями можно использовать sudo ufw список приложений и включить им по имени, но nfs не является одним из тех. Поскольку ufw также проверяет/etc/services на порт и протокол сервиса, мы можем все еще добавить NFS по имени. Лучшая практика рекомендует включить самое строгое правило, которое все еще позволит трафик, который Вы хотите разрешить, так вместо того, чтобы включить трафик из просто где угодно, мы будем конкретны.
Используйте следующую команду для открытого порта 2049 на хосте, будучи убеждающимися заменить IP-адресом Вашего клиента:
host$ sudo ufw allow from 203.0.113.256 to any port nfs
Можно проверить изменение путем ввода:
host$ sudo ufw status
Необходимо видеть трафик, позволенный от порта 2049 в выводе:
Вывод
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
2049 ALLOW 203.0.113.256
OpenSSH (v6) ALLOW Anywhere (v6)
Это подтверждает, что UFW только позволит трафик NFS на порте 2049 от нашей клиентской машины.
Шаг 5 — создание точек монтирования на клиенте
Теперь, когда хост-сервер настроен и обслуживание его долей, мы подготовим наш клиент.
Для предоставления доступа к удаленным долям доступными на клиенте, мы должны смонтировать каталог хоста на пустом клиентском каталоге.
Примечание: Если будут файлы и каталоги в Вашей точке монтирования, как только Вы монтируете долю NFS, они будут скрыты. Убедитесь, монтируетесь ли Вы в каталоге, который уже существует, что каталог пуст.
Мы создадим два каталога для нашего монтирования:
client$ sudo mkdir -p /nfs/general
client$ sudo mkdir -p /nfs/home
Шаг 6 — монтирование каталогов на клиенте
Теперь, когда у нас есть некоторое место для помещения удаленных долей, и мы открыли брандмауэр, мы можем смонтировать доли путем обращения к нашему хост-серверу, который в этом руководстве является 203.0.113.0, как это:
client$ sudo mount 203.0.113.0:/var/nfs/general /nfs/general
client$ sudo mount 203.0.113.0:/home /nfs/home
Эти команды должны смонтировать доли от главного компьютера на клиентскую машину. Можно перепроверить это, они смонтировались успешно несколькими способами. Можно проверить это с плоскостью mount
или findmnt
команда, но df -h
даст Вам, более человекочитаемый вывод иллюстрирует, как использование диска отображено по-другому для долей nfs:
client$ df -h
Вывод
Filesystem Size Used Avail Use% Mounted on
udev 238M 0 238M 0% /dev
tmpfs 49M 628K 49M 2% /run
/dev/vda1 20G 1.2G 18G 7% /
tmpfs 245M 0 245M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 245M 0 245M 0% /sys/fs/cgroup
tmpfs 49M 0 49M 0% /run/user/0
203.0.113.0:/home 20G 1.2G 18G 7% /nfs/home
203.0.113.0:/var/nfs/general 20G 1.2G 18G 7% /nfs/general
Обе из долей, которые мы смонтировали, появляются внизу. Поскольку они были смонтированы от той же файловой системы, они показывают то же использование диска. Для наблюдения, сколько пространства на самом деле используется под каждой точкой монтирования используйте команду использования диска du и путь монтирования. -s
флаг предоставит сводку использования вместо того, чтобы отобразить использование для каждого файла. -h
распечатает человекочитаемый вывод.
Например:
du -sh /nfs/home
Вывод
36K /nfs/home
Это показывает нам, что содержание всего корневого каталога использует только 20K свободного места.
Шаг 7 — тестирование доступа NFS
Затем, позвольте нам доступ для тестирования к долям путем записи чего-то каждому из них.
Пример 1: доля общего назначения
Во-первых, запишите тестовый файл в /var/nfs/general
поделиться.
client$ sudo touch /nfs/general/general.test
Затем проверьте его владение:
client$ ls -l /nfs/general/general.test
Вывод
-rw-r--r-- 1 nobody nogroup 0 Aug 1 13:31 /nfs/general/general.test
Поскольку мы смонтировали этот объем, не изменяя поведение NFS по умолчанию и создали файл как клиентский пользователь root машины через sudo
команда, владение значений по умолчанию файла к nobody:nogroup. Клиентские суперпользователи не смогут выполнить типичные административные действия, как изменение владельца файла или создания нового каталога для группы пользователей, на этой смонтированной NFS доле.
Пример 2: доля корневого каталога
Для сравнения полномочий доли Общего назначения с долей Корневого каталога создайте Корневой каталог файла тот же путь:
client$ sudo touch /nfs/home/home.test
Затем посмотрите на владение файла:
client$ ls -l /nfs/home/home.test
Вывод
-rw-r--r-- 1 root root 0 Aug 1 13:32 /nfs/home/home.test
Мы создали home.test
как базируются через sudo
команда, точно тот же путь мы создали general.test
файл. Однако в этом случае это принадлежит корню, потому что мы переопределили поведение по умолчанию, когда мы указали no_root_squash
опция на этом монтировании. Это позволяет нашим пользователям root на клиентской машине действовать как корень и делает администрирование учетных записей пользователей намного более удобным. В то же время это означает, что мы не должны предоставлять этот пользовательский корневой доступ на хосте.
Шаг 8 — монтирование удаленных каталогов NFS при начальной загрузке
Мы можем смонтировать удаленные доли NFS автоматически при начальной загрузке путем добавления их к /etc/fstab
файл на клиенте.
Откройте этот файл с полномочиями пользователя root в Вашем текстовом редакторе:
client$ sudo nano /etc/fstab
У основания файла мы собираемся добавить строку для каждой из наших долей. Они будут похожи на это:
/etc/fstab
. . .
203.0.113.0:/var/nfs/general /nfs/general nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
203.0.113.0:/home /nfs/home nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
Примечание: Больше информации об опциях, которые мы указываем здесь, может быть найдено в странице справочника, которая описывает NFS, монтирующийся в
fstab
с человекомnfs
команда.
Клиент-сервер автоматически смонтирует удаленные разделы при начальной загрузке, хотя это может занять некоторое время для соединения, которое будет сделано и доли, чтобы быть доступным.
Шаг 9 — размонтирование NFS удаленная доля
Если Вы больше не хотите, чтобы удаленный каталог был смонтирован в Вашей системе, можно размонтировать его путем перемещения из структуры каталогов и размонтирования доли, как это:
client$ cd ~
client$ sudo umount /nfs/home
client$ sudo umount /nfs/general
Это удалит удаленные доли, оставляя только Ваше локальное устройство хранения данных доступным:
client$ df -h
Вывод
Filesystem Size Used Avail Use% Mounted on
/dev/vda 59G 1.3G 55G 3% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 2.0G 12K 2.0G 1% /dev
tmpfs 396M 320K 396M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 0 2.0G 0% /run/shm
none 100M 0 100M 0% /run/user
Если Вы также хотите препятствовать тому, чтобы они были повторно смонтированы на следующей перезагрузке, редактировании /etc/fstab
и или удалите строку или прокомментируйте ее путем размещения # символа в начале строки. Можно также предотвратить автомонтирование путем удаления auto
опция, которая позволит Вам монтировать его вручную.