Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Sv translation
languageen

Table of Contents
maxLevel3
printablefalse

Requirement

The system must first be updated to a version with MySQL 8.x (Release 3.15 to 3.17).

Preparation for the update

With every update there is a golden rule that must be strictly followed regardless of the customer's wishes:

Tip
titleGolden Rule Nr. 1

There must ALWAYS be a way back.


Tip
titleGolden Rule Nr. 1

Before you update a system, you should know it well.

Determine Authoritative Share 

In some installations, the file share is on a system provided by the customer.

In this case, the repositories are checked out locally to the load balancer on the non-authoritative share, but the files are later copied to the "authoritative" file share.

After changes should be checked for the Authoritative File-Share.

Authoritative File-Share

This is /home/jtel/shared

Non-Authoritative File-Share

This is /srv/jtel/shared

Determine if Authoritative

If /home/jtel/shared is mounted on the load balancer from a third-party system, it is usually not authoritative.

You can easily determine this by creating a file on /srv/jtel/shared. If this does not appear in /home/jtel/shared, then /srv/jtel/shared is not authoritative.

Data backup

A data backup should unconditionally be made. The MINIMUM is that the database is backed up and the data directory is backed up, but this should only be a stopgap solution.

Better is a snapshot of all virtual machines involved, in cold state (shut down).

There is a risk that if a snapshot is taken during operation (especially of the database machines), it may not be consistent.

Manual backup

Dienste Stoppen

Tip
titleStop all services of the jtel system

Stop all applications on TEL servers

  • start_launcher.cmd
  • startlistener.bat
  • TK Connector
    • May run as a service - see "Services" or "Dienste"
  • stop 8Server through the GUI or with the following command:

    Translations Ignore


    Code Block
    taskkill /im robot5.exe



All web servers that stop JBOSS servers

Translations Ignore


Code Block
service jboss stop


P.S. version 3.18 and later have wildfly and not jboss anymore

Code Block
service wildfly stop


All DB masters:

Translations Ignore


Code Block
service jtel-listener stop


All chat servers:


Translations Ignore


Code Block
service jtel-clientmessenger stop



Backup database (on DB master)

Enter the corresponding password at <password>:

Translations Ignore


Code Block
languagebash
titleBackup of the database from the primary DATA
su jtel
cd
mkdir -p /home/jtel/shared/Backup
mysqldump -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



Backup Data Directory

This can be done via the Windows Explorer or a corresponding cp command on the Linux.

Remember GIT status (Authoritative Share)

From the load balancer, check the GIT status:

Translations Ignore


Code Block
languagebash
titleNote GIT status
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)
 
# IF A custom directory exists
 
cd /home/jtel/shared/Customer_Directory
git status
git rev-parse HEAD
(save output)




If necessary, the directories must also be included in the data backup, especially if patches have been applied so that local changes have been made.

Securing additional components

If other components are affected by the update, such as the 8 server itself, or the JBOSS server (not the web application), these components should also be backed up in advance.

Snapshot Backup

This is done via the VMWare console, or Hyper-V console. This is usually done by the customer.

Confirmation

Warning
titleData backup

Only when the data backup has been made (if necessary, have the customer confirm this!), continue!

Restore

Snapshots

The snapshots are all reactivated and booted. There should be normal operation with the old software.

Manual Restoration

With all services stopped, restore the database. Enter the corresponding password at <password>:

Translations Ignore


Code Block
languagebash
titleCopy and unzip the dump
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.gz
mysql -u root -p<password> -e"backup-acd-dbm-database-2016-06-30-293211.sql"



In parallel, the old data directory can be restored.

Further steps may be necessary (restore GIT repositories, restore 8 servers, ...) depending on which components were affected by the update.

Info
titleTipp

Better take a Snapshot

The updating of the system

It should be mentioned again: all jtel services of the system must be shut down. 

After that the update can be started. The steps are performed in the order documented here

Updating the software on the STORE

This step must be performed as user "jtel".

Warning
titleNew Repository Locations

jtel has moved its repository servers to the cloud.

See here: New Repository Locations

It is necessary to change the URL of the GIT repositories before continuing here.

Check if changes / patches are available

Before updating the software, you should check whether files in the respective directory have been changed.

Info
titleTipp

There should be a readme.txt in /home/jtel/shared that may list any patches that have been applied.


Here is an example based on the software directory JTELCarrierPortal

Translations Ignore


Code Block
languagebash
titleCheck for changes
su jtel
cd /home/jtel/shared/JTELCarrierPortal
git status
git rev-parse HEAD
exit



If this indicates that files have been modified, caution is advised.

The project engineer must first check whether the changes are local bug fixes that have been incorporated into the release. If this is the case, the changes can be deleted before updating. If this is not done, the update may fail!

Translations Ignore


Code Block
languagebash
titleUndo changes
su jtel
cd /home/jtel/shared/JTELCarrierPortal
git checkout -- .
exit



However, a general procedure cannot be described in such a case. In this case, the procedure must be checked on a case-by-case basis.

If file mode changes should be ignored, the following command can be used:

Translations Ignore


Code Block
languagebash
titleGIT File Mode
git config core.fileMode false



Updating the repositories (always on non-authoritative share)

The following command sequence updates all software directories to the latest version of the respective chosen release.

Translations Ignore


Code Block
languagebash
titleUpdate the software directories
su jtel
cd /srv/jtel/shared/JTELCarrierPortal
git pull
cd /srv/jtel/shared/JTEL
git pull
cd /srv/jtel/shared/Customer_Directory
git pull
exit



If errors occur in GIT, for example:

Merge-Conflict in (file name)

Oder

fatal: Deny the merge of unrelated histories.

the local repository must be reset. This can be done as follows (example for stable-3.18 on JTELCarrierPortal)

Translations Ignore


Code Block
languagebash
titleUpdate the software directories - reset the local repository
su jtel
cd /srv/jtel/shared/JTELCarrierPortal
git reset --hard origin/release/stable-3.18



Checking out the desired release

After the GIT PULL is done, the corresponding release must be checked out if a release other than git status is desired.

Translations Ignore


Code Block
languagebash
titleUpdate the software directories
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
titleFix Shallow Clones

It may be that git does not know the release you want, despite git pull and git checkout.
In this case, there is a so-called "shallow clone" of the repository, which does not contain all branches.
This can be changed with the following commands:


git fetch --unshallow
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin

Copy files to Authoritative Share

Only if there is an Authoritative / Non-Authoritative share.

This is done with the following script

Translations Ignore


Code Block
languagebash
titleComplete update
cd /srv/jtel/shared/JTELCarrierPortal/
bash update_fileshare.sh



Run update scripts

The following update script makes all necessary changes. This is executed as root or jtel with sudo. Here with jtel user:

Translations Ignore


Code Block
languagebash
titleComplete update
cd /home/jtel/shared/JTELCarrierPortal/Update
sudo ./update_release.sh




You may be asked for the sudo password first. 

The script asks for the corresponding master database, user, password, and name of the customer directory where specific software for the customer may be located.

The questions can be answered, usually with the following answers, knowledge of <password> for the database assumed:

  • mysql host address: acd-dbm
  • mysql user name: root
  • mysql password: <password>
  • customer directory:

If there is no customer directory, this can be left empty. The presence of custom software can be checked with ls /home/jtel/shared - there you can see the names of the directories. Enter only the name of the directory! For example acme

The update is then carried out.

Warning
titleImportant note

In a master/slave environment, it is imperative to make sure to perform this procedure against the master database - i.e. mysql host address = MASTER-DB. If you do this on a slave by mistake, you will have chaos: the slave will be broken, and must be set up again. The update must then be repeated (correctly on the master).

Download Binaries

The binaries are downloaded with the following command:

Translations Ignore


Code Block
languagebash
titleGet binaries
cd /home/jtel/shared/JTELCarrierPortal/Update
su jtel
bash get_binaries.sh




Update of the Platform UDP Listener

Master Databases

With release 3.18 and higher, Java 8 is used. The (existing) Java 7 must be uninstalled and Java 8 will be installed.

We use the openjdk so that it remains updateable under 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



The update of the Platform UDP Listener must be executed as user "root" and is performed on the master databases by entering the following command:

Translations Ignore


Code Block
languagebash
titlePlatform UDP Listener updated
updatepl.sh



This command updates the listener and starts it. The success can be checked by viewing the file /home/jtel/PlatformUDPlistener/log/listener.log.

Info
titleTipp

The listener is only installed on the master databases if a SOAP interface is licensed.

Telephony servers

Here you have to check if Java 8 is installed. If necessary, download Java 8 from one of the sources here (these are BCL licensed versions, i.e. license-free):

The start script for the platform listener copies the new version of the listener itself.

Note
titleNote

If the platform listener is installed as a service on the TEL servers, a restart as a service is NOT sufficient. In this case, the listener should be started once from the console so that the copying can be done.

Updating the WEB servers

The JBOSS server is completely replaced by a Wildfly server.

Backup Hazelcast configuration

If no backup already exists:

Translations Ignore


Code Block
cp /home/jtel/jboss-as-7.1.1.FINAL/standalone/configuration/hazelcast.xml /home/jtel/shared



Uninstalling JBOSS Server and Java 7

As root:

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



Install Java 8 and 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



Configure Wildfly

The hazelcast.xml must be copied and the default settings for the database must be adjusted.

In the following replace <password> please accordingly:

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/




Updating the portal software

The update of the portal software must be executed as user "root" on the web server and is done by entering the following command:

Translations Ignore


Code Block
languagebash
titleUpdate of the Jboss
updatejb.sh



This command updates the portal software and starts the wildfly server. The success can be checked by viewing the file /home/jtel/wildfly-current/standalone/log/server.log.

 There you should see the following entries in the log file if the update was successful:

Updating Client Messenger

If Chat Server is installed.

For  jtel portal versions >= 3.25, make sure to edit systemd and/or init.d:

If you are using init.d:

Code Block
languagebash
titlejtel-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 

If you are using systemd:

Code Block
languagebash
titlejtel-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

Then update:

Code Block
languagebash
titleUpdate of the Clientmessenger
updatesc.sh

Update of the 8Server

The 8Server is updated in Windows Explorer using GIT. To do this, right-click on the directory C:\8Server\deploy to perform a GIT pull and switch to the desired version after the pull.

Warning
titleNew Repository Locations

jtel has moved its repository servers to the cloud.

See here: New Repository Locations

It is necessary to change the URL of the GIT repositories before continuing here.

If you do not want to update to the last version, but to a specific version, you can do this via "git checkout", by indicating the release.

After updating, the version must then be installed. For a daemon server, this is done with the command:

Translations Ignore


Code Block
titleUpdate daemon server from the command line
C:
cd \8Server\Install
copy_keyfile_en_daemon.cmd



For a telephony server with Aculab Media Service, this is done with the following command:

Translations Ignore


Code Block
titleUpdate telephony server from the command line
C:
cd \8Server\Install
copy_keyfile_en_mcp.cmd



Afterwards the 8Server can be started.

Updating the connectors

Basically: the corresponding files from the software directory in the STORE must be copied into the target directory.

These usually come from JTELCarrierPortal/WebServices/Install

Warning
titleWarning

During copy actions it is absolutely necessary to take care not to overwrite the configuration files!

These have names that are often based on the name of the executable program.

Example: JTELInnovaphonePBXService.exe.config is the name of the Innovaphone Connector configuration file.

Final work

Once the update has been completed and the system restarted without errors, the following tasks must be performed:

  • Login to the portal. Short test to see that agents and supervisors also get to see what they expect.
  • Test call! Ideally there is a test number. If not, call one of the regular service numbers. Check that the 8Server answers correctly.
    • Test call with observation of the portal.
      Log in as a user, and see if a call is displayed correctly in the portal when it is delivered to the agent.


Info
titleBackups

On VMWare and Hyper-V, snapshots can lead to performance losses.

The snapshots should be deleted, but only when it is certain that there is no need to go back. This is usually after a little live time from the call center.



Sv translation
languagede

Table of Contents
maxLevel3
printablefalse

Voraussetzung

Das System muss vorher auf eine Version mit MySQL 8.x geupdatet werden (Release 3.15 bis 3.17).

Vorbereitung für die Aktualisierung

Bei jeder Aktualisierung gibt es eine goldene Regel, die unabhängig von den Wünschen des Kunden strikt befolgt werden muss:

Tip
titleGoldene Regel Nr. 1

Es muss IMMER einen Weg zurück geben.


Tip
titleGoldene Regel Nr. 2

Bevor man ein System aktualisiert, sollte man es gut kennen.

Authoritative Share Bestimmen

Bei manchen Installationen, ist das File-Share auf ein System, der vom Kunden bereitgestellt wird.

In diesen Fall erfolgt das Checkout der Repositories lokal auf den Load-Balancer auf den Non-Authoritative Share, die Dateien werden aber später auf den "Authoritative" File-Share kopiert.

Nach Änderungen sollte auf den Authoritative File-Share geprüft werden.

Authoritative File-Share

Dieser ist /home/jtel/shared

Non-Authoritative File-Share

Dieser ist /srv/jtel/shared

Bestimmen ob Authoritative

Wenn /home/jtel/shared auf den Load-Balancer von einem Fremdsystem gemountet ist, dann ist es in der Regel nicht authoritative.

Dies kann man einfach bestimmen, indem man eine Datei auf /srv/jtel/shared erzeugt. Erscheint dies nicht in /home/jtel/shared, so ist /srv/jtel/shared nicht authoritative.

Datensicherung

Es sollte unbedingt eine Datensicherung angefertigt werden. Das MINIMUM ist dass die Datenbank gesichert wird, und das Datenverzeichnis gesichert wird, dies sollte jedoch nur die Notlösung sein.

Besser ist ein Snapshot aller beteiligten virtuellen Maschinen, im Kaltzustand (heruntergefahren).

Die Gefahr besteht, dass wenn ein Snapshot im laufenden Betrieb gezogen wird (insbesondere der Datenbankmaschinen), dass dieser nicht konsistent ist.

Manuelle Sicherung

Dienste Stoppen

Tip
titleAlle Dienste des jtel-Systems stoppen

Auf TEL Servern alle Anwendungen stoppen

  • start_launcher.cmd
  • startlistener.bat
  • TK Connector
    • Kann ggf. als Dienst laufen - siehe "Dienste" oder "Services"
  • 8Server durch die GUI oder mit folgender Kommando beenden:

    Translations Ignore


    Code Block
    taskkill /im robot5.exe



Alle Webserver, die JBOSS Server stoppen:

Translations Ignore


Code Block
service jboss stop


Alle DB Master:

Translations Ignore


Code Block
service jtel-listener stop


Alle Chat Server:


Translations Ignore


Code Block
service jtel-clientlistener stop



Datenbank sichern (auf DB Master)

Das entsprechende Passwort bei <password> eintragen:

Translations Ignore


Code Block
languagebash
titleBackup of the database from the primary DATA
su jtel
cd
mkdir -p /home/jtel/shared/Backup
mysqldump -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



Data Verzeichnis sichern

Dies kann über den Windows Explorer oder ein entsprechender cp Befehl auf den Linux erfolgen.

GIT Status merken (Authoritative Share)

Vom Load-Balancer aus, den GIT Status prüfen:

Translations Ignore


Code Block
languagebash
titleNote GIT status
cd /home/jtel/shared/JTEL
git status
git rev-parse HEAD
(ausgaben sichern)
 
cd /home/jtel/shared/JTELCarrierPortal
git status
git rev-parse HEAD
(ausgaben sichern)
 
# IF A custom directory exists
 
cd /home/jtel/shared/Customer_Directory
git status
git rev-parse HEAD
(ausgaben sichern)




Ggf. müssen hier die Verzeichnisse ebenso in die Datensicherung mit aufgenommen werden, insbesondere dann, wenn Patches eingespielt wurden, sodass lokale Änderungen erfolgt sind.

Weitere Komponenten sichern

Sind weitere Komponenten vom Update betroffen, wie der 8-Server selbst, oder der JBOSS Server (nicht die Webanwendung), sollten diese Komponenten vorab auch gesichert werden.

Snapshot Sicherung

Dies erfolgt über die VMWare Konsole, oder Hyper-V Konsole. Dies wird üblicherweise durch den Kunden durchgeführt.

Bestätigung

Warning
titleDatensicherung

Erst wenn die Datensicherung erfolgt ist (ggf. vom Kunden bestätigen lassen!), weitermachen!

Rücksicherung

Snapshots

Die Snapshots werden alle wieder aktiviert, und hochgefahren. Es sollte ein normaler Betrieb mit den alten Software-Stand herrschen.

Manuelle Rücksicherung

Mit allen Diensten gestopped, die Datenbank zurücksichern. Das entsprechende Passwort bei <password> eintragen:

Translations Ignore


Code Block
languagebash
titleCopy and unzip the dump
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.gz
mysql -u root -p<password> -e"backup-acd-dbm-database-2016-06-30-293211.sql"



Parallel dazu, kann das alte Data Verzeichnis zurückgespielt werden.

Ggf. sind weitere Schritte erforderlich (GIT Repositories zurücksichern, 8-Server zurücksichern, ...) je nach dem welche Komponenten beim Update betroffen waren.

Info
titleTipp

Mach lieber ein Snapshot.

Die Aktualisierung des Systems

Es sei hier noch mal erwähnt: alle jtel-Dienste des Systems müssen herunter gefahren sein. 

Danach kann mit der Aktualisierung begonnen werden. Die Schritte erfolgen in der hier dokumentierten Reihenfolge

Aktualisierung der Software auf dem STORE

Dieser Schritt muss als Benutzer "jtel" erfolgen.

Warning
titleNew Repository Locations

jtel hat seine Repository-Server umgezogen in die Cloud.

Siehe hier: New Repository Locations

Es ist nötig, die URL der GIT repositories zu verändern, bevor man hier weitermacht.

Prüfung ob Änderungen / Patches vorhanden sind

Bevor die Software aktualisiert wird, sollte noch geprüft werden, ob im jeweiligen Verzeichnis Dateien geändert wurden.

Info
titleTipp

Es sollte in /home/jtel/shared eine readme.txt vorhanden sein, der eventuell eingespielte Patches auflistet.


Hier ein Beispiel basierend auf das Software-Verzeichnis JTELCarrierPortal:

Translations Ignore


Code Block
languagebash
titleCheck for changes
su jtel
cd /home/jtel/shared/JTELCarrierPortal
git status
git rev-parse HEAD
exit



Wird hier angezeigt, dass Dateien verändert wurden, ist Vorsicht geboten. Der Projektingenieur muss vorher prüfen, ob die Änderungen lokale Bugfixe sind, die inzwischen ins Release eingeflossen sind. In diesem Falle können die Änderungen vor der Aktualisierung gelöscht werden. Tut man dies nicht, so kann die Aktualisierung scheitern!

Translations Ignore


Code Block
languagebash
titleUndo changes
su jtel
cd /home/jtel/shared/JTELCarrierPortal
git checkout -- .
exit



Eine allgemeine Vorgehensweise kann in einem solchen Fall aber nicht beschrieben werden. Hier muss von Fall zu Fall geprüft werden, wie vorgegangen wird.

Falls Datei-Modus Änderungen ignoriert werden sollen, kann folgender Befehl genutzt werden:

Translations Ignore


Code Block
languagebash
titleGIT File Mode
git config core.fileMode false



Aktualisierung der Repositories (Immer auf Non-Authoritative Share)

Die folgende Befehlssequenz aktualisiert alle Software-Verzeichnisse auf dem letzten Stand des jeweilig eingestellten Releases.

Translations Ignore


Code Block
languagebash
titleUpdate the software directories
su jtel
cd /srv/jtel/shared/JTELCarrierPortal
git pull
cd /srv/jtel/shared/JTEL
git pull
cd /srv/jtel/shared/Customer_Directory
git pull
exit



Falls Fehler beim GIT auftreten, beispielsweise:

Merge-Konflikt in (Dateiname)

Oder

fatal: Verweigere den Merge von nicht zusammenhängenden Historien.

muss das lokale Repository resettet werden. Dies kann wie folgt (Beispiel für stable-3.18 auf JTELCarrierPortal) geschehen:

Translations Ignore


Code Block
languagebash
titleUpdate the software directories - reset the local repository
su jtel
cd /srv/jtel/shared/JTELCarrierPortal
git reset --hard origin/release/stable-3.18



Auschecken des gewünschten Releases

Nachdem der GIT PULL erfolgt ist, muss das entsprechende Release ausgechecked werden, falls ein anderer als mit git status gewünscht ist.

Translations Ignore


Code Block
languagebash
titleUpdate the software directories
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
titleFix Shallow Clones

Es kann sein, dass git den gewünschten Release nicht kennt, trotz git pull und git checkout.
In diesen Fall liegt ein sogenannter "shallow clone" des Repositories vor, der nicht alle Branches beinhaltet.
Dies kann mit folgende Befehle verändert werden:


git fetch --unshallow
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin

Dateien auf Authoritative Share kopieren

Nur wenn es ein Authoritative / Non-Authoritative share gibt.

Dies geschieht mit folgender Skript

Translations Ignore


Code Block
languagebash
titleComplete update
cd /srv/jtel/shared/JTELCarrierPortal/
bash update_fileshare.sh



Aktualisierungsskripte laufen lassen

Folgender Aktualisierungsskript führt alle notwendigen Änderungen durch. Dies wird als root oder jtel mit sudo ausgeführt. Hier mit jtel user:

Translations Ignore


Code Block
languagebash
titleComplete update
cd /home/jtel/shared/JTELCarrierPortal/Update
sudo ./update_release.sh




Ggf. wird man zuerst nach den sudo Passwort gefragt. 

Das Skript fragt nach den entsprechenden Master Datenbank, Benutzer, Passwort, und Name des Kundenverzeichnisses indem ggf. spezifische Software für den Kunden liegt.

Die Fragen können, in der Regel mit folgende Antworten beantwortet werden, Kenntnis von <password> für die Datenbank vorausgesetzt:

  • mysql host address: acd-dbm
  • mysql user name: root
  • mysql password: <password>
  • customer directory:

Falls kein Customer Directory vorhanden ist, kann dies leer gelassen werden. Das Vorhandensein von Kundenspezifische Software kann mit ls /home/jtel/shared geprüft werden - dort die Namen der Verzeichnisse anschauen. Nur den Namen des Verzeichnisses angeben! Beispielsweise acme

Anschließend wird das Update durchgeführt.

Warning
titleWichtiger Hinweis

In einer Master/Slave Umgebung ist unbedingt darauf zu achten, diese Prozedur gegen der Master-Datenbank durchzuführen - sprich mysql host address = MASTER-DB. Tut man dies aus Versehen auf einem Slave, hat man Chaos gesät: der Slave ist dann kaputt, und muss neu aufgesetzt werden. Die Aktualisierung muss dann (korrekt auf dem Master) wiederholt werden.

Binaries Herunterladen

Die Binaries werden mit folgenden Befehl heruntergeladen:

Translations Ignore


Code Block
languagebash
titleGet binaries
cd /home/jtel/shared/JTELCarrierPortal/Update
su jtel
bash get_binaries.sh




Aktualisierung des Platform UDP Listeners

Master Datenbanken

Bei Release 3.18 und höher, wird Java 8 verwendet. Das (vorhandene) Java 7 muss deinstalliert werden, und Java 8 wird installiert.

Wir verwenden den openjdk, sodass es unter Linux Updatefähig bleibt.

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



Die Aktualisierung des Platform UDP Listeners muss als Benutzer "root" ausgeführt werden und erfolgt auf die Master Datenbanken durch Eingabe folgendem Befehls:

Translations Ignore


Code Block
languagebash
titlePlatform UDP Listener updated
updatepl.sh



Dieser Befehl aktualisiert den Listener und startet ihn. Der Erfolg kann durch Sichtung der Datei /home/jtel/PlatformUDPlistener/log/listener.log geprüft werden.

Info
titleTipp

Der Listener ist nur auf die Master-Datenbanken dann installiert, wenn eine SOAP Schnittstelle lizenziert ist.

Telefonieservern

Hier ist zu prüfen ob Java 8 installiert ist. Ggf. Java 8 von einer der Quellen hier herunterladen (dies sind BCL lizenzierte Versionen, also Lizenzfrei):

Das Start-Skript für den Platform-Listener kopiert die neue Version des Listeners selbst.

Note
titleHinweis

Ist der Platform-Listener auf den TEL Servern als Dienst installiert, reicht ein Neustart als Dienst NICHT aus. In diesen Fall sollte der Listener einmal von der Konsole aus gestartet werden, damit das Kopieren auch geschieht.

Aktualisierung der WEB Server

Der JBOSS Server wird komplett ersetzt durch ein Wildfly Server.

Hazelcast Konfiguration sichern

Falls keine Sicherung bereits vorhanden:

Translations Ignore


Code Block
cp /home/jtel/jboss-as-7.1.1.FINAL/standalone/configuration/hazelcast.xml /home/jtel/shared



JBOSS Server und Java 7 Deinstallieren

Als root:

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



Java 8 und Wildfly Installieren

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.02.tar.gz
tar xzf wildfly-18.0.1.Final.02.tar.gz
rm -f wildfly-18.0.1.Final.02.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
ln -s /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



Wildfly konfigurieren

Die hazelcast.xml muss kopiert werden, und die Standardeinstellungen für die Datenbank müssen angepasst werden.

Im folgenden <password> bitte entsprechend ersetzen:

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/




Aktualisierung der Portalsoftware

Die Aktualisierung der Portalsoftware muss als Benutzer "root" auf dem Webserver ausgeführt werden und erfolgt durch Eingabe folgendem Befehls:

Translations Ignore


Code Block
languagebash
titleUpdate of the Jboss
updatejb.sh



Dieser Befehl aktualisiert die Portalsoftware und startet den wildfly Server. Der Erfolg kann durch Sichtung der Datei /home/jtel/wildfly-current/standalone/log/server.log geprüft werden.

 Dort sollten in der Log-Datei folgende Einträge zu sehen sein, wenn die Aktualisierung erfolgreich war:

Client Messenger aktualisieren

wenn Chatserver installiert ist.

Stellen Sie für jtel-Portalversionen >= 3.25 sicher, dass Sie systemd und/oder init.d bearbeiten:

Wenn Sie init.d verwenden:

Code Block
languagebash
titlejtel-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 

Wenn Sie systemd verwenden:

Code Block
languagebash
titlejtel-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

Dann aktualisieren:

Code Block
languagebash
titleUpdate of the Clientmessenger
updatesc.sh


Aktualisierung des 8Servers

Die Aktualisierung des 8Server erfolgt im Windows-Explorer mittels GIT. Hierfür wird mit einem Rechtsklick auf das Verzeichnis C:\8Server\deploy ein GIT Pull durchgeführt, und auf das gewünschte Version nach dem Pull gewechselt.

Warning
titleNew Repository Locations

jtel hat seine Repository-Server umgezogen in die Cloud.

Siehe hier: New Repository Locations

Es ist nötig, die URL der GIT repositories zu verändern, bevor man hier weitermacht.

Möchte man nicht auf die letzte Version, sondern auf eine spezifische Version aktualisieren, erfolgt dies Über "git checkout" mit Angabe des Releases.

Nach dem Aktualisieren, muss die Version dann installiert werden. Bei einem Daemon-Server erfolgt dies mit dem Befehl:

Translations Ignore


Code Block
titleUpdate daemon server from the command line
C:
cd \8Server\Install
copy_keyfile_en_daemon.cmd



Bei einem Telefonie-Server mit Aculab Media Service erfolgt dies mit folgendem Befehl:

Translations Ignore


Code Block
titleUpdate telephony server from the command line
C:
cd \8Server\Install
copy_keyfile_en_mcp.cmd



Im Anschluss kann der 8Server gestartet werden.

Aktualisierung der Konnektoren

Grundsätzlich gilt: die entsprechenden Dateien aus dem Software-Verzeichnis im STORE müssen ins Zielverzeichnis kopiert werden.

Diese kommen in der Regel aus dem Bereich JTELCarrierPortal/WebServices/Install

Warning
titleACHTUNG

Bei Kopieraktionen ist unbedingt darauf zu achten, die Konfigurationsdateien nicht zu überschreiben!

Diese haben Namen, die sich an den Namen des ausführbaren Programm häufig anlehnen.

Beispiel: JTELInnovaphonePBXService.exe.config ist der Name der Konfigurationsdatei vom Innovaphone Connector.

Abschließende Arbeiten

Ist die Aktualisierung beendet und die Anlage ohne Fehler wieder hochgefahren, sind folgende Aufgaben zwingend auszuführen:

  • Anmelden ans Portal. Kurzer Test um zu sehen, dass auch Agenten und Supervisoren zu sehen bekommen, was sie erwarten.
  • Testanruf! Idealerweise gibt es eine Testnummer. Falls nicht, eine der regulären Servicerufnummern anrufen. Prüfen, dass der 8Server korrekt antwortet.
    • Testanruf mit beobachtung des Portals.
      Als User anmelden, und schauen ob ein Anruf im Portal korrekt angezeigt wird, wenn es dem Agenten zugestellt wird.


Info
titleSicherungen

Auf VMWare sowie Hyper-V können Snapshots zu Performance-Verlusten führen.

Die Snapshots sollten gelöscht werden, aber erst dann, wenn sichergestellt ist, dass es kein Zurück mehr geben muss. Dies ist in der Regel nach der ein Wenig Live-Zeit des Call-Centers der Fall.


Sv translation
languagefr

Table of Contents
maxLevel3
printablefalse

Exigence

Le 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
titleRègle d'or n° 1

Il doit TOUJOURS y avoir un moyen de revenir.


Tip
titleRègle d'or n° 1

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ées

Une 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 manuelle

Services d'arrêt

Tip
titleArrêtez tous les services du système jtel

Arrêtez toutes les applications sur les serveurs TEL

  • start_launcher.cmd
  • startlistener.bat
  • Connecteur TK
    • Peut fonctionner comme un service - voir "Services" ou "Dienste"
  • stop 8Server via l'interface graphique ou avec la commande suivante:

    Translations Ignore


    Code Block
    taskkill /im robot5.exe



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
languagebash
titleSauvegarde 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 Backup

Cela 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
languagebash
titleNotez 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émentaires

Si 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ée

Cela se fait via la console VMWare, ou console Hyper-V. Cette opération est généralement effectuée par le client.

Confirmation

Warning
titleSauvegarde 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!

Restaurer

Clichés

Les clichés sont tous réactivés et amorcés. Il devrait y avoir un fonctionnement normal avec l'ancien logiciel.

Restauration manuelle

Une 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
languagebash
titleCopier 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
titleConseil

Il vaut mieux prendre un cliché.

La mise à jour du système

Il 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 STORE

Cette étape doit être effectuée en tant qu'utilisateur "jtel".

Warning
titleNouveaux 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 disponibles

Avant de mettre à jour le logiciel, vous devez vérifier si les fichiers dans le répertoire correspondant ont été modifiés.

Info
titleConseil

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
languagebash
titleVé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
languagebash
titleAnnulez 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
languagebash
titleGIT 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
languagebash
titleMettre à 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
languagebash
titleMettre à 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ée

Une 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
languagebash
titleMettre à 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
titleRé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
languagebash
titleMise à jour complète
cd /srv/jtel/shared/JTELCarrierPortal/bash update_fileshare.sh



Exécutez des scripts de mise à jour

Le 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
languagebash
titleMise à 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
titleNote importante

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 binaires

Les binaires sont téléchargés avec la commande suivante:

Translations Ignore


Code Block
languagebash
titleObtenir des binaires
cd /home/jtel/shared/JTELCarrierPortal/Updatesu jtelbash get_binaries.sh




Mise à jour de la plate-forme UDP Listener

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
languagebash
titleMise à 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
titleConseil

L'auditeur n'est installé sur les bases de données principales que si une interface SOAP est autorisée.

Serveurs téléphoniques

Ici, 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
titleNote

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 WEB

Le serveur JBOSS est complètement remplacé par un serveur Wildfly.

Sauvegarde de la configuration Hazelcast

Si 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 7

Comme 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



Configurer Wildfly

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 portail

La 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
languagebash
titleMise à 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
languagebash
titlejtel-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
languagebash
titlejtel-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
languagebash
titleMise à jour du Clientmessenger
updatesc.sh

Mise à jour du 8Server

Le 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
titleNouveaux 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
titleMise à 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
titleMise à 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 connecteurs

Fondamentalement: 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
titleAttention

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 final

Une 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
titleBackups

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.