ExigenceLe système doit d'abord être mis à jour avec une version de MySQL 8.x (Release 3.15 à 3.17). Préparation de la mise à jourÀ chaque mise à jour, il existe une règle d'or qui doit être strictement respectée, quels que soient les souhaits du client: Tip |
---|
| Il doit TOUJOURS y avoir un moyen de revenir. |
Tip |
---|
| Avant de mettre à jour un système, vous devez bien le connaître. |
Déterminer la part qui fait autorité Dans certaines installations, le partage de fichiers se fait sur un système fourni par le client. Dans ce cas, les dépôts sont extraits localement vers l'équilibreur de charge sur le partage non-autoritaire, mais les fichiers sont ensuite copiés sur le partage de fichiers "autoritaire". Après les changements, il faut vérifier si le partage de fichiers fait autorité. Partage de fichiers faisant autoritéIl s'agit de/home/jtel/shared Partage de fichiers non autoriséIl s'agit de /home/jtel/shared Déterminer si elle fait autoritéSi /home/jtel/shared est monté sur l'équilibreur de charge d'un système tiers, il ne fait généralement pas autorité. Vous pouvez facilement le déterminer en créant un fichier sur /srv/jtel/shared. Si ce fichier n'apparaît pas dans /home/jtel/shared, alors /srv/jtel/shared ne fait pas autorité. Sauvegarde des donnéesUne sauvegarde des données doit être effectuée sans condition. Le MINIMUM est que la base de données soit sauvegardée et le répertoire de données sauvegardé, mais cela ne devrait être qu'une solution provisoire. Mieux vaut un cliché de toutes les machines virtuelles concernées, à l'état froid (éteint). Il y a un risque que si un instantané est pris pendant le fonctionnement (en particulier des machines de la base de données), il peut ne pas être cohérent. Sauvegarde manuelleServices d'arrêt Tip |
---|
title | Arrêtez tous les services du système jtel |
---|
| Arrêtez toutes les applications sur les serveurs TEL Tous les serveurs web qui arrêtent les serveurs JBOSS Translations Ignore |
---|
Code Block |
---|
service jboss stop |
|
Tous les maîtres de la DB Translations Ignore |
---|
Code Block |
---|
service jtel-listener stop |
|
Tous les serveurs de chat:
Translations Ignore |
---|
Code Block |
---|
service jtel-clientmessenger stop |
|
|
Base de données de sauvegarde (sur le maître de la base de données)Entrez le mot de passe correspondant à <mot de passe>: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Sauvegarde de la base de données à partir des DONNÉES primaires |
---|
| su jtelcdmkdir -p /home/jtel/shared/Backupmysqldump -u root -p<password> --add-drop-database --add-drop-table --events --routines --triggers --databases JTELWeb JTELStats JTELStats2 JTELLog | gzip > /home/jtel/shared/Backup/backup-$(hostname -s)-database-$(date +%F-%H%M%S).sql.gz |
|
Directory Data BackupCela peut être fait via l'explorateur Windows ou une commande cp correspondante sur Linux. Se souvenir du statut de GIT (Part d'autorité)A partir de l'équilibreur de charge, vérifiez le statut GIT: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Notez le statut GIT |
---|
| cd /home/jtel/shared/JTEL git status git rev-parse HEAD (save output) cd /home/jtel/shared/JTELCarrierPortal git status git rev-parse HEAD (save output) # SI un répertoire personnalisé existe cd /home/jtel/shared/Customer_Directory git status git rev-parse HEAD (save output) |
|
Si nécessaire, les répertoires doivent également être inclus dans la sauvegarde des données, en particulier si des correctifs ont été appliqués afin que des modifications locales soient effectuées. Sécurisation des composants supplémentairesSi d'autres composants sont affectés par la mise à jour, tels que le 8-server lui-même ou le serveur JBOSS (et non l'application web), ces composants doivent également être sauvegardés à l'avance. Sauvegarde instantanéeCela se fait via la console VMWare, ou console Hyper-V. Cette opération est généralement effectuée par le client. Confirmation Warning |
---|
title | Sauvegarde des données |
---|
| Ce n'est que lorsque la sauvegarde des données a été effectuée (si nécessaire, faites-le confirmer par le client !) que vous pouvez continuer! |
RestaurerClichésLes clichés sont tous réactivés et amorcés. Il devrait y avoir un fonctionnement normal avec l'ancien logiciel. Restauration manuelleUne fois tous les services arrêtés, restaurez la base de données. Entrez le mot de passe correspondant à <mot de passe>: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Copier et dézipper la décharge |
---|
| cp /home/jtel/shared/Backup/backup-acd-dbm-database-2016-06-30-293211.sql.gz .gunzip backup-acd-dbm-database-2016-06-30-293211.sql.gzmysql -u root -p<password> -e"backup-acd-dbm-database-2016-06-30-293211.sql" |
|
En parallèle, l'ancien répertoire de données peut être restauré. D'autres étapes peuvent être nécessaires (restauration des dépôts GIT, restauration de 8-servers, ...) en fonction des composants qui ont été affectés par la mise à jour. Info |
---|
| Il vaut mieux prendre un cliché. |
La mise à jour du systèmeIl convient de le mentionner à nouveau : tous les services jtel du système doivent être arrêtés. Après cela, la mise à jour peut être lancée. Les étapes sont effectuées dans l'ordre documenté ici Mise à jour du logiciel sur le STORECette étape doit être effectuée en tant qu'utilisateur "jtel". Warning |
---|
title | Nouveaux lieux de dépôt |
---|
| jtel a déplacé ses serveurs de dépôt vers le cloud. Voir ici: New Repository Locations Il est nécessaire de changer l'URL des dépôts GIT avant de continuer ici. |
Vérifiez si des changements / correctifs sont disponiblesAvant de mettre à jour le logiciel, vous devez vérifier si les fichiers dans le répertoire correspondant ont été modifiés. Info |
---|
| Il doit y avoir un readme.txt dans /home/jtel/shared qui peut énumérer tous les correctifs qui ont été appliqués. |
Voici un exemple basé sur le répertoire de logiciels JTELCarrierPortal Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Vérifier les changements |
---|
| su jtelcd /home/jtel/shared/JTELCarrierPortalgit statusgit rev-parse HEAD exit |
|
Si cela indique que des fichiers ont été modifiés, la prudence est de mise. L'ingénieur du projet doit d'abord vérifier si les changements sont des corrections de bogues locales qui ont été intégrées dans la version. Si tel est le cas, les modifications peuvent être supprimées avant la mise à jour. Si cela n'est pas fait, la mise à jour risque d'échouer! Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Annulez les changements |
---|
| su jtelcd /home/jtel/shared/JTELCarrierPortalgit checkout -- .exit |
|
Toutefois, une procédure générale ne peut être décrite dans un tel cas. Dans ce cas, la procédure doit être vérifiée au cas par cas. Si les changements de mode de fichier doivent être ignorés, la commande suivante peut être utilisée: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | GIT File Mode |
---|
| git config core.fileMode false |
|
Mise à jour des dépôts (toujours sur le partage non autorisé)La séquence de commandes suivante met à jour tous les répertoires de logiciels à la dernière version de la version choisie. Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Mettre à jour les répertoires de logiciels |
---|
| su jtelcd /srv/jtel/shared/JTELCarrierPortalgit pullcd /srv/jtel/shared/JTELgit pullcd /srv/jtel/shared/Customer_Directorygit pullexit |
|
Si des erreurs se produisent dans le GIT, par exemple: Fusion-Conflit en (nom du fichier) Ou fatal : Nier la fusion d'histoires sans lien entre elles. le dépôt local doit être réinitialisé. Cela peut être fait de la manière suivante (exemple pour stable-3.18 sur JTELCarrierPortal) Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Mettre à jour les répertoires de logiciels - réinitialiser le dépôt local |
---|
| su jtelcd /srv/jtel/shared/JTELCarrierPortalgit reset --hard origin/release/stable-3.18 |
|
Vérification de la version souhaitéeUne fois que le GIT PULL est effectué, la version correspondante doit être vérifiée si une version autre que le git status est souhaitée. Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Mettre à jour les répertoires de logiciels |
---|
| su jtel cd /srv/jtel/shared/JTELCarrierPortal git checkout release/stable-3.18 cd /srv/jtel/shared/JTEL git checkout release/stable-3.18 cd /srv/jtel/shared/Customer_Directory git checkout release/stable-3.18 exit |
|
Note |
---|
title | Réparer les clones peu profonds |
---|
| Il se peut que le git ne connaisse pas la version que vous voulez, malgré le fait que le git pull et le git checkout. Dans ce cas, il existe un "shallow clone" du dépôt, qui ne contient pas toutes les branches. Cela peut être modifié avec les commandes suivantes:
git fetch --unshallow git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" git fetch origin |
Copier les fichiers sur le partage autoriséSeulement s'il y a une part Autoritaire / Non Autoritaire. Cela se fait avec le scénario suivant Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Mise à jour complète |
---|
| cd /srv/jtel/shared/JTELCarrierPortal/bash update_fileshare.sh |
|
Exécutez des scripts de mise à jourLe script de mise à jour suivant apporte toutes les modifications nécessaires. Ceci est exécuté en tant que root ou jtel avec sudo. Ici avec l'utilisateur de jtel: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Mise à jour complète |
---|
| cd /home/jtel/shared/JTELCarrierPortal/Updatesudo ./update_release.sh |
|
Il se peut qu'on vous demande d'abord le mot de passe sudo. Le script demande la base de données principale correspondante, l'utilisateur, le mot de passe et le nom du répertoire des clients où peuvent se trouver des logiciels spécifiques pour le client. Les questions peuvent être répondues, généralement avec les réponses suivantes, connaissance de <mot de passe> pour la base de données supposée: - hôte adresse mysql : acd-dbm
- nom d'utilisateur mysql : root
- mot de passe mysql : <password>
- répertoire Client
S'il n'y a pas de répertoire des clients, celui-ci peut être laissé vide. La présence de logiciels personnalisés peut être vérifiée avec ls /home/jtel/shared - vous pouvez y voir les noms des répertoires. N'entrez que le nom du répertoire! Par exemple acme La mise à jour est alors effectuée. Warning |
---|
| Dans un environnement maître/esclave, il est impératif de s'assurer d'effectuer cette procédure par rapport à la base de données maître - c'est-à-dire adresse d'hôte mysql = MASTER-DB. Si vous faites cela sur un esclave par erreur, ce sera le chaos : l'esclave sera brisé et devra être remis en place. La mise à jour doit ensuite être répétée (correctement sur le master). |
Téléchargez les binairesLes binaires sont téléchargés avec la commande suivante: Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Obtenir des binaires |
---|
| cd /home/jtel/shared/JTELCarrierPortal/Updatesu jtelbash get_binaries.sh |
|
Bases de données principalesÀ partir de la version 3.18, Java 8 est utilisé. Le Java 7 (existant) doit être désinstallé et le Java 8 sera installé. Nous utilisons l'openjdk pour qu'il reste actualisable sous Linux. Translations Ignore |
---|
Code Block |
---|
service jtel-listener stop yum -y remove jdk.x86_64 yum -y install https://cdn.jtel.de/downloads/java/jdk-8u202-linux-x64.rpm |
|
La mise à jour de la plate-forme UDP Listener doit être exécutée en tant qu'utilisateur "root" et est effectuée sur la bases de données principales en entrant la commande suivante : Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Mise à jour de la plate-forme UDP Listener |
---|
| updatepl.sh |
|
Cette commande met à jour l'auditeur et le démarre. Le succès peut être vérifié en consultant le fichier /home/jtel/PlatformUDPlistener/log/listener.log. Info |
---|
| L'auditeur n'est installé sur les bases de données principales que si une interface SOAP est autorisée. |
Serveurs téléphoniquesIci, vous devez vérifier si Java 8 est installé. Si nécessaire, téléchargez Java 8 à partir d'une des sources ici (ce sont des versions sous licence BCL, c'est-à-dire sans licence): Le script de démarrage pour l'auditeur de la plateforme copie la nouvelle version de l'auditeur lui-même. Note |
---|
| Si l'auditeur de plate-forme est installé en tant que service sur les serveurs TEL, un redémarrage en tant que service n'est PAS suffisant. Dans ce cas, l'auditeur doit être démarré une fois à partir de la console afin que la copie puisse être effectuée. |
Mise à jour des serveurs WEBLe serveur JBOSS est complètement remplacé par un serveur Wildfly. Sauvegarde de la configuration HazelcastSi aucune sauvegarde n'existe déjà: Translations Ignore |
---|
Code Block |
---|
cp /home/jtel/jboss-as-7.1.1.FINAL/standalone/configuration/hazelcast.xml /home/jtel/shared |
|
Désinstallation du serveur JBOSS et de Java 7Comme racine: Translations Ignore |
---|
Code Block |
---|
service jboss stop yum -y remove jdk.x86_64 cd /home/jtel chkconfig jboss off rm -f /etc/init.d/jboss rm -f /etc/cron.daily/jboss-logmaint.sh rm -f /etc/cron.daily/jboss-restart.sh rm -f /usr/local/bin/updatejb.sh rm -Rf jboss-as-7.1.1.FINAL |
|
Installer Java 8 et Wildfly Translations Ignore |
---|
Code Block |
---|
yum -y install https://cdn.jtel.de/downloads/java/jdk-8u202-linux-x64.rpm wget http://cdn.jtel.de/downloads/jboss/wildfly-18.0.1.Final.03.tar.gz tar xzf wildfly-18.0.1.Final.03.tar.gz rm -f wildfly-18.0.1.Final.03.tar.gz mkdir -p wildfly-18.0.1.Final/standalone/deployments chown -R jtel:jtel wildfly-18.0.1.Final mkdir -p /home/jtel/upload chown -R jtel:jtel /home/jtel/upload ln -s /home/jtel/wildfly-18.0.1.Final wildfly-current cp /home/jtel/wildfly-current/init.d/wildfly /etc/init.d/wildfly ln -s /home/jtel/wildfly-current/default/wildfly /etc/default/wildfly cd /etc/cron.daily ln -s /home/jtel/wildfly-current/bin/jboss-logmaint.sh ln -s /home/jtel/wildfly-current/bin/jboss-restart.sh cd /usr/local/bin ln -s /home/jtel/wildfly-current/bin/updatejb.sh chkconfig wildfly on |
|
Le fichier hazelcast.xml doit être copié et les paramètres par défaut de la base de données doivent être ajustés. Dans le texte suivant, remplacez <mot de passe> en conséquence: Translations Ignore |
---|
Code Block |
---|
DBPRI=acd-dbm DBSTA=acd-dbs DBREP=acd-dbr DBPWD=<password> sed -i -e "s/DATA_PRIMARY/${DBPRI}/g" -e "s/DATA_STATS/${DBSTA}/g" -e "s/DATA_REPORTS/${DBREP}/g" -e "s/DB_PASSWORD/${DBPWD}/g" /home/jtel/wildfly-current/standalone/configuration/standalone.xml unset DBPWD unset DBREP unset DBSTA unset DBPRI cp /home/jtel/shared/hazelcast.xml /home/jtel/wildfly-current/standalone/configuration/ |
|
Mise à jour du logiciel du portailLa mise à jour du logiciel du portail doit être exécutée en tant qu'utilisateur "root" sur le serveur web et se fait en entrant la commande suivante : Translations Ignore |
---|
Code Block |
---|
language | bash |
---|
title | Mise à jour du Jboss |
---|
| updatejb.sh |
|
Cette commande met à jour le logiciel du portail et démarre le serveur Wildfly. Le succès peut être vérifié en consultant le fichier /home/jtel/wildfly-current/standalone/log/server.log. Vous devriez y voir les entrées suivantes dans le fichier journal si la mise à jour a réussi :
Mise à jour du « Client Messenger »Si le serveur de chat est installé. Pour les versions du portail jtel >= 3.25, assurez-vous d'éditer systemd et/ou init.d : Si vous utilisez init.d : Code Block |
---|
language | bash |
---|
title | jtel-clientmessenger |
---|
| vi /home/jtel/ClientMessenger/init.d/jtel-clientmessenger
# make sure this line exists
-Djava.net.preferIPv4Stack=true \
# make sure this line contains \&serverTimezone=Europe/Berlin
-Dde.jtel.platform.clientmessenger.connection=jdbc:mysql://acd-dbm/JTELWeb?user=root\&password=<password>\&characterEncoding=utf8\&serverTimezone=Europe/Berlin \
# copy to etc
cp /home/jtel/ClientMessenger/init.d/jtel-clientmessenger /etc/init.d/
chmod 755 /etc/init.d/jtel-clientmessenger |
Si vous utilisez systemd : Code Block |
---|
language | bash |
---|
title | jtel-clientmessenger.service |
---|
| vi /home/jtel/ClientMessenger/systemd/jtel-clientmessenger.service
# make sure this line exists
-Djava.net.preferIPv4Stack=true \
# make sure this line contains &serverTimezone=Europe/Berlin
-Dde.jtel.platform.clientmessenger.connection=jdbc:mysql://acd-dbm/JTELWeb?user=root&password=<Password>&characterEncoding=utf8&serverTimezone=Europe/Berlin \
# copy to systemd
cp /home/jtel/ClientMessenger/systemd/jtel-clientmessenger.service /etc/systemd/system/jtel-clientmessenger.service
systemctl daemon-reload |
Ensuite, mettez à jour : Code Block |
---|
language | bash |
---|
title | Mise à jour du Clientmessenger |
---|
| updatesc.sh |
Mise à jour du 8ServerLe 8Server est mis à jour dans l'explorateur Windows à l'aide de GIT. Pour ce faire, cliquez avec le bouton droit de la souris sur le répertoire C:\8Server\deploy pour effectuer une extraction GIT et passez à la version souhaitée après l'extraction. Warning |
---|
title | Nouveaux lieux de dépôt |
---|
| jtel a déplacé ses serveurs de dépôt vers le cloud. Voir ici: New Repository Locations Il est nécessaire de changer l'URL des dépôts GIT avant de continuer ici. |
Si vous ne souhaitez pas mettre à jour vers la dernière version, mais vers une version spécifique, vous pouvez le faire via "git checkout", en indiquant la version. Après la mise à jour, la version doit ensuite être installée. Pour un serveur Démon, cela se fait avec la commande : Translations Ignore |
---|
Code Block |
---|
title | Mise à jour du serveur daemon à partir de la ligne de commande |
---|
| C:cd \8Server\Installcopy_keyfile_en_daemon.cmd |
|
Pour un serveur de téléphonie avec Aculab Media Service, cela se fait avec la commande suivante : Translations Ignore |
---|
Code Block |
---|
title | Mise à jour du serveur de téléphonie à partir de la ligne de commande |
---|
| C: cd \8Server\Installcopy_keyfile_en_mcp.cmd |
|
Ensuite, le 8Server peut être démarré. Mise à jour des connecteursFondamentalement: les fichiers correspondants du répertoire du logiciel dans le STORE doivent être copiés dans le répertoire cible. Elles proviennent généralement de JTELCarrierPortal/WebServices/Install Warning |
---|
| Lors d'actions de copie, il est absolument nécessaire pour faire attention à ne pas écraser les fichiers de configuration! Ces derniers ont des noms qui sont souvent basés sur le nom du programme exécutable. Exemple : JTELInnovaphonePBXService.exe.config est le nom du fichier de configuration du connecteur Innovaphone. |
Travail finalUne fois la mise à jour terminée et le système redémarré sans erreur, les tâches suivantes doivent être effectuées: - Connectez-vous au portail. Petit test pour voir que les agents et les superviseurs ont également la possibilité de voir ce qu'ils attendent.
- Appel test! Idéalement, il y a un numéro de test. Sinon, appelez l'un des numéros du service régulier. Vérifiez que le 8Server répond correctement.
- Appel test avec observation du portail.
Connectez-vous en tant qu'utilisateur et voyez si un appel s'affiche correctement dans le portail lorsqu'il est remis à l'agent.
Info |
---|
| Sur VMWare et Hyper-V, les clichés peuvent entraîner des pertes de performance. Les clichés doivent être supprimés, mais uniquement lorsque il est certain qu'il n'est pas nécessaire de revenir en arrière. C'est généralement après un peu de temps en direct du centre d'appel. |
|