Skip to content

Latest commit

 

History

History
290 lines (194 loc) · 13.8 KB

File metadata and controls

290 lines (194 loc) · 13.8 KB

English | French

Utiliser un onduleur connecté à un NAS Synology (maître) avec un NAS Asustor (esclave)

Objectif
Utiliser, depuis un NAS Asustor, un onduleur en "slave" (UPS) qui est connecté en USB (donc en maître) sur un NAS Synology avec DSM 7.1.x, donc en maître sur le Synology.


Note
Les commandes suivantes sont pour la plupart à lancer en root dans un terminal, pensez à faire un : sudo -i


Warning
Attention, pour que l'Asustor reçoive bien les instructions du serveur UPS, il est évident que toute chaine de transmission soit placée sur l'onduleur : le NAS Synology qui fait office de serveur UPS, l'éventuel switch auquel est connecté le(s) NAS, et le NAS Asustor.


Sujet sur forum-nas.fr :


Note
Ce qui suit a été utilisé avec succès avec les NAS suivants :

  • Asustor AS6704T sous ADM 4.2.0.RE71
  • Synology DS920+ sous DSM 7.1.1-42962 Update 4

Table des matières


I. Configuration de l'UPS en esclave dans ADM

I.1. Ajout d'un UPS réseau

Il faut commencer par ajouter une connexion à un serveur UPS dans ADM. Pour cela, il faut aller dans "External Devices", et configurer comme suit :

  • Cocher la case "Enable network UPS Support" ;
  • Choisir "Network UPS Slave" ;
  • Entrer l'adresse IP du NAS Synology sur lequel est connecté en USB l'onduleur (UPS) ;

Il est possible de choisir une de ces deux options :

J'ai choisi d'utiliser le "Safe-Mode" ("Mode sûr" en français) 5 minutes car ça laisse 5 minutes avant que le NAS ne s'éteigne, car si c'est sur "Shutdown", le NAS lancera la procédure d’extinction dès qu'il recevra l’information de la coupure de courant.

Voilà ce que dit l'aide en ligne de Asustor :

Une fois les réglages faits/choisis, vous devriez obtenir quelque chose de ce style :

Il faut noter qu'on n'obtient pas d'informations ni sur le % de batterie de l'onduleur, ni sur la durée restante. Et même après avoir fini de suivre le tuto ce sera encore ainsi. Je n'ai pas réussi à faire en sorte d'avoir ces informations dans ADM... Elles restent quand même visible dans DSM sur le Synology.

I.2. Configuration de la gestion d'alimentation dans ADM

Il est recommandé de ne pas activer le "EuP Mode" :

Je préfère laisser le NAS reprendre son état d'avant la coupure de courant dès que ce dernier est restauré. Ainsi, si le NAS était allumé, quand le courant sera revenu, il redémarrera.


II. Configuration de l'UPS en maître dans DSM

Dans DSM, il faut paramétrer le serveur UPS en maître pour l'onduleur connecté en USB. Suivre les instructions de la capture suivante :

L'Asustor pourra maintenant accéder à l'UPS connecté sur le Synology.

Note
Il faudra aussi que le pare-feu du NAS autorise la connexion depuis l'IP de l'asustor sur le service de l'UPS. Au besoin, créer une règle dédiée.


III. Configuration en SSH de l'UPS en escalve dans les fichiers de configuration sur l'Asustor

On attaque ici la partie un peu pénible, car il faut se connecter en SSH au NAS Asustor.

J'utilise ici mon compte administrateur User-Admin pour me connecter à l'asustor dont l'IP est 192.168.2.203 sur le port personnalisé 1234 (ces valeurs sont à changer par les vôtres !) :

ssh User-Admin@192.168.2.203 -p 1234

Le fichier à modifier est /etc/ups/upsmon.conf. Et ce fichier est réinitialisé à chaque reboot du NAS !

Il va donc falloir utiliser un script qu'on va faire lancer après chaque démarrage du NAS pour modifier ce fichier, et lancer les quelques commandes pour que ces modifications soient prises en compte.

III.1. Création du script qui va s'occuper des modifications à faire et aussi de sauvegarder les fichiers de /etc/ups/

Il faut donc créer un script dans un dossier partagé. Moi j'ai choisi de placer mes différents scripts dans le dossier /share/docker/_scripts/. Si vous utiliser un autre emplacement, il faudra modifier en conséquence ce chemin d'accès.

Le script s'appelle partage-UPS-Synology-avec-NAS-Asustor.sh, il faudra le placer dans le dossier choisi, via ADM par exemple. (Il est possible d'utiliser un éditeur en ligne de commande comme vi, ou nano (à installer avec opkg, après avoir installé le paquet Entware)).

Le script : partage-UPS-Synology-avec-NAS-Asustor.sh

Clique ici pour afficher le script
#!/bin/sh
# Script de modification du fichier /etc/ups/upsmon.conf avec backup des fichiers contenus dans /etc/ups
# Faire un :
# chmod +x partage-UPS-Synology-avec-NAS-Asustor.sh

# Pour que les modifications soient effectuées à chaque redémarrage, il faut faire un lien dans /usr/local/etc/init.d/
#
# ln -s /share/docker/_scripts/partage-UPS-Synology-avec-NAS-Asustor.sh /usr/local/etc/init.d/S84UPSpartageAvecSYNOLOGY
#
# init.d colle l'option 'start' à tout ce qui se nomme Sxxxx et 'stop' à tout ce qui se nomme 'Kxxx'

#####################################################
## Variables à modifier
    NOM_UPS_Syno="ups"
    IP_Syno_UPS="192.168.2.200"
    USER_UPS="monuser"
    USER_MDP_UPS="secret"

    DEST_BACKUP=/home/User-Admin/UPS-CONF-Backup
##
#####################################################

UPS_CONF_PATH=/etc/ups

CHAINE_FINALE="MONITOR $NOM_UPS_Syno@$IP_Syno_UPS 1 $USER_UPS $USER_MDP_UPS slave"

# # DEBUT DEBUG :
# UPS_CONF_PATH=/home/User-Admin
# printf "\nChaine finale = "
# echo $CHAINE_FINALE
printf "\n--- Début du fichier upsmon.conf non modifié ---\n"
cat $UPS_CONF_PATH/upsmon.conf
printf "\n--- Fin du fichier upsmon.conf non modifié ---\n"
# # FIN DEBUG

# Copie backup des fichiers du dossier UPS_CONF_PATH
mkdir -p $DEST_BACKUP
sudo cp "$UPS_CONF_PATH"/* "$DEST_BACKUP"

# Modification du fichier upsmon.conf pour utiliser en slave l'UPS branché en USB sur le Synology
sudo sed -i "2s/.*/${CHAINE_FINALE}/" $UPS_CONF_PATH/upsmon.conf

# DEBUT DEBUG :
printf "\n--- Début du fichier upsmon.conf MODIFIÉ ---\n"
cat $UPS_CONF_PATH/upsmon.conf
printf "\n--- Fin du fichier upsmon.conf MODIFIÉ ---\n"
# FIN DEBUG

# Commandes pour redémarrer le démon upsmon :
upsmon -c stop
upsmon

Il faudra modifier les variables suivantes pour les accorder avec votre configuration. Normalement pour un NAS Synology, seules les variables IP_Syno_UPS et DEST_BACKUP seront à modifier.

#####################################################
## Variables à modifier
    NOM_UPS_Syno="ups"
    IP_Syno_UPS="192.168.2.200"
    USER_UPS="monuser"
    USER_MDP_UPS="secret"

    DEST_BACKUP=/home/User-Admin/UPS-CONF-Backup
##
#####################################################

III.2. Explications du script et mise en route

III.2.1. Quelques explications

  1. Le script va construire, grâce aux variables paramétrées précédemment, la ligne correcte qui va permettre au NAS Asustor de communiquer avec le serveur UPS sur le NAS Synology.

  2. Le script va afficher le contenu du fichier qui sera modifié /etc/ups/upsmon.conf.

  3. Ensuite, il va créer si besoin le dossier de destination de la sauvegarde DEST_BACKUP, puis copier le contenu du dossier /etc/ups/ dans ce dossier DEST_BACKUP.

  4. Ensuite, avec la commande sed, il va modifier uniquement la deuxième ligne du fichier /etc/ups/upsmon.conf pour passer de :

    MONITOR asustor@192.168.2.200 1 admin 1111 slave

    à :

    MONITOR ups@192.168.2.200 1 monuser secret slave

    Les adresses IP seront certainement différentes.

  5. Puis, il affiche à nouveau le fichier upsmon.conf qui vient d'être modifié.

  6. Et enfin, avec les commandes upsmon -c stop et upsmon, il va arrêter puis relancer le démon upsmon afin de prendre en compte les modifications faites dans le fichier upsmon.conf.

III.2.2. Lancement manuel du script pour vérifier que tout se passe bien

On va lancer manuellement le script pour être sûr que ce dernier modifie correctement le fichier de configuration.

On se place donc dans le dossier le contenant, et on fait en sorte qu'il puisse être exécuté :

chmod +x partage-UPS-Synology-avec-NAS-Asustor.sh

Puis on le lance :

./partage-UPS-Synology-avec-NAS-Asustor.sh

On devrait voir s'afficher le contenu du fichier avant la modification, puis après la modification, puis ceci :

Network UPS Tools upsmon 2.7.2
kill: No such process
UPS: ups@192.168.2.200 (slave) (power value 1)
Using power down flag file /etc/killpower

Cela indique que upsmon a bien été connecté au serveur UPS du synology en mode slave.

Vous pouvez dès lors faire un crash test : couper l'alimentation électrique de l'onduleur branché au Synology.

Warning
Attention, pour que l'Asustor reçoive bien les instructions du serveur UPS, il est évident que toute chaine de transmission soit placée sur l'onduleur : le NAS Synology qui fait office de serveur UPS, l'éventuel switch auquel est connecté le(s) NAS, et le NAS Asustor.

Si tout s'est bien passé, vous devriez pouvoir observer ce genre d'évènement dans les logs visibles dans "System Information" :

III.2.3. Création d'un lien symbolique du script vers /usr/local/etc/init.d/

Rappel : le script est placé dans le dossier choisi au §-III.1., pour ce qui me concerne c'est : /share/docker/_scripts/.

Il faut faire un lien symbolique vers /usr/local/etc/init.d/ afin que le script soit lancé à chaque démarrage du NAS.

Important
Le nom du lien a une grande importance, puisque s'il commence par Sxxx il sera lancé au démarrage, avec l'option start en paramètre (option dont on ne se servira pas, et donc pas testée dans le script). Si le lien commence par Kxxx il sera lancé à l'extinction du NAS, avec l'option stop, et nous n'avons pas besoin de script qui se lance à l'extinction pour l'onduleur.

Il faut donc lancer la commande suivante (pensez à adapter le chemin d'accès du script /share/docker/_scripts/partage-UPS-Synology-avec-NAS-Asustor.sh :

ln -s /share/docker/_scripts/partage-UPS-Synology-avec-NAS-Asustor.sh /usr/local/etc/init.d/S84UPSpartageAvecSYNOLOGY

Voilà, le lien est fait, il ne reste plus qu'à rebooter le NAS pour voir si le fichier est bien modifié après le reboot.

Utiliser la commande suivante pour vérifier si le fichier est bien modifié :

cat /etc/ups/upsmon.conf


IV. Inspirations pour réaliser ce tuto