Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Content imported from a Scroll Translations translation file.
Sv translation
languageen

Table of Contents
maxLevel2
printablefalse

Anpassungen an der Hardware

Im Gegensatz zu den anderen Maschinen, muss die Maschine die diese Rolle einnimmt eine weitere (virtuelle) Festplatte erhalten, die dem Zwecke dient, die Daten beherbergen zu können. Bevor also die virtuelle Maschine gestartet wird, muss dieser Maschine eine weitere virtuelle Festplatte mit einer vorher auf der Basis der Anforderungen festgelegte Größe hinzugefügt werden (üblicherweise zwischen 160 GB und 1 TB). Nach einem Neustart, wird die Festplatte vom Betriebssystem-Kern erkannt und die Installation kann nun fortgesetzt werden.

Einbinden der Datenplatte

Info
titleHinweis

Im nachfolgenden Abschnitt werden abweichend vom Standard dieser Dokumentation in den Code-Blöcken nicht nur die Befehle angegeben, sondern ein Mitschnitt der gesamten Operation, um auch die Ausgaben der Befehle exemplarisch zu zeigen, da diese von einiger Relevanz sind. Die einzugebenden Befehle befinden sich immer hinter dem Systemprompt [root@acd-lb ~]#

Damit die neue Festplatte genutzt werden kann, muss sie entsprechend initialisiert werden. Dafür muss erst mal festgestellt werden, unter welchem Gerätenamen die Platte im System erkannt wurde:

Code Block
languagebash
titleAuflisten der Festplatten-Gerätenamen
[root@acd-lb ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb
[root@acd-lb ~]#

Durch die Eingabe des Befehls ls /dev/sd* werden alle Gerätenamen bezüglich der aktuellen Festplatten aufgelistet. Der Befehl zeigt uns folgende Gerätenamen:

  1. /dev/sda => Erste Festplatte
  2. /dev/sda1 => Erste Partition der ersten Festplatte
  3. /dev/sda2 => Zweite Partition der ersten Festplatte
  4. /dev/sdb => Zweite Festplatte

Da die zweite Festplatte offensichtlich noch keine Partitionen hat, ist nun davon auszugehen, dass es sich hier um die neu hinzugefügte Festplatte handelt. Es wird nun das Partitionierungs-Programm gestartet, welches uns unter anderem auch anzeigt, ob wir mit dieser Platte die richtige ausgewählt haben:

Code Block
titlePartitionierung - Teil 1
[root@acd-lb ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x877ae737.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sdb: 171.8 GB, 171798691840 bytes
255 heads, 63 sectors/track, 20886 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x877ae737

   Device Boot      Start         End      Blocks   Id  System

Command (m for help):

Nach dem Starten des Partitionierungs-Programmes kann man sich durch Eingabe des Befehls p die Partitionierungstabelle der Festplatte anschauen. Die ist erwartungsgemäß leer - aber die wichtige Information ist, dass die Platte mit dem Gerätenamen /dev/sdb 171.8 GB groß ist. Da dies der erzeugten Größe entspricht, wissen wir, dass es sich um die richtige Platte handelt (das Tool rechnet übrigens mit 10er Potenzen. Aus diesem Grunde wird die Platte, die im vSphere Client, der in 2er Potenzen rechnet mit 160GB angelegt wurde als 171.8 GB angezeigt).

Note
titleHinweis

Wenn die Maschine auch über ein CD/DVD Laufwerk (egal ob virtuell oder physisch) verfügt, so wird dieses höchstwahrscheinlich auch als Massenspeichergerät ohne Partitionstabelle in der Liste auftauchen (z.B. /dev/sdc). Versucht man dieses mit dem Partitionierungstool zu bearbeiten, wird es eine entsprechende Fehlermeldung geben. Die Anzeige des Befehls p wird auch keine ensprechenden Informationen anzeigen. Letztendlich muss man ausprobieren, welcher Gerätenamen nun der Festplatte entspricht.

 

Es wird nun eine Partition angelegt, die die ganze Platte umfasst und vom Typen 83 ist. Die Partitionstabelle wird geschrieben und das Tool beendet:

Code Block
titlePartitionierung - Teil 2
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-20886, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-20886, default 20886):
Using default value 20886

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83

Command (m for help): p

Disk /dev/sdb: 171.8 GB, 171798691840 bytes
255 heads, 63 sectors/track, 20886 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x877ae737

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       20886   167766763+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@acd-lb ~]#

Ein erneuter Aufruf des Befehls ls /dev/sd* zeigt nun, dass die neue Partition vom Kernel erkannt wurde:

Code Block
languagebash
titleErneutes Auflisten der Festplatten-Gerätenamen
[root@acd-lb ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1
[root@acd-lb ~]#

Die Partition kann nun mit dem Gerätenamen /dev/sdb1 angesprochen werden. Auf der Partition muss nun ein Filesystem erzeugt werden (Formatieren). Da diese Partition extrem viele kleine und große Dateien beherbergen soll, wird hierfür ein für die Aufgabe optimiertes Filesystem genommen, und zwar XFS. Das erzeugen des Filesystems erfolgt durch die Eingabe folgenden Befehls:

Code Block
languagebash
titleErzeugen des Filesystems
[root@acd-lb ~]# mkfs.xfs -L data /dev/sdb1
meta-data=/dev/sdb1              isize=256    agcount=4, agsize=10485423 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=41941690, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=20479, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Falls der Befehl nicht gefunden wird, muss das Packet nachinstalliert werden.

  rpm -qa |grep xfsprogs

  yum -y install xfsprogs

Nachdem das Filesystem nun erzeugt wurde, muss es noch im globalen Namensraum eingehängt werden, und zwar so, dass es auch nach einem Neustart des Systems wieder zur Verfügung steht. Da alle Prozesse des jtel-Systems im Kontext des Benutzers jtel laufen, bietet es sich an, den Zweig /home komplett in das neue Filesystem unterzubringen. Ein kurzer Aufruf auf den Ordner zeigt allerdings, dass in diesem schon Dateien vorhanden sind:

Code Block
languagebash
titlePrüfung des Inhalts von /home
[root@acd-lb ~]# ls -la /home
total 12
drwxr-xr-x.  3 root root 4096 Jun  9 09:04 .
dr-xr-xr-x. 23 root root 4096 Jun  9 19:01 ..
drwx------.  3 jtel jtel 4096 Jun  9 09:05 jtel
[root@acd-lb ~]#

Wie man sehen kann, befindet sich unter /home bereits das Home-Verzeichnis vom Benutzer jtel. Würde man nun auf /home die neue Platte einhängen, würden die bereits vorhandenen Daten nicht mehr sichtbar sein, da sie sich ja nicht auf dem neuen Volumen befinden. Diese müssen also erst mal irgendwo anders untergebracht werden. Da sich dort noch sehr sehr wenige Daten befinden, kann das Home-Verzeichnis vom Benutzer jtel kurz mal ins Home-Verzeichnis vom Benutzer root bewegt werden:

Code Block
languagebash
titleSichern der Daten auf /home
[root@acd-lb ~]# ls -la /home
total 12
drwxr-xr-x.  3 root root 4096 Jun  9 09:04 .
dr-xr-xr-x. 23 root root 4096 Jun  9 19:01 ..
drwx------.  3 jtel jtel 4096 Jun  9 09:05 jtel
[root@acd-lb ~]# mkdir /root/backup
[root@acd-lb ~]# mv /home/* /root/backup
[root@acd-lb ~]#

Es wurde nun ein neues Verzeichnis backup im Home-Verzeichnis des Benutzers root angelegt. Mit dem zweiten Befehl wurde der gesamte Inhalt des Verzeichnis /home ins Verzeichnis /root/backup bewegt. Das neue Volumen wird nun in die Tabelle der automatisch eingehängten Volumen eingetragen, so dass es automatisch beim Start eingehängt wird. Dafür wird eine folgende Zeile ans Ende der Datei /etc/fstab eingefügt:

Code Block
titleNeuer Eintrag in /etc/fstab
/dev/sdb1	        /home	                xfs	noatime,nodiratime	0	0

Jede Zeile besteht aus 6 Werten, die entweder mit Leerstellen oder Tabs getrennt werden. Diese Bedeuten im Spezifischen Fall:

  1. Das Volumen mit dem Gerätenamen /dev/sdb1
  2. wird im globalen Namensraum unter /home eingehängt
  3. unter Benutzung des Filesystem-Treibers für XFS
  4. mit den Attributen noatime und nodiratime (wobei nodiratime in noatime enthalten ist, so dass nicht beides definiert werden muss)
  5. Intervallzähler für "dump"-Operationen, falls das Filesystem das unterstützt
  6. Reihenfolge für die Integritätsprüfung beim Systemstart

Damit das Volumen sofort eingehängt wird, muss nun noch folgender Befehl eingegeben werden:

Code Block
languagebash
titleSofortiges Einhängen
[root@acd-lb ~]# mount /home
[root@acd-lb ~]#

Das Fehlen einer jeglichen Ausgabe ist die üblich sachliche Art von Unix darauf hinzuweisen, dass der Befehl erfolgreich ausgeführt wurde (Unix "spricht" in der Regel nur, wenn was schief gegangen ist). Um sich des Erfolges zu versichern, kann man sich mal die Auslastung des Filesystems mit folgendem Befehl anschauen:

Code Block
languagebash
titleTest
[root@acd-lb ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_centos6-lv_root
                       14G  1.1G   12G   8% /
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/sda1             477M   81M  371M  18% /boot
/dev/sdb1             160G   33M  160G   1% /home

Hier kann man deutlich sehen, dass der Zweig /home 160GB umfasst, was der beweis ist, dass das neue Volumen erfolgreich eingehängt wurde.

Nun ist es an der Zeit, die Dateien wieder an ihrem angestammten Ort zu befördern:

Code Block
languagebash
titleZurückspeichern der Daten auf /home
[root@acd-lb ~]# mv /root/backup/* /home
[root@acd-lb ~]# restorecon -R -v /home
restorecon reset /home context system_u:object_r:file_t:s0->system_u:object_r:home_root_t:s0
restorecon reset /home/jtel/.inputrc context unconfined_u:object_r:admin_home_t:s0->unconfined_u:object_r:user_home_t:s0
[root@acd-lb ~]# rmdir /root/backup
[root@acd-lb ~]#

Der erste Befehl bewegt die Daten zurück. Damit ist es aber noch nicht gemacht, denn bei dieser Operation sind die SELINUX-Security-Labels der Dateien abhanden gekommen. Um dieser wieder herzustellen, dient der zweite Befehl. Der dritte Befehl löscht dann das übrig gebliebene Sicherungsverzeichnis /root/backup.

Es kann nun mit der Installation und Konfiguration der benötigten Software fortgefahren werden.

Installation der benötigten Softwarepakete

Für den Betrieb der Rolle STORE muss lediglich das Softwarepaket samba installiert werden, welches den geteilten Dateibereich mittels des SMB/CIFS Protokoll zur Verfügung stellt. Dies wird durch Ausführung des folgenden Befehls erreicht:

Code Block
languagebash
titleInstallieren von Samba
yum -y install samba

Nach der Installation kann mit der Konfiguration der Software fortgefahren werden.

Konfiguration der Software

Als erstes wird das geteilte Verzeichnis angelegt, und dem Benutzer jtel als Besitzer zugewiesen:

Code Block
languagebash
titleAnlegen des geteilten Verzeichnisses
mkdir /srv/jtel
mkdir /srv/jtel/shared
chown jtel:jtel /srv/jtel/shared
sudo -u jtel ln -s /srv/jtel/shared /home/jtel/shared

Die Samba Konfigurationsdatei wird gesichert, und ein neues angelegt:

Code Block
languagebash
title/etc/samba/smb.conf
cp -a /etc/samba/smb.conf /etc/samba/smb.conf.orig
cat <<EOFF > /etc/samba/smb.conf
[global]
        workgroup = SAMBA
        security = user
 
        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
        min protocol = NT1
        ntlm auth = yes

[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = root
        create mask = 0664
        directory mask = 0775
EOFF
 
cat <<EOFF | sudo tee -a /etc/samba/smb.conf
[shared]
    comment = jtel ACD Shared Directory
    read only = no
    public = yes
    writable = yes
    locking = yes
    path = /srv/jtel/shared
    guest ok = yes
    create mask = 0644
    directory mask = 0755
    force user = jtel
    force group = jtel
EOFF
 
if (grep -q "VERSION_ID.*7" /etc/centos-release); then
cat <<EOFF | sudo tee -a /etc/samba/smb.conf
    acl allow execute always = True
EOFF
 
fi

Die Einträge ("force user" und "force group" stellen sicher, dass alle Dateien die über die Freigabe erzeugt, kopiert oder geändert werden, im Filesystem immer unter dem Benutzer jtel angelegt bzw. angesprochen werden, unabhängig davon, welcher Benutzer sich auf die Freigabe anmeldet. Dies stellt sicher, dass auch bei abweichenden Windows-Login-Namen die Berechtigungen im Filesystem intakt bleiben. Die Optionen "create maske" und "directory mask" werden gesetzt, damit alle Dateien und Verzeichnisse, die angelegt werden, die Berechtigung von Linux erhalten, selbst wenn sie von Windows aus angelegt werden. Es werden die Rechte über Bist vergeben, so bedeuten die Werte 0644 und 0755 folgende Biteinstellungen: 0755 = -rwxr-xr-x. und 0644 = -rw-r--r–.

Damit samba auch Zugriff auf Dateien im /home Bereich erhält, müssen noch einige Variablen des SELINUX Security Frameworks konfiguriert werden:

Note
titleHinweis

Der nachfolgende Befehl dauert relativ lange, da die betroffenen Sicherheitsregelwerke dadurch neu kompiliert werden.

Code Block
languagebash
titleSELINUX Konfiguration
setsebool -P samba_enable_home_dirs=on samba_export_all_rw=on use_samba_home_dirs=on use_nfs_home_dirs=on

Sollte SELinux deaktiviert sein, so kann es in der Datei /etc/sysconfig/selinux entsprechend umgestellt werden. Hier den Eintrag mit "SELINUX=disabled" suchen und durch den Wert "SELINUX=permissive" ersetzen. Der Server muss dann neu gestartet werden.

In der Samba-Benutzerdatenbank müssen nun die für das CIFS-Protokoll zusätzlich benötigten Benutzerattribute erzeugt werden. Da im System bereits der Benutzer jtel für alle Prozesse und Netzwerkzugriffe vorgesehen ist, erfolgt dies erst mal für diesen Benutzer so dass alle Maschinen sich als Benutzer jtel an die Freigabe anmelden können:

Code Block
languagebash
titleSamba Benutzer anlegen
(echo fireball; echo fireball) | smbpasswd -a jtel -s

Das Programm verlangt dann die zweimalige Eingabe des Passwort, was der Benutzer jtel für Netzzugriffe über das CIFS-Protokoll erhalten soll. Damit die Benutzung der Freigabe unter Windows ohne eine gesonderte Anmeldung erfolgen soll, ist hier das Passwort einzugeben, welches der lokale Benutzer jtel auf den Windows-Maschinen erhalten hat. Im Falle unserer Musterinstallation wäre dies der Benutzer jtel mit dem Passwort F1r3ball.

Im Falle, dass auf den Windows-Maschinen hingegen ein anderer Benutzername angelegt wurde, oder gar die Maschinen in einer Domäne angemeldet wurden, und die jtel Programme unter einem dafür spezifisch angelegten Domänen-Benutzer laufen sollen, so muss ein gleichnamiger Benutzer angelegt werden. Dies muss erst mal auf Systemebene erfolgen und danach können dann die Zusatzdaten in die Samba-Benutzerdatenbank erzeugt werden. Das Nachfolgende Beispiel zeigt dies an Hand des Benutzers robot5.

Code Block
languagebash
titleAnlegen weiterer Benutzer
useradd -m robot5
(echo fireball; echo fireball) | smbpasswd -a robot5 -s

Es können so beliebige weitere Benutzer angelegt werden. Unabhängig davon, welcher dieser Benutzer für die Anmeldung zur Freigabe benutzt wird, werden alle Dateien im zentralen Datenverzeichnis durch die spezielle Konfiguration der Freigabe dem Benutzer jtel zugewiesen.

Als nächstes müssen in der Firewall die Port-Freigaben für den Samba-Dienst eingetragen und persistent gespeichert werden (ggf. muss der Index 4 auf 1, 2 oder 3 gesetzt werden, je nachdem, wie viele Firewall-Regeln vorhanden sind; Fehler: iptables: Index of insertion too big.):

Code Block
languagebash
titleFirewall konfigurieren
iptables -I INPUT 4 -p tcp -m tcp --dport 445 -j ACCEPT
iptables -I INPUT 4 -p tcp -m tcp --dport 139 -j ACCEPT
iptables -I INPUT 4 -p udp -m udp --dport 138 -j ACCEPT
iptables -I INPUT 4 -p udp -m udp --dport 137 -j ACCEPT
service iptables save

Zum Abschluss müssen nun die Samba-Dienste nur noch für den automatischen Start konfiguriert werden, und gestartet werden:

Code Block
languagebash
titleSamba Dienste Registrieren und Starten
chkconfig nmb on
chkconfig smb on
service nmb start
service smb start

Abschließende Tests

Um zu verifizieren, dass die Rolle STORE korrekt installiert wurde, sollte erst mal ein grundsätzlicher Funktionstest ausgeführt werden. Der einfachste Test, kann z.B: von einer Windows-Maschine ausgefürt werden, in dem einfach versucht wird, auf die Freigabe zuzugreifen. Dies kann z.B. aus dem Windows-Explorer erfolgen in dem der UNC ( \\ACD-LB\shared ) der Freigabe in die Pfadzeile eingegeben wird:

Image Removed

Im Idealfall wird sich das freigegebene Verzeichnis ohne weitere Nachfragen öffnen. Abschließend sollte noch geprüft werden, dass die WIndows Maschine im Verzeichnis schreiben kann, und dass die erzeugten Dateien mit den korrekten Attributen ins Zielverzeichnis gelangen. Dafür reicht es im Explorer mittels Rechtsklick ein Verzeichnis und eine Textdatei anzulegen.

Aus Sicht der Linux-Maschine sollten sich die erzeugten Dateien folgendermaßen zeigen:

Code Block
titleTestdateien im Linux-Filesystem
[root@acd-lb ~]# ls -la /home/jtel/shared/
total 4
drwxr-xr-x. 3 jtel jtel   51 Jun 12 15:44 .
drwx------. 4 jtel jtel 4096 Jun  9 20:31 ..
drwxr-xr-x. 2 jtel jtel    6 Jun 12 15:44 New folder
-rw-r--r--. 1 jtel jtel    0 Jun 12 15:44 New Text Document.txt

Wie man hier sehen kann, sind sowohl die Testdatei als auch das Testverzeichnis vorhanden und mit den korrekten Berechtigungen (Dateien => 644 => rw,r,r Verzeichnisse => 755 => rwx,rx,rx) erzeugt wurden. Die Testdateien können nun gelöscht werden:

Code Block
languagebash
titleLöschen der Testdateien
rm -rf /home/jtel/shared/*

Installation der Meta-Rolle Software

In einem Standard-Installations-Szenario wird in der Zentral-Freigabe der Rolle STORE auch eine Kopie der Software-Repositories abgelegt. Diese ist demnach von allen Maschinen des jtel Systems erreichbar. Der Zugriff auf die Software-Repositories dient verschiedenen Zwecken:

  1. Alle Maschinen der Rolle TEL können die Telefonie-Applikationen (R5-Skripte) direkt von dieser zentralen Freigabe heraus ausführen. Alternativ können diese Komponenten der Software auch von der zentralen Freigabe lokal auf die Windows-Maschinen kopiert werden um den Netzwerkverkehr im laufenden Betrieb zu reduzieren. Dies erfordert allerdings zusätzliche Sorgfalt beim aktualisieren des Systems, da in diesem Fall nach dem Aktualisieren des Repositories die entsprechenden Verzeichnisse mit den R5-Skripten auf allen Windows-Maschinen kopiert werden müssen.
  2. Im Falle der Erstinstallation oder späteren Aktualisierungen, werden von hier die Datenbank-Initialisierungs- bzw. Datenbank-Aktualisierung-Skripte ausgeführt.
  3. Weitere Software-Komponenten die auf verschiedenen Maschinen lokal installiert werden (z.B. Konnektoren, Plugins, UDP Listener) werden von hier kopiert und aktualisiert

Installation benötigter Zusatzsoftware

Für die Bereitstellung und Aktualisierung des jtel Software-Repositories muss zusätzliche Software installiert werden. Da diese nicht nur aus den offiziellen CentOS Paketquellen bezogen werden kann, müssen noch weitere Software-Quellen konfiguriert werden:

Code Block
languagebash
titleInstallieren zusätzlicher Softwarequellen
yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
yum -y install http://mirror1.hs-esslingen.de/repoforge/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

yum -y install yum-utils
yum-config-manager --enable rpmforge-extras

...

Installing the Meta-Role Software

In a standard installation scenario, a copy of the software repositories is also stored in the central share of the STORE role. This is therefore accessible from all machines of the jtel system. Access to the software repositories serves various purposes:

  1. All machines in the TEL role can execute the telephony applications (R5 scripts) directly from this central share. Alternatively, these components of the software can also be copied locally from the central share to the Windows machines to reduce network traffic during operation. However, this requires additional care when updating the system, since in this case, after updating the repository, the corresponding directories with the R5 scripts must be copied on all Windows machines.
  2. In case of initial installation or later updates, the database initialization or database update scripts are executed from here.
  3. Additional software components that are installed locally on different machines (e.g. connectors, plugins, UDP listener) are copied and updated from here

Installation of required additional software

Note: for redundant systems, do this on BOTH storage nodes.

Additional software must be installed to provide and update the jtel software repository. Since this can not only be obtained from the official CentOS package sources, other software sources must be configured:

Translations Ignore


Code Block
languagebash
titleInstall additional software sources - MySQL 8.x.
yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm



Translations Ignore


Code Block
languagebash
titleInstall additional software sources - MySQL 5.6
yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm



The required software can then be installed and configured. The configuration is done under the user jtel.

Translations Ignore


Code Block
languagebash
titleInstall and configure GIT
yum -y install git222 mysql-community-client
su jtel
cd
git config --global user.name "jtel Support"
git config --global user.email "support@jtel.de"




If you need a proxy for GIT:

Translations Ignore


Code Block
languagebash
titleProxy for GIT
git config --global http.proxy http://<proxy_server>:<port>



Downloading the jtel software for the first time

Note: for redundant systems, do this on the ACTIVE storage nodes.

The following operations are no longer performed in the context of the root user but must be performed in the context of the jtel user. To do this, you can either log in as user jtel in a separate SSH session or, if you are already logged in as user root, you can switch to the context of the jtel user. This is done with the following command:

Translations Ignore


Code Block
languagebash
titleChange user context
su jtel
cd



After entering these commands you can recognize the user change at the system prompt, which is now [jtel@acd-lb ~]$ (the system prompt consists of username@hostname current directory) The next step is to download the two software repositories with the jtel standard software.

This is done by entering the following commands:

Translations Ignore


Info
titleNew Repository Locations

Attention: new repository URLs - see here: New Repository Locations



Translations Ignore


Code Block
languagebash
titleDownload the development repositories
cd /srv/jtel/shared
git clone https://bitbucket.org/jtelgmbh/jtel.git JTEL
git clone https://bitbucket.org/jtelgmbh/jtelcarrierportal.git JTELCarrierPortal




In the event that specific adaptations or extensions have been programmed for the customer, the customer-specific software repository must also be downloaded. This is done exemplarily by a command which is structured as follows:

Translations Ignore


Code Block
languagebash
titleDownload a custom repository
cd /srv/jtel/shared
git clone https://bitbucket.org/jtelgmbh/cacme/software.git acme



Both the source URL and the target directory are customer-specific in this case and differ from case to case.

In the downloaded software repositories, the software release to be installed at the customer must now be selected. In this case it is release 3.14:

Translations Ignore


Code Block
languagebash
titleSelect the desired release
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




The last step is to create the directories for central logging, standard data import and the central data directory:

Translations Ignore


Code Block
languagebash
titlePrepare data directories
cd /srv/jtel/shared
mkdir -p LogFiles LogFilesCall Import/{Clients,ServiceNumbers}/{Done,In,Problems}
cp -a JTELCarrierPortal/Data .
cp -a JTEL/Data/system/gui Data/system
cd /srv/jtel/shared/JTELCarrierPortal/Update
bash ./get_binaries.sh



Cleaner processes

A CRON job is required to clean up the directories of the portal. 

With redundancy, on both STORE. Since the directory is only mounted on one, but we don't know which one, the command must be executed on both.

Caution: as ROOT.

Translations Ignore


Code Block
languagebash
titleCleaner processes in /etc/cron.daily
cat <<EOFF > /etc/cron.daily/jtel_portal_cleaner.sh
find /srv/jtel/shared/Data/clients/*/reports -type f -mtime +2 -delete
EOFF
chmod +x /etc/cron.daily/jtel_portal_cleaner.sh




Sv translation
languagede

Table of Contents
maxLevel2
printablefalse

Installation der Meta-Rolle Software

In einem Standard-Installations-Szenario wird in der Zentral-Freigabe der Rolle STORE auch eine Kopie der Software-Repositories abgelegt. Diese ist demnach von allen Maschinen des jtel Systems erreichbar. Der Zugriff auf die Software-Repositories dient verschiedenen Zwecken:

  1. Alle Maschinen der Rolle TEL können die Telefonie-Applikationen (R5-Skripte) direkt von dieser zentralen Freigabe heraus ausführen. Alternativ können diese Komponenten der Software auch von der zentralen Freigabe lokal auf die Windows-Maschinen kopiert werden um den Netzwerkverkehr im laufenden Betrieb zu reduzieren. Dies erfordert allerdings zusätzliche Sorgfalt beim aktualisieren des Systems, da in diesem Fall nach dem Aktualisieren des Repositories die entsprechenden Verzeichnisse mit den R5-Skripten auf allen Windows-Maschinen kopiert werden müssen.
  2. Im Falle der Erstinstallation oder späteren Aktualisierungen, werden von hier die Datenbank-Initialisierungs- bzw. Datenbank-Aktualisierung-Skripte ausgeführt.
  3. Weitere Software-Komponenten die auf verschiedenen Maschinen lokal installiert werden (z.B. Konnektoren, Plugins, UDP Listener) werden von hier kopiert und aktualisiert

Installation benötigter Zusatzsoftware

Hinweis: bei Redundante Systeme, dies auf BEIDE Storage Nodes ausführen.

Für die Bereitstellung und Aktualisierung des jtel Software-Repositories muss zusätzliche Software installiert werden. Da diese nicht nur aus den offiziellen CentOS Paketquellen bezogen werden kann, müssen noch weitere Software-Quellen konfiguriert werden:

Translations Ignore


Code Block
languagebash
titleInstall additional software sources - MySQL 8.x.
yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm



Translations Ignore


Code Block
languagebash
titleInstall additional software sources - MySQL 5.6
yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm



Anschließend kann die benötigte Software installiert und konfiguriert werden. Die Konfiguration erfolgt unter den User jtel.

Translations Ignore


Code Block
languagebash
titleInstall and configure GIT
yum -y install git2u mysql-community-client
su jtel
cd
git config --global user.name "jtel Support"
git config --global user.email "support@jtel.de"




Wenn man ein Proxy für GIT braucht:

Translations Ignore


Code Block
languagebash
titleProxy for GIT
git config --global http.proxy http://<proxy_server>:<port>



Erstmaliges Herunterladen der jtel Software

Hinweis: bei Redundante Systeme, dies auf den AKTIVEN Storage Nodes ausführen.

Die folgenden Operationen erfolgen nicht mehr im Kontext des Benutzers root sondern müssen im Kontext des Benutzers jtel ausgeführt werden. Dafür kann man sich entweder in einer separaten SSH Sitzung als Benutzer jtel anmelden oder, wenn man bereits als Benutzer root angemeldet ist, in den Kontext des Benutzers jtel wechseln. Dies erfolgt durch folgenden Befehl:

Translations Ignore


Code Block
languagebash
titleChange user context
su jtel
cd



Nach Eingabe dieser Befehle erkennt man den Benutzerwechsel am Systemprompt, welches nun [jtel@acd-lb ~]$ lautet (Das Systemprompt setzt sich zusammen aus benutzername@hostname aktuelles Verzeichnis) Als nächstes werden nun die beiden Software-Repositories mit der jtel Standardsoftware heruntergeladen.

Dies erfolgt durch Eingabe folgender Befehle:

Translations Ignore


Info
titleNew Repository Locations

Achtung: neue Repository URLs - siehe hier: New Repository Locations



Translations Ignore


Code Block
languagebash
titleDownload the development repositories
cd /home/jtel/shared
git clone https://bitbucket.org/jtelgmbh/jtel.git JTEL
git clone https://bitbucket.org/jtelgmbh/jtelcarrierportal.git JTELCarrierPortal




Im Falle dass für den Kunden noch spezifische Anpassungen oder Erweiterungen programmiert wurden, muss zusätzlich das Kundenspezifische Software-Repository heruntergeladen werden. Dies erfolgt exemplarisch durch einen Befehl der folgendermaßen aufgebaut ist:

Translations Ignore


Code Block
languagebash
titleDownload a custom repository
cd /home/jtel/shared
git clone https://bitbucket.org/jtelgmbh/cacme/software.git acme



Sowohl die Ursprungs-URL als auch das Zielverzeichnis sind in diesem Fall kundenspezifisch und von Fall zu Fall verschieden.

In den Heruntergeladenen Software-Repositories muss nun noch das beim Kunden zu installierende Software-Release ausgewählt werden. In diesem Fall ist es das Release 3.14:

Translations Ignore


Code Block
languagebash
titleSelect the desired release
cd /home/jtel/shared/JTELCarrierPortal
git checkout release/stable-3.18
cd /home/jtel/shared/JTEL
git checkout release/stable-3.18
cd /home/jtel/shared




Als letzter Schritt werden nun noch die Verzeichnisse für die zentrale Protokollierung, den Standard-Datenimport und das zentrale Datenverzeichnis angelegt:

Translations Ignore


Code Block
languagebash
titlePrepare data directories
cd /home/jtel/shared
mkdir -p LogFiles LogFilesCall Import/{Clients,ServiceNumbers}/{Done,In,Problems}
cp -a JTELCarrierPortal/Data .
cp -a JTEL/Data/system/gui Data/system
cd /home/jtel/shared/JTELCarrierPortal/Update
bash ./get_binaries.sh



Cleaner Prozesse

Damit die Verzeichnisse des Portals aufgeräumt werden, wird ein CRON Job benötigt. 

Bei Redundanz, auf beide STORE. Da das Verzeichnis nur auf einer gemountet ist, aber wir wissen nicht welche, muss der Befehl auf beide ausgeführt werden.

Achtung: als ROOT.

Translations Ignore


Code Block
languagebash
titleCleaner processes in /etc/cron.daily
cat <<EOFF > /etc/cron.daily/jtel_portal_cleaner.sh
find /srv/jtel/shared/Data/clients/*/reports -type f -mtime +2 -delete
EOFF
chmod +x /etc/cron.daily/jtel_portal_cleaner.sh




Sv translation
languagefr

Table of Contents
maxLevel2
printablefalse

Installation du logiciel Meta-Role

Dans un scénario d'installation standard, une copie des dépôts de logiciels est également stockée dans la partie centrale du rôle MAGASIN. Il est donc accessible à partir de toutes les machines du système jtel. L'accès aux dépôts de logiciels répond à plusieurs objectifs :

  1. Toutes les machines du rôle TEL peut exécuter les applications de téléphonie (scripts R5) directement à partir de cette part centrale. Alternativement, ces composants du logiciel peuvent également être copiés localement depuis le partage central vers les machines Windows afin de réduire le trafic réseau pendant le fonctionnement. Toutefois, cela nécessite une attention supplémentaire lors de la mise à jour du système, car dans ce cas, après la mise à jour du référentiel, les répertoires correspondants avec les scripts R5 doivent être copiés sur toutes les machines Windows.
  2. En cas d'installation initiale ou de mises à jour ultérieures, les scripts d'initialisation ou de mise à jour de la base de données sont exécutés à partir d'ici.
  3. Les composants logiciels supplémentaires qui sont installés localement sur différentes machines (par exemple les connecteurs, les plugins, l'auditeur UDP) sont copiés et mis à jour à partir d'ici

Installation des logiciels supplémentaires nécessaires

Note : pour les systèmes redondants, faites-le sur les DEUX nœuds de stockage.

Des logiciels supplémentaires doivent être installés pour fournir et mettre à jour le dépôt de logiciels de jtel. Comme celui-ci ne peut pas être obtenu uniquement à partir des sources officielles du progiciel CentOS, d'autres sources logicielles doivent être configurées :

Translations Ignore


Code Block
languagebash
titleInstaller des sources logicielles supplémentaires - MySQL 8.x.
yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm



Translations Ignore


Code Block
languagebash
titleInstaller des sources logicielles supplémentaires - MySQL 5.6
yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm



Le logiciel requis peut alors être installé et configuré. La configuration se fait sous l'utilisateur jtel.

Translations Ignore


Code Block
languagebash
titleInstaller et configurer le GIT
yum -y install git222 mysql-community-client su jtel cd 
Code Block
titleAktivieren des rpmforge-extras Repositories
[rpmforge-extras]
...
enabled = 1

Anschließend kann die benötigte Software installiert und konfiguriert werden:

Code Block
languagebash
titleGIT installieren und konfigurieren
yum -y install git mysql-community-client
git config --global user.name "jtel Support"
 git config --global user.email "support@jtel.de"
cp ~/.gitconfig /home/jtel chown jtel:jtel /home/jtel/.gitconfig

Erstmaliges Herunterladen der jtel Software

Die folgenden Operationen erfolgen nicht mehr im Kontext des Benutzers root sondern müssen im Kontext des Benutzers jtel ausgeführt werden. Dafür kann man sich entweder in einer separaten SSH Sitzung als Benutzer jtel anmelden oder, wenn man bereits als Benutzer root angemeldet ist, in den Kontext des Benutzers jtel wechseln. Dies erfolgt durch folgenden Befehl:

Code Block
languagebash
titleBenutzerkontext wechseln
su jtel
cd

Nach Eingabe dieser Befehle erkennt man den Benutzerwechsel am Systemprompt, welches nun [jtel@acd-lb ~]$ lautet (Das Systemprompt setzt sich zusammen aus benutzername@hostname aktuelles Verzeichnis) Als nächstes werden nun die beiden Software-Repositories mit der jtel Standardsoftware heruntergeladen.

Dies erfolgt durch Eingabe folgender Befehle:

...




Si vous avez besoin d'une procuration pour le TIG :

Translations Ignore


Code Block
languagebash
titleProxy pour GIT
git config --global http.proxy http://<proxy_server>:<port>



Téléchargement du logiciel jtel pour la première fois

Note : pour les systèmes redondants, faites-le sur les nœuds de stockage ACTIFS.

Les opérations suivantes ne sont plus effectuées dans le cadre de l'utilisateur root mais doit être effectuée dans le cadre de l'utilisateur jtel. Pour ce faire, vous pouvez soit vous connecter en tant qu'utilisateur jtel dans une session SSH séparée, soit, si vous êtes déjà connecté en tant qu'utilisateur root, vous pouvez passer au contexte de l'utilisateur jtel. Cela se fait avec la commande suivante :

Translations Ignore


Code Block
languagebash
title
Herunterladen der Standard-Repositories
cd /home/jtel/shared
git clone https://git.jtel.de/scm/jtel/distribute-2.git JTEL
git clone https://git.jtel.de/scm/jtel/distribute-1.git JTELCarrierPortal

Alternativ kann die Software auch von den Entwicklungs-Repositories inklusive Quellcode bezogen werden. Hier ist allerdings die Wahrscheinlichkeit sehr hoch, dass die beiliegenden Binärdateien nicht aktuell sind. Installiert man von den Entwickler-Repositories, empfiehlt es sich die Binärdateien ad-hoc herzustellen. Das Herunterladen aus den Entwicklungs-Repositories erfolgt mit folgenden Befehlen:

...

Herunterladen der Entwicklungs-Repositories
Changer context utilisateur
su jtel cd



Après avoir entré ces commandes, vous pouvez reconnaître le changement d'utilisateur à l'invite du système, qui est maintenant [jtel@acd-lb ~]$ (l'invite du système se compose du répertoire actuel de username@hostname) L'étape suivante consiste à télécharger les deux dépôts de logiciels avec le logiciel standard de jtel.

Cela se fait en entrant les commandes suivantes :

Translations Ignore


Info
titleNouveaux lieux de dépôt

Attention : nouvelles URL de dépôt - voir ici : New Repository Locations



Translations Ignore


Code Block
languagebash
title
Télécharger les dépôts de développement
cd /
home
srv/jtel/shared
git clone https://git.jtel.de/scm/jtel/jtel.git
 
JTEL
git clone https://
git.jtel.de/scm/jtel/carrierportal_
bitbucket.org/jtelgmbh/jtel.git 
JTELCarrierPortal

Hinweis - wenn man ein Proxy für GIT braucht:

Code Block
languagebash
titleProxy für GIT
sudo
JTEL git 
config --global http.proxy http://<proxy_server>:<port>
Note
titleHinweis

Beide Befehle erfordern die Kenntnis gültiger Zugangsberechtigungen zum zentralen jtel Software-Server.

Im Falle dass für den Kunden noch spezifische Anpassungen oder Erweiterungen programmiert wurden, muss zusätzlich das Kundenspezifische Software-Repository heruntergeladen werden. Dies erfolgt exemplarisch durch einen Befehl der folgendermaßen aufgebaut ist:

Herunterladen eines kundenspezifischen Repositories
clone https://bitbucket.org/jtelgmbh/jtelcarrierportal.git JTELCarrierPortal




Dans le cas où des adaptations ou des extensions spécifiques ont été programmées pour le client, le dépôt de logiciels spécifiques au client doit également être téléchargé. Ceci est fait de manière exemplaire par une commande qui est structurée comme suit :

Translations Ignore


Code Block
languagebash
title
Télécharger un dépôt personnalisé
cd /
home
srv/jtel/shared
 git clone https://
git
bitbucket.
jtel.de
org/
scm
jtelgmbh/cacme/software.git acme

Sowohl die Ursprungs-URL als auch das Zielverzeichnis sind in diesem Fall kundenspezifisch und von Fall zu Fall verschieden.

...

Gewünschtes Release auswählen



Dans ce cas, l'URL source et le répertoire cible sont tous deux spécifiques au client et diffèrent d'un cas à l'autre.

Dans les dépôts de logiciels téléchargés, il faut maintenant sélectionner la version du logiciel à installer chez le client. Dans ce cas, il s'agit de la release 3.14 :

Translations Ignore


Code Block
languagebash
title
Sélectionnez la release souhaitée
cd /
home
srv/jtel/shared/JTELCarrierPortal
 git checkout release/stable-3.
10
18 cd /
home
srv/jtel/shared/JTEL
 git checkout release/stable-3.
10
18 cd /
home
srv/jtel/shared

...

Datenverzeichnisse vorbereiten




La dernière étape consiste à créer les répertoires pour l'enregistrement central, l'importation de données standard et le répertoire central de données :

Translations Ignore


Code Block
languagebash
title
Préparer des répertoires de données
cd /
home
srv/jtel/shared
 mkdir -p LogFiles LogFilesCall Import/{Clients,ServiceNumbers}/{Done,In,Problems}
 cp -a JTELCarrierPortal/Data .
 cp -a JTEL/Data/system/gui Data/system

Alte Installationen mit Windows Share

...

 cd /srv/jtel/shared/JTELCarrierPortal/Update bash ./get_binaries.sh



Des processus plus propres

Un travail de CRON est nécessaire pour nettoyer les répertoires du portail. 

Avec redondance, sur les deux MAGASINS. Comme le répertoire n'est monté que sur un seul, mais que nous ne savons pas lequel, la commande doit être exécutée sur les deux.

Attention : en tant que ROOT.

Translations Ignore


Code Block
languagebash
title
SMB Share v1 auf Windows ermöglichen
Des processus plus propres dans /etc/cron.daily
cat <<EOFF > /etc/cron.daily/jtel_portal_cleaner.sh find /srv/jtel/shared/Data/clients/*/reports -type f -mtime +2 -delete EOFF chmod +x /etc/cron.daily/jtel_portal_cleaner.sh
Set-SmbServerConfiguration -EnableSMB1Protocol $true