Comment mettre à jour debian depuis Jeedom?

Bonjour je souhaiterais savoir comment faire pour mettre à jour debian depuis Jeedom, j’ai essayer depuis l’onglet OS/BD dans la conf mais je comprend pas comment on valide ( au moment de mettre le Y pour yes ) et du coup je suis un peu bloqué, c’est une installation en dehors de mon réseau sur la quelle je ne veux pas activé le port ssh.

Merci d’avance pour vos réponses bonne fin de journée !

Bonjour,

Voici un script

Tu renseignes les 4 variables avec tes commandes
ssh_host_ip
ssh_user
ssh_pwd
ssh_cmd


//log::add('scenario_execution','Info',"Lancement de la commande SSH");
$scenario->setLog("Lancement de la commande SSH");

$tags = $scenario->getTags(); 
$ip = $tags['#ssh_host_ip#'];
$user = $tags['#ssh_user#'];
$pass = $tags['#ssh_pwd#'];
$cmd = $tags['#ssh_cmd#'];

log::add('scenario_execution','Info',"Hostname :".$ip);
log::add('scenario_execution','Info',"User :".$user);
log::add('scenario_execution','Info',"Password :".$pass);
log::add('scenario_execution','Info',"SSH :".$cmd);

$ssh = ssh2_connect($ip, 22);
ssh2_auth_password($ssh, $user, $pass);
$stream = ssh2_exec($ssh, $cmd);
stream_set_blocking($stream, true);

//renvoi la sortie de la commande si besoin
$response = '';
while($buffer = fread($stream, 4096)) {
$response .= $buffer;
}

fclose($stream);
echo $response;

ssh2_disconnect($ssh);

//log::add('scenario_execution','Info',"Fin de la commande SSH");
$scenario->setLog('Fin de la commande SSH');

Bonjour

Je vous déconseil de faire cela, surtout sans maitrise !

Car plusieurs autres composants ne seront pas mis à jour (comme PHP entre autre).

Il est LARGEMENT préférable de mettre de coter votre sauvegarde de Jeedom.
Puis de procéder à une installation directement en Debian 10
Et d’installer Jeedom et d’y restaurer votre sauvegarde.

3 « J'aime »

Il n’est pas précisé si c’est une mise à jour ou un passage de debian 9 a 10.

Le mieux est de passer via une connexion ssh

1 « J'aime »

Bonjour,

Il faut ajouter l’option -y

merci , pour les mise a jour c’est juste les maj de sécurité etc c’est pas pour changer d’OS

sudo apt update && sudo apt full-upgrade -y

J’ai supposé que vous parliez de version d’os car votre profil indique Debian 9.

1 « J'aime »

Salut
pour les codes utilise la balise </> la prochainne fois stp

pour le code voici une petite amélioration :


bloc code :

$tags = $scenario->getTags(); 
$ip = $tags['#ssh_host_ip#'];
$user = $tags['#ssh_user#'];
$pass = $tags['#ssh_pwd#'];
$cmd = $tags['#ssh_cmd#'];

$ssh = ssh2_connect($ip, 22);
    if (!$ssh) {
        throw new Exception("erreur: verifiez IP ou serveur pas actif");
    }

$pass_success = ssh2_auth_password($ssh, $user, $pass);
    if (!$pass_success) {
        throw new Exception("erreur: verifiez login / mot de passe");
    }

$stream = ssh2_exec($ssh, $cmd);

stream_set_blocking($stream, true);

//recuperation de la sortie
$response = '';
while($buffer = fread($stream, 4096)) {
$response .= $buffer;
}
fclose($stream);

$scenario->setLog($response);

ssh2_disconnect($ssh);

J’ai bien aimé ce bloc, il faudrait vérifier que si l’exécution de la commande est un peut longue
que le scenario ne tombe pas en timeout …

@freeman32 pas de port ssh ouvert … pas de commandes possible.

Et oui @Fabrice encore du code :wink:

Salut,
Je pense qu’il parlait seulement de la machine sur laquelle se trouve jeedom donc pas besoin de se connecter en ssh

1 « J'aime »

Bonjour,

Je suis très intéressé par la mise en place d’un scénario qui se lancerai toutes les semaines pour faire cette mise à jour de Debian.
Après avoir copié le code et je l’ai collé dans un scénario, je fais exécuté, dans les logs je vois que que tout s’est bien passé. Le scénario s’est exécuté en 2s. Comment savoir si tout s’est réellement bien passé niveau MAJ ?

Bonjour,

Avez vous regardé le journal de log du scénario qui exécute ce script ?

Pour cela, faites cette commande en SSH, si vous avez des mises à jour de proposées, c’est que votre scénario n’a rien fait :
sudo apt update
- Cette commande ne mets rien à jour, elle réaliser la mise à jour de la liste des mises à jours

Toutes les semaines, c’est inutile, surtout que sur Buster, il n’y a plus beaucoup de mise à jour (dans quelques jours Buster est déprécié).
Et certaine mise à jour nécessite un redémarrage.

De plus, si une mise à jour bloque le redémarrage, vous faites comment à distance ?

1 « J'aime »

Merci de votre réponse.

Ce n’est pas forcément pour mettre à jour à distance c’est juste que je ne pense pas forcément à le faire. Si ça bloque je le serai très vite.

A priori en vérifiant en ssh, j’avais pas mal de paquets à mettre à jour donc mon scénario ne fonctionne pas.

Vous aviez mis quoi dans le bloc code.

1 « J'aime »

J’ai fait exactement la même chose que @olive

Il ne fonctionne pas alors.

En plus du bloc code, il faut faire le scénario adapté et ensuite, regardez dans le log de ce scénario là.

en plus du bloc code je n’ai mis que les tags pour l’identification

Et les autres ?

Et le log du scénario ?

le scénario :


les logs :

Bonjour,

Je suis retombé sur ce post je relance ma question :
je voudrais créer un scénario (voir message précédent) qui lancera automatiquement les mises à jour Debian.

D’avance merci.

Tout a déjà dit plus haut
On ne relance pas une question 1 an après d’autant moins lorsque la réponse a déjà été donnée.