Lancement script DSM Synology par HA

Bonjour,

J’ai plusieurs scripts que je lance directement sur mon synology en DSM v7.1 par la planificateur de taches.

Les scripts sont de simple rsync sur du dd externe ou rsync en tunnel ssh pour du distant.

Bien que ça tourne depuis des années comme ça, j’aimerai centraliser le lancement des scripts sur le DSM directement sous HA.

Pour moi, première étape : trouver comment lancer les scripts dsm depuis HA, deuxième étape : planification avec calendar. Pour la deuxième, ça devrait aller. Mais pour la première, grand mystère !

Je n’ai pas trouvé de trace de quelqu’un qui a réalisé ça, et je ne vois pas vers quelle voie chercher. Quelqu’un a une idée ?

Salut,

Ca me parait pas forcément une bonne idée, pourquoi ne pas laisser le NAS gérer les tucs de NAS…

Si je devais le faire je regarderais en passant pas une commande shell qui ferait un ssh sur le syno pour appeler le script en question. Ca devrait être faisable.

Alors oui, et non.

En faite, j’ai des scripts que je laisserai gérer par le NAS (en gros backup et sauvegarde). Et d’autres que j’utilise ponctuellement et donc j’aimerai pouvoir les lancer à partir de HA.

Puisqu’en réalité, je suis arrivé à un point ou je n’utilise plus du tout l’interface DSM, sauf pour lancer ponctuellement des scripts et faire de la maintenance devenu rare…

Et ça me barbe de devoir aller sur dsm, me co, ouvrir le panneau de config, puis tache plannifié, puis choisir le script et enfin le lancer. Alors que un petit lancement par ha me parait moins chiant, j’ai toujours une instance ouverte.

Je vais regarder avec « commande line » en effet, c’est ce qui parait le mieux.

Bon j’ai regardé un peu.

J’en suis à :

  • Depuis le module complémentaire connexion ssh depuis ha vers Syno : OK
  • Connexion par clé RSA : OK
  • Lancement de la commande depuis le terminal : OK (type ssh plop@192.168.1.1 -p 2222 /volume1/homes/plop/script/script.sh)

ça c’est bon.

Ce que je n’arrive pas c’est le lancer par command line ou shell command.

Depuis shell command (que je connais mieux) ou command line :
Command failed (with return code 255): ssh blabla.

Une idée du problème ?

Sur le principe, je suis un peu comme AlexHass, ça rajoute une dépendance avec HA pour « rien ». Mais, bon, chacun fait comme il veut :slight_smile:
Je suppose que le SSH qui marche est effectué depuis la machine ou tourne HA. Et que celui qui ne marche pas est effectué depuis le container HA.
Si cette hypothèse est correcte, alors, ça doit être un problème de chemin d’accès aux clés SSH.
Dans le container HA, il faut indiquer dans la commande SSH un -i /home/moi/.ssh/id_rsa ou un truc comme ça. Ca va dire à SSH que la clé privée à utiliser est dans un répertoire différent de l’endroit par défaut.

1 « J'aime »

Rassurez vous, la partie DSM, sauvegarde et tout c’est pour dsm, avec le planificateur de taches.

Mais j’utilise certains scripts pour changer le mot de passe de quelques comptes à la volée. J’ai un compte pour la tv, un autre pour la tablette des enfants, c’est un moyen de faire du « filtrage » quand les devoir ne sont pas fait, puisque même si les appareils sont coupés d’internet, ils ont accès au réseau, donc smb…

Il n’y a pas de gestion fine des droits avec horaire sur dsm, donc je contourne avec des scripts.

Je regarde dès que j’ai le temps, il doit y avoir de ça, la clé est dans /root/.ssh/id_rsa (donc chemin par défaut à ma connaissance), l’utilisateur qui lance le script ne doit pas avoir les droits + bon emplacement.

Bon, toujours au même point …
toujours une erreur 255…

Par le module complémentaire, pas de problème. mais avec ça dans le config.yaml :

shell_command:
  test : 'ssh monuser@192.168.50.109 -p 1234 -i /data/.ssh/id_rsa -o StrictHostKeyChecking=no -q /volume1/homes/monuser/Script/test.sh'

le user sur le syno a les droits. ip, port, fichier d’identif ok, la commande passé en argument est ok.
De toute façons ça marche si je lance la commande dans le terminal (sans demande de log ou autre).

Le seul truc que je vois à mon niveau sachant que le paramètre -v ne donne pas plus d’info dans le log, c’est que il y a un autre « user » qui lance la commande…
Quelqu’un à des info la dessus ?

edit :
Trouvé, je mets pour ceux qui passerai par la avec le même problème.

Après avoir activé le debug dans les services :

service: logger.set_level
data:
  homeassistant.components.shell_command: debug

Et avoir épluché le truc… il y a quand même une bonne centaines de ligne…
je tombe sur ça :

Warning: Identity file /config/.ssh/id_rsa not accessible: No such file or directory.\n

J’ai du me merder dans la copie/création du répertoire, c’était un lien symbolique foireux …

donc un petit rm du lien, création du répertoire .ssh dans /config/
un petit : ssh-keygen puis ssh-copy-id -i /config/.ssh/id_rsa -p 1234 user@ipsyno

Et tout roule, la commande shell fonctionne.