Basic configuration is done in file /etc/exports, where you can specify shared folders:
#Arch-KrisKo exports /mnt/transmission 172.16.0.2(rw,sync,no_subtree_check) /mnt/owncloud 172.16.0.2(rw,sync,no_subtree_check) /usr/share/webapps/owncloud 172.16.0.2(rw,sync,no_subtree_check)
In my exports file I have 3 mountpoints for host 172.16.0.2 (which is my PC).
Next step is to start/enable nfsd service:
systemctl start/enable nfsd systemctl start/enable rpc-mountd
NOTE: on current archlinux run: systemctl start/enable nfs-server
NOTE: if you are using iptables you need to enable few ports for nfs to work:
## Allow NFS -A TCP -p tcp --dport 111 -j ACCEPT -A UDP -p udp --dport 111 -j ACCEPT -A TCP -p tcp --dport 829 -j ACCEPT -A UDP -p udp --dport 829 -j ACCEPT -A TCP -p tcp --dport 20048 -j ACCEPT -A UDP -p udp --dport 20048 -j ACCEPT -A TCP -p tcp --dport 2049 -j ACCEPT -A UDP -p udp --dport 2049 -j ACCEPT
Now all you need to do is start rpcbind service on your computer:
systemctl start/enable rpcbindAfter this you should be able to mount given mountpoints:
mount 172.16.0.1:/mnt/transmission /your/mountpoint
Few useful commands:
exportfs -view active exports
exportfs -r -reexport all directories (use this if you've made changes to /etc/exports)
To mount NFS shared folders, I use following script:
#!/bin/bash usage(){ echo "USAGE: $0 (option)" echo -e "OPTIONS:" echo -e " t\ttransmission" echo -e " o\towncloud" echo -e " " exit 0 } if [ "x$1" == "x" ]; then usage fi #we need to have privileges if [ "$UID" != 0 ]; then exec sudo $0 $1 fi #if rpcbind is not running, start it if [ $(pgrep rpcbind)x == "x" ]; then echo Starting rpcbind service... systemctl start rpcbind fi echo Mounting remote NFS share... case "$1" in "t" ) mount -o soft 172.16.0.1:/mnt/transmission /mnt/transmission; echo DONE;; "o" ) if [ $(\mount | grep -cs /usr/share/webapps/owncloud) == 1 ]; then echo INFO: /usr/share/webapps/owncloud is already mounted else echo INFO: mounting 172.16.0.1:/usr/share/webapps/owncloud mount -o soft 172.16.0.1:/usr/share/webapps/owncloud /usr/share/webapps/owncloud || read -p "FAILED, press CTRL-C to exit" fi if [ $(\mount | grep -cs /mnt/owncloud) == 1 ]; then echo INFO: /mnt/owncloud is already mounted else echo INFO: mounting 172.16.0.1:/mnt/owncloud mount -o soft 172.16.0.1:/mnt/owncloud /mnt/owncloud || read -p "FAILED, press CTRL-C to exit" fi echo Starting php-fpm service... && systemctl start php-fpm && echo DONE || echo FAILED;; * ) echo Unknown option.; usage;; esac exit 0NOTE: for owncloud mount a php-fpm instance is started, this serves for php-fpm cluster and it will be desribed in later post.
No comments:
Post a Comment