Aller au contenu principal

Kylin OS

Dans ce guide, vous déployerez MyEMS sur un serveur Kylin V11.

Prérequis

Ce guide décrit comment installer MyEMS sur Kylin V11. Les exigences matérielles dépendent de la base de données choisie et du nombre d'appareils connectés au système. Pour exécuter MyEMS et MySQL sur une seule machine, vous avez besoin d'au moins 8 Go de RAM.

Mettez à jour le système et installez les outils :

sudo yum update
sudo yum install git
systemctl stop firewalld

Cloner le code source :

cd ~
git clone https://gitee.com/myems/myems

Étape 1 Base de données

Voir Base de données

Étape 2 myems-api

  • Installer le service myems-api :
sudo cp -r ~/myems/myems-api /myems-api
cd /myems-api
sudo pip install -r requirements.txt

Créez le fichier .env à partir de example.env et modifiez-le si nécessaire :

sudo cp /myems-api/example.env /myems-api/.env
sudo nano /myems-api/.env

Ajouter le port au pare-feu :

sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
sudo firewall-cmd --reload

Installer les fichiers de configuration systemd :

sudo cp /myems-api/myems-api.service /lib/systemd/system/
sudo cp /myems-api/myems-api.socket /lib/systemd/system/
sudo cp /myems-api/myems-api.conf /usr/lib/tmpfiles.d/

Ensuite, activez les services pour qu'ils démarrent automatiquement au démarrage :

sudo systemctl enable myems-api.socket
sudo systemctl enable myems-api.service

Démarrer les services :

sudo systemctl start myems-api.socket
sudo systemctl start myems-api.service

Étape 3 myems-admin

  • Installer le serveur NGINX

Voir http://nginx.org/en/linux_packages.html#RHEL

Activer le service nginx :

yum install -y nginx
sudo systemctl start nginx.service
  • Configurer NGINX
sudo vi /etc/nginx/nginx.conf

Dans la section 'http', ajoutez ces directives :

http {
client_header_timeout 600;
client_max_body_size 512M;
gzip on;
gzip_min_length 512;
gzip_proxied any;
gzip_types *;
gzip_vary on;
proxy_buffering off;
...

}

Créez un nouveau fichier sous /etc/nginx/conf.d/ :

sudo vi /etc/nginx/conf.d/myems-admin.conf

Écrivez les directives suivantes. Si le service myems-api s'exécute sur un autre serveur, remplacez l'adresse par défaut de myems-api http://127.0.0.1:8000/ par l'adresse réelle.

server {
listen 8001;
server_name myems-admin;
location / {
root /var/www/myems-admin;
index index.html index.htm;
}
## Pour éviter le problème CORS, utilisez Nginx pour proxyffer myems-api vers le chemin /api
## Ajoutez un autre emplacement /api dans 'server'
## Remplacez l'URL par défaut de myems-api http://127.0.0.1:8000/ par l'URL réelle si le service myems-api est hébergé sur un serveur différent
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • Installer myems-admin : Si le serveur ne peut pas se connecter à Internet, compressez le dossier myems/myems-admin, téléchargez-le sur le serveur, puis extrayez-le vers ~/myems/myems-admin
sudo mkdir /var/www
sudo cp -r ~/myems/myems-admin  /var/www/myems-admin
sudo chmod 0755 -R /var/www/myems-admin

Vérifiez le fichier de configuration et apportez des modifications si nécessaire :

sudo nano /var/www/myems-admin/app/api.js

Avertissement

Le dossier 'upload' est destiné aux fichiers téléchargés par l'utilisateur. Ne supprimez / déplacez / remplacez pas le dossier 'upload' lors de la mise à niveau de myems-admin.

 /var/www/myems-admin/upload

Ajouter le port au pare-feu :

sudo semanage port -a -t http_port_t  -p tcp 8001
sudo firewall-cmd --zone=public --add-port=8001/tcp --permanent
sudo firewall-cmd --reload

Redémarrer le service nginx :

sudo systemctl restart nginx.service

Astuce

Si vous rencontrez une erreur NGINX "403 Interdit", vous pouvez la corriger en changeant le mode SELinux avec la commande 'sudo setforce 0'.

Étape 4 myems-modbus-tcp

Dans cette étape, vous installerez le service myems-modbus-tcp.

sudo cp -r ~/myems/myems-modbus-tcp /myems-modbus-tcp
cd /myems-modbus-tcp
sudo pip install -r requirements.txt

Copiez le fichier example.env vers .env et modifiez le fichier .env :

sudo cp /myems-modbus-tcp/example.env /myems-modbus-tcp/.env
sudo nano /myems-modbus-tcp/.env

Installer le service systemd :

sudo cp myems-modbus-tcp.service /lib/systemd/system/

Activer le service :

sudo systemctl enable myems-modbus-tcp.service

Démarrer le service :

sudo systemctl start myems-modbus-tcp.service

Surveiller le service :

sudo systemctl status myems-modbus-tcp.service

Voir le journal :

cat /myems-modbus-tcp.log

Étape 5 myems-cleaning

Dans cette étape, vous installerez le service myems-cleaning.

sudo cp -r ~/myems/myems-cleaning /myems-cleaning
cd /myems-cleaning
sudo pip install -r requirements.txt

Copiez le fichier example.env vers .env et modifiez le fichier .env :

sudo cp /myems-cleaning/example.env /myems-cleaning/.env
sudo nano /myems-cleaning/.env

Installer le service systemd :

sudo cp /myems-cleaning/myems-cleaning.service /lib/systemd/system/

Activer le service :

sudo systemctl enable myems-cleaning.service

Démarrer le service :

sudo systemctl start myems-cleaning.service

Surveiller le service :

sudo systemctl status myems-cleaning.service

Voir le journal :

cat /myems-cleaning.log

Étape 6 myems-normalization

Dans cette étape, vous installerez le service myems-normalization.

sudo cp -r ~/myems/myems-normalization /myems-normalization
cd /myems-normalization
sudo pip install -r requirements.txt

Copiez le fichier example.env vers .env et modifiez le fichier .env :

sudo cp /myems-normalization/example.env /myems-normalization/.env
sudo nano /myems-normalization/.env

Installer le service systemd

sudo cp /myems-normalization/myems-normalization.service /lib/systemd/system/

Activer le service :

sudo systemctl enable myems-normalization.service

Démarrer le service :

sudo systemctl start myems-normalization.service

Surveiller le service :

sudo systemctl status myems-normalization.service

Voir le journal :

cat /myems-normalization.log

Étape 7 myems-aggregation

Dans cette étape, vous installerez le service myems-aggregation.

sudo cp -r ~/myems/myems-aggregation /myems-aggregation
cd /myems-aggregation
sudo pip install -r requirements.txt

Copiez le fichier example.env vers .env et modifiez le fichier .env :

sudo cp /myems-aggregation/example.env /myems-aggregation/.env
sudo nano /myems-aggregation/.env

Installer le service systemd

sudo cp /myems-aggregation/myems-aggregation.service /lib/systemd/system/

Activer le service :

sudo systemctl enable myems-aggregation.service

Démarrer le service :

sudo systemctl start myems-aggregation.service

Surveiller le service :

sudo systemctl status myems-aggregation.service

Voir le journal :

cat /myems-aggregation.log

Étape 8 myems-web

Dans cette étape, vous installerez le service myems-web.

sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/conf.d/default.conf

Ajoutez un nouveau fichier sous /etc/nginx/conf.d/ :

sudo nano /etc/nginx/conf.d/myems-web.conf

Écrivez les directives suivantes. Si le service myems-api est hébergé sur un serveur différent, remplacez l'adresse par défaut de myems-api http://127.0.0.1:8000/ par l'adresse réelle.

server {
listen 80;
server_name myems-web;
location / {
root /var/www/myems-web;
index index.html index.htm;
# ajouter la directive try_files pour éviter l'erreur 404 lors du rafraîchissement des pages
try_files $uri /index.html;
}
## Pour éviter le problème CORS, utilisez Nginx pour proxyffer myems-api vers le chemin /api
## Ajoutez un autre emplacement /api dans 'server'
## remplacez l'URL par défaut de myems-api http://127.0.0.1:8000/ par l'URL réelle si le service myems-api est hébergé sur un serveur différent
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • Installer MyEMS Web UI :

Modifier le fichier de configuration :

Remarque

Obtenez un mapboxToken sur https://mapbox.com puis définissez showOnlineMap sur true. Si vous voulez désactiver la fonction de carte en ligne, définissez showOnlineMap sur false.

cd ~/myems/myems-web
sudo nano src/config.js

Compiler :

sudo npm i --unsafe-perm=true --allow-root --legacy-peer-deps
sudo npm run build

Installer : Notez que le chemin ci-dessous doit correspondre au chemin configuré dans nginx.conf.

sudo rm -r /var/www/myems-web
sudo mv build  /var/www/myems-web

Ajouter le port au pare-feu :

sudo semanage port -a -t http_port_t  -p tcp 80
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

Redémarrer NGINX

sudo systemctl restart nginx

Astuce

Si vous rencontrez une erreur NGINX "500 Erreur Interne du Serveur", vous pouvez la corriger en changeant le mode SELinux avec la commande 'sudo setforce 0'.

Après l'installation

Félicitations ! Vous pouvez maintenant vous connecter à MyEMS Admin UI et Web UI.

Ports par défaut

MyEMS Web UI : 80 MyEMS API : 8000 MyEMS Admin UI : 8001

Supposons que l'adresse du serveur est 192.168.1.8 (remplacez par votre véritable adresse de serveur) Adresse MyEMS Web UI : http://192.168.1.8 (port 80 peut être omis) Adresse MyEMS Admin UI : http://192.168.1.8:8001

Mots de passe par défaut

MyEMS Admin UI Nom d'utilisateur :

administrator

Mot de passe :

!MyEMS1

MyEMS Web UI Nom d'utilisateur :

administrator

Mot de passe :

!MyEMS1

Dépannage

Installation de MySQL 8.0

1. Préparation

Vérifier l'environnement système

# Vérifier la version du système
cat /etc/redhat-release

# Vérifier si MySQL est déjà installé
rpm -qa | grep mysql
rpm -qa | grep mariadb

# Désinstaller mariadb s'il existe
rpm -e --nodeps mariadb-libs-*

2. Télécharger le bundle rpm officiel MySQL

https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.45-1.el8.x86_64.rpm-bundle.tar

3. Installer MySQL 8.0

tar -xvf *.tar
yum localinstall *.rpm

# Si vous rencontrez des problèmes de clé GPG, utilisez ceci temporairement
yum install -y mysql-community-server --nogpgcheck

4. Démarrer le service MySQL

# Démarrer MySQL
systemctl start mysqld

# Activer le démarrage automatique au démarrage
systemctl enable mysqld

# Vérifier le statut du service
systemctl status mysqld

5. Obtenir le mot de passe initial

# Vérifier le mot de passe temporaire généré par MySQL
grep 'temporary password' /var/log/mysqld.log

6. Configuration sécurisée

# Exécuter le script d'installation sécurisée
mysql_secure_installation

Suivez les invites :

  1. Saisir le mot de passe temporaire
  2. Définir un nouveau mot de passe (doit inclure majuscules, minuscules, chiffres et caractères spéciaux)
  3. Changer le mot de passe root ? Y
  4. Supprimer les utilisateurs anonymes ? Y
  5. Interdire la connexion distant de root ? Choix selon vos besoins
  6. Supprimer la base de données de test ? Y
  7. Recharger les tables de privilèges ? Y

7. Se connecter et vérifier MySQL

# Se connecter à MySQL
mysql -u root -p

# Vérifier la version
SELECT VERSION();

# Lister les bases de données
SHOW DATABASES;

8. Configurer le jeu de caractères (Optionnel)

Modifier le fichier de configuration :

vi /etc/my.cnf

Ajoutez ce qui suit :

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation