Systemd — Монтирование NFS директории через OpenVPN

Thank you for reading this post, don't forget to subscribe!

Так как все что пере­чис­ле­но в "fstab" мон­ти­ру­ет­ся при запус­ке систе­мы, еще до запус­ка сети, то при­мон­ти­ро­вать дирек­то­рию полу­чит­ся если доба­вить опцию "_netdev". Но если NFS дирек­то­рия доступ­на толь­ко через VPN, кото­рый уже стар­ту­ет после запус­ка сети то оста­ет­ся вари­ант "rc.local" или смон­ти­ро­вать диск исполь­зуя Systemd.

В дан­ном при­ме­ре дано следующее:

  • openvpn@vpn.service - имя OpenVPN сервиса
  • 192.168.1.1 - адрес уда­лен­но­го NFS сервера
  • /var/www/html - путь на уда­лен­ном сервере
  • /home/user/web - локаль­ный путь для монтирования

Загру­жа­ем модуль NFS:

modprobe nfs

Созда­ем Systemd mount service с име­нем "home-user-web.mount"

vim /usr/lib/systemd/system/home-user-web.mount

 

Важ­но, что­бы имя было осно­ва­но на пути, куда мон­ти­ру­ет­ся NFS дирек­то­рия, ина­че сер­вис не запу­стит­ся. Сле­ши заме­ня­ют­ся тире.

 

Со сле­ду­ю­щим содержимым:

[Unit]
Description=Mount NFS Share
After=network.target openvpn@vpn.service
[Mount]
What=192.168.1.1:/var/www/html
Where=/home/user/web
Type=nfs
Options=_netdev,auto
[Install]
WantedBy=multi-user.target

Пере­чи­ты­ва­ем спи­сок демонов:

systemctl daemon-reload

Запус­ка­ем и ста­вим в автозагрузку:

systemctl start home-user-web.mount
systemctl enable home-user-web.mount