La Fibre
Télécom => Logiciels et systèmes d'exploitation => Linux (usage serveur) => Discussion démarrée par: DamienC le 01 avril 2020 à 18:19:55
-
Hello à tous,
Voilà le contexte: J'ai un serveur SMB sous Debian chez un hébergeur X et un client SMB chez un hébergeur Y.
Afin de faire le partage SMB, je monte un VPN entre les deux.
La connexion des VPN se fait de manière automatique après le démarrage du système, donc après /etc/fstab...
De ce fait, lorsque je reboot le client, celui-ci n'arrive pas à monter le partage CIFS que j'ai défini dans mon /etc/fstab:
//192.168.30.1/partage /srv/smb/partage/ cifs credentials=/srv/smb/creds 0 0
En soit c'est logique.
J'aimerai soit trouver une solution pour faire délayer le mount de ce partage dans le fstab après le boot (j'ai trouvé l'option _netdev, mais ne semble pas passé sous Debian 10)
ou alors faire un script qui ferai par exemple un "sudo mount -a" après genre 15 secondes du boot.
Vous pourriez m'aider?
Cordialement,
DamienC
-
@reboot dans crontab ferait l'affaire ?
@reboot monscript.sh
-
Est-ce qu'un service systemd avec un timer est une solution envisageable ?
-
@reboot dans crontab ferait l'affaire ?
@reboot monscript.sh
Je ne connais pas cette solution de @reboot dans le crontab, je vais creuser, merci ;)
En gros il effectue l'action "monscript.sh" une fois le système boot?
Est-ce qu'un service systemd avec un timer est une solution envisageable ?
Oui tout à fait mais je n'ai pas trouvé comment faire ce fameux timer?
-
Je ne connais pas cette solution de @reboot dans le crontab, je vais creuser, merci ;)
En gros il effectue l'action "monscript.sh" une fois le système boot?
Il le fait après chaque reboot. Je ne suis pas sûr qu'il le fasse après un démarrage à froid (mais à tester). Je ne sais pas non plus après combien de temps (peut-être rajouter 'sleep 200 &&' avant la commande à exécuter)
Oui, ça fonctionne comme crontab normal, où on remplace juste le choix de la récurrence par @reboot. Et c'est plutôt "sh /path/to/script/script.sh" et non "monscript .sh" :)
-
Par exemple: https://www.linux.com/topic/desktop/setting-timer-systemd-linux/
-
Question bête, pourquoi CIFS over VPN et pas sshfs ?
-
Question bête, pourquoi CIFS over VPN et pas sshfs ?
sshfs c'est quand même bien goret : mapper des accès Posix en commandes SFTP quelle horreur.
Sans compter l'implémentation plus que douteuse des erreurs systèmes entre le serveur et le client Fuse avec un souvent un mapping générique empêchant tout diagnostic sérieux (exemple : EMFILE côté serveur mappée en EPERM côté client).
-
Question bête, pourquoi CIFS over VPN et pas sshfs ?
Car super simple à config et à maintenir!
Et surtout pour l'usage que j'en ai... Un serveur avec bcp de stockage et des gros fichiers, et un autre chez un autre provider avec plein de puissance de calcul; juste un besoin de lecture en direct via le VPN, en RO...
-
Est-ce qu'un service systemd avec un timer est une solution envisageable ?
pas besoin de timer. on peut établir une dépendance dans systemd pour faire le mount apres l'établissement du vpn.
on peut meme mettre la dépendance directement dans fstab avec x-systemd.requires:
//192.168.30.1/partage /srv/smb/partage/ x-systemd.requires=network-online.target,cifs credentials=/srv/smb/creds 0 0
ainsi ce montage ne se fera qu'apres que "network-online.target" soit terminé.
alternativement on peut se passer de fstab et creer un mount systemd avec le dépendance dedans. voir: https://www.freedesktop.org/software/systemd/man/systemd.mount.html
-
pour coller a la question la réponse complete serait d'ajouter:
x-systemd.requires=sys-devices-virtual-net-tun0.device,x-systemd.after=sys-devices-virtual-net-tun0.device
dans la ligne fstab du mount.
donc un truc du genre:
//192.168.30.1/partage /srv/smb/partage/ x-systemd.requires=sys-devices-virtual-net-tun0.device,x-systemd.after=sys-devices-virtual-net-tun0.device,,cifs credentials=/srv/smb/creds 0 0
adapter la valeur "tun0" au nom de l'interface du VPN ( ca peut varier suivant les config).
pour la trouver:
sudo systemctl status sys-devices-virtual-net*
-
Hello,
Merci pour votre aide, j'ai appliqué le fstab proposé par kgersen, mon instance ne démarre plus du tout, et j'ai pas de console rescue... lol
Je pense qu'il wait à l'infini quelque chose qui n'arrivera pas...
-
J'ai réussi à choper des logs par le serial virtuel:
[ 3.768489] CIFS VFS: Error connecting to socket. Aborting operation.
[ 3.771362] CIFS VFS: cifs_mount failed w/return code = -101
[[0;1;31mFAILED[0m] Failed to mount [0;1;39m/srv/smb/partage[0m.
See 'systemctl status srv-smb-partage.mount' for details.
[[0;1;33mDEPEND[0m] Dependency failed for [0;1;39mLocal File Systems[0m.
Puis il passe en rescue mode
-
C'est normal ce mount fait partit des 'local file system' donc tout ce qui en dépend ne continue pas s'il monte pas.
ajoute "nofail" dans la ligne fstab de ce mount.
nofail
With nofail, this mount will be only wanted, not required, by local-fs.target or remote-fs.target. This means that the boot will continue even if this mount point is not mounted successfully.
(source: https://manpages.debian.org/stretch/systemd/systemd.mount.5.en.html )
un truc du genre donc:
//192.168.30.1/partage /srv/smb/partage/ x-systemd.requires=sys-devices-virtual-net-tun0.device,x-systemd.after=sys-devices-virtual-net-tun0.device,nofail,cifs credentials=/srv/smb/creds 0 0
apres si ca ne monte pas y'a un souci avec le nom de l'interface vpn peut-etre ? c'est bien 'tun0' ?
-
Hello Kgersen,
J'ai bien vérifié le nom de l'interface virtuelle propre au tunnel;
● sys-devices-virtual-net-vpncloud0.device - /sys/devices/virtual/net/vpncloud0
Loaded: loaded
Active: active (plugged) since Fri 2020-04-03 13:16:10 EEST; 1h 22min ago
Device: /sys/devices/virtual/net/vpncloud0
Je vais retester tout à l'heure ;) merci
-
un truc du genre donc:
//192.168.30.1/partage /srv/smb/partage/ x-systemd.requires=sys-devices-virtual-net-tun0.device,x-systemd.after=sys-devices-virtual-net-tun0.device,nofail,cifs credentials=/srv/smb/creds 0 0
j'ai l'impression que les arguments (cifs notamment) ne sont pas dans le bon ordre, ne serait-ce pas plutôt :
//192.168.30.1/partage /srv/smb/partage cifs x-systemd.requires=sys-devices-virtual-net-tun0.device,x-systemd.after=sys-devices-virtual-net-tun0.device,nofail,credentials=/srv/smb/creds 0 0
Un conseil DamienC : quand tu ajoutes une entrée fstab, teste immédiatement un montage manuel avec juste le point de montage en argument (mount /srv/smb/partage) pour valider, ça permet d'éviter les mauvaises surprises au reboot.
-
j'ai l'impression que les arguments (cifs notamment) ne sont pas dans le bon ordre, ne serait-ce pas plutôt :
ah oui bien vu, j'ai fait un *trop* rapide copier/coller ;)