tipps und skripts aus dem leben eines connections admins
DESCRIPTION
Gekürzter Vortrag der Connect 2014 Präsentation "BP307 Practical Solutions for Connections Administrators – Tips and Scripts for Your Daily Business" Tipps und Skripts rund um die Connections Installation, Konfiguration, Dokumentation und Troubleshooting. Wir zeigen Skripte die jedem Administrator das Leben erleichtern können. Download der Skripts: http://github.com/stoeps13/ibmcnxscriptingTRANSCRIPT
![Page 1: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/1.jpg)
Adm01: Tipps und
Skripts aus dem Leben
eines Connections
Admins Christoph Stöttner, Fritz & Macziol GmbH Klaus Bild, Belsoft AG
![Page 2: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/2.jpg)
Klaus Bild
Zürcher, Heimweh Bayer, Vater von 2 Söhnen
§ Consultant
§ Fachgebiete IBM Connections & IBM Sametime
§ Windows, Linux...
Christoph Stöttner
Bayer, liebt Wandern, Vater von 2 Töchtern
§ Consultant
§ Fachgebiete IBM Connections & IBM Domino Infrastrukturen
§ Linux, Linux, Linux, Windows, System I, AIX
Über uns
![Page 3: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/3.jpg)
§ Einleitung
§ Installation und Konfiguration § Autostart
§ Performance Tuning der DataSources
§ Einrichten der J2EE Sicherheits Rollen
§ Konfigurieren der JVM Log Dateien
§ Setzen der JVM Heap Size
§ Täglicher Betrieb – Business as Usal § Testen der External ID gegen LDAP
§ Aktivieren und Deaktivieren von Benutzern
§ Synchronisation der externen Ids § Arbeiten mit Policies
§ Verschieben von Communities § Reorganisieren der Datenbanken § Backup der Datenbanken
§ Restore der Datenbanken
Agenda
![Page 4: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/4.jpg)
Über diesen Vortrag
§ IBM Connect 2014 - BP307 – Practical Solutions for Connections Administrators - Tips and Scripts for Your Daily Business
http://www.slideshare.net/ChristophStoettner/ibm-connect-2014-bp307
![Page 5: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/5.jpg)
Einleitung
§ Administration/Konfiguration einer IBM Connections Umgebung passiert zum Hauptteil über:
§ Integrated Solution Console:
§ Browserbasiert, Mausklick intensiv, träge, Zeitintensiv
§ wsadmin:
§ Verschiedene Befehlssätze für WAS/Connections, komplexe Befehle, Eingabe Fehler anfällig
-> Nutzung von Skripts um Zeit zu sparen und Fehler zu vermeiden
![Page 6: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/6.jpg)
Warnung § Mit Skripts § Shell / BASH / ZSH / KSH / SH, Jython / JACL § Powershell / Batch / VB, SQL
§ Kann man... § Viel Zeit sparen! § Sehr viel in sehr kurzer Zeit ändern/zerstören!
§ Darum sollten Sie: § Vorsicht walten lassen, zweimal Überlegen! § Backups erstellen § Ein Testsystem benutzen § Änderungen dokumentieren Die Benutzung aller Skripts auf diesen
Folien und in den angegebenen Download
Repositories erfolgt auf eigene Gefahr und
ohne Garantie!
![Page 7: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/7.jpg)
Jython § Gut lesbarer Code
§ Shell und Command Line Interpreter
§ Kann direkt in Shell getestet werden
§ Variablen: Typzuweisung unnötig, Integer mit “ oder ‘
§ Range: Praktisch für Schleifen, startet mit 0!
§ Listen
§ Dictionaries
§ if – elif – else
§ Achtung: Websphere 8 nutzt Python/Jython Version 2.1 (aktuell 3.3.5)
![Page 8: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/8.jpg)
Installation und Konfiguration
![Page 9: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/9.jpg)
Autostart IBM WebSphere Application Server § Verschiedene Möglichkeiten gefunden und diskutiert
§ Einfachster und stabilster Weg: § Deployment Manager und Node Agents als Dienst
§ Application Server über Monitoring Policy
§ Starten der Application Server über Dienst, Batch oder Skript? § Probleme mit Cluster Failover § Abhängigkeiten
§ Dienst mit wasservice.sh|bat registrieren
§ Monitoring Policy auf "Stopped" für Installation und Update!
![Page 10: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/10.jpg)
WebSphere Dienst unter Linux
![Page 11: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/11.jpg)
WebSphere Dienst unter Windows cd %WAS_HOME%/bin wasservice.bat -add Dmgr -serverName dmgr -profilePath D:\IBM\WebSphere\AppServer\profiles\Dmgr01 -encodeParams -restart true -startType automatic -stopArgs "-username wasadmin -password password" wasservice.bat -add Node -serverName nodeagent -profilePath D:\IBM\WebSphere\AppServer\profiles\AppSrv01 -encodeParams -restart true -startType automatic -stopArgs "-username wasadmin -password password –stopservers"
![Page 12: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/12.jpg)
Monitoring Policy § ISC: § jeden Application Server öffnen (1 – 15x)
§ Server – Infrastructure – Java and Process Management – Monitoring Pol.
§ "Node restart state" auf "Running" setzen
§ wsadmin:
§ cfgMonitoringPolicy.py
![Page 13: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/13.jpg)
Autostart HTTP Server § Windows Installer legt Dienst für IHS und Admin Service an § httpd.exe –k install (-c admin.conf) –n "IBM HTTP Admin"
§ Linux / AIX: § Symbolic Links
§ ln –s /opt/IBM/HTTPServer/bin/apachectl /etc/init.d/
§ ln –s /opt/IBM/HTTPServer/bin/adminctl /etc/init.d/
§ Dienst hinzufügen
§ chkconfig –add apachectl
§ chkconfig –add adminctl
![Page 14: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/14.jpg)
Performance Tuning der DataSources § Performance Tuning IBM Connections § Erhöhen der Werte für min- und maxConnections der DataSources
§ Grundlage für Werte:
§ Performance Tuning Guide IBM Connections 4.0
§ Performance Tuning Guide Addendum for 4.5
§ Diese Einstellungen sollten regelmässig mit dem “Tivoli Performance Viewer” kontrolliert werden
![Page 15: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/15.jpg)
Konfigurieren der DataSources § 18 DataSources müssen geändert werden (ca. 100 Mausklicks)
§ Wie wär es ein Skript zu nutzen:
§ wsadmin.sh -lang jython -f cfgDataSource.py
§ Dauert ca. 30 Sekunden um alle Parameter der DataSources anzupassen
![Page 16: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/16.jpg)
Konfigurieren der DataSources
![Page 17: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/17.jpg)
Einrichten der J2EE Sicherheits Rollen § Initiales setzen der Rollen über § cfgJ2EERolesRestricted.py (kein Zugriff für Anonymous)
§ cfgJ2EERolesUnRestricted.py
§ Zeitersparnis ca. 30 Minuten gegen ISC
§ Es können Benutzer und Gruppen gesetzt werden
§ Nach dem Speichern (AdminConfig.save()) starten alle Applikationen neu!
![Page 18: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/18.jpg)
J2EE Rollen für spezielle Anwendungen § Skripts für initiale Rollenkonfiguration für viele Umgebungen nicht
granular genug
§ Deaktivierung und Aktivierung für einzelne Benutzer und/oder Gruppen: § Global Moderation – cfgJ2EERoleGlobalModerator.py
§ Metrics Reader – cfgJ2EERoleMetricsReader.py
§ Metrics Report Run – cfgJ2EERoleMetricsReportRun.py
§ Mailintegration (Socialmail) – cfgJ2EERoleSocialMail.py
§ Vorsicht: auch hier starten die geänderten Applikationen neu!
![Page 19: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/19.jpg)
J2EE Rollen – Backup – cfgJ2EERoleBackup § bis Version 4.0 wurden oft bei Fixpackinstallationen die J2EE Rollen auf
Default gesetzt
§ Problem: § geschlossene Umgebungen plötzlich public
§ wurden die Einstellungen dokumentiert (wer hat welche Rolle)?
§ Skript:
§ Backup der J2EE Rollen aller Anwendungen (nicht nur Connections)
§ Backup als Text-Dateien in einem anzugebenden Ordner
![Page 20: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/20.jpg)
J2EE Rollen – Restore – cfgJ2EERoleRestore § Backup kann auch wiederhergestellt werden
§ Vorteile:
§ alle Rollen gesetzt wie zum Zeitpunkt des Backups
§ Dateien können editiert und angepasst werden (ersetzen eines Benutzers)
§ Restore von Rollenbackups eines DEV oder QA Systems
![Page 21: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/21.jpg)
Konfigurieren der JVM Logs - cfgLogFiles § Default für JVM Logs (SystemOut & SystemErr): § Grösse: 1MB
§ 5 historische Logs
§ Zu klein für Troubleshooting!
§ Besser: § 20 – 40 MB
§ 5 – 10 Log Datei Rotation
§ wsadmin.sh -lang jython -f cfgLogFiles.py
![Page 22: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/22.jpg)
Setzen der JVM Heap Size – cfgJVMHeap § Performance Tuning Guide gibt Empfehlung für JVM Max und Initial Heap
§ Konfiguration für Deployment Manager, Node Agents und Application Server
§ Monitoring über Verbose Garbage Collection § initial Heap = max Heap (bis zu 10% Performance Gewinn) § Performance Tuning Guide Addendum für 4.5 empfiehlt das Gleichsetzen der
Parameter
§ wsadmin.sh -lang jython -f cfgJVMHeap.py
§ Zeigt aktuelle Grösse der initial- und maximumHeapSize für alle JVMs an § Fragt nach Wert für initialHeapSize und maximumHeapSize für alle JVMs § “Return” lässt den Wert unverändert
![Page 23: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/23.jpg)
Konfigurieren der DataSources
![Page 24: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/24.jpg)
Täglicher Betrieb – Business as Usal
![Page 25: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/25.jpg)
Scriptumgebung einrichten § cnxMember* Skripts benutzen JDBC um Datenbanken auszulesen
§ Einfacher Weg: § %WAS_HOME%\profiles\Dmgr01\bin\setupCmdLine.bat editieren § JDBC Pfad (z.B. D:\IBM\SQLIB\java) an WAS_EXT_DIRS anhängen
§ Besser: § wsadmin.bat und setupCmdLine.bat kopieren und anpassen
§ cnxMember* Skripts anpassen § DB Benutzer § Passwort § Hostname und DB
![Page 26: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/26.jpg)
Scriptumgebung einrichten (2)
![Page 27: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/27.jpg)
Testen der External ID gegen LDAP § Manchmal können sich einzelne Benutzer nicht anmelden § oft nur einzelne Connections Apps betroffen
§ UUID und GUID nicht mehr synchron
§ Umbenennungen planen
§ Skript, welches die LDAP GUID und Connections UUID überprüft
§ cnxMemberCheckExIDByEmail
§ Skript liest die PROF_GUID der peopleDB
![Page 28: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/28.jpg)
Aktivieren und Deaktivieren von Benutzern § Nach Umbenennung und auch manchmal ohne Grund § Benutzerinformation nicht synchron über Applikationen
§ Profiles kann geöffnet werden, aber einzelne Anwendungen nicht
§ Deaktivieren und Aktivieren ist oft die Lösung
§ Manuell aufwändig, da UID und E-Mail nach Deaktivierung gesetzt werden müssen (wurden beim Deaktivieren gelöscht)
§ Skript cnxMemberDeactandActByEmail § speichert E-Mail und UID
§ JDBC notwendig
![Page 29: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/29.jpg)
Arbeiten mit Policies § Erstellen und anpassen von Policies ist meist sehr mühsam
§ Library Grösse muss als Long definiert werden (z.B. 2 GB = 2147483648L)
§ Ein Beispiel: § FilesPolicyService.edit("2d93497d-065a-4022ae25-a4b52598d11a", "My Policy",
2147483648L)
§ Um zu editieren muss die UUID der Policy herausgefunden werden, Grösse in Long berechnet und kopiert werden...
§ wsadmin.sh -lang jython -f CnxFilesPolicies.py
![Page 30: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/30.jpg)
Arbeiten mit Policies
![Page 31: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/31.jpg)
Verschieben von Communities § Seit der Connections Version 4.5 CR3 können Communities verschoben
werden (Sub-Community->Community / Community->Sub-Community)
§ Kann über wsadmin Befehl ausgeführt werden, dazu muss man aber Community ID‘s wissen
§ Einfacher über:
§ wsadmin.sh –lang jython –f cnxCommunitiesReparenting.py
![Page 32: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/32.jpg)
Verschieben von Communities
![Page 33: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/33.jpg)
DB2 – Datenbank Optimierung § Performance Tuning Guide: § Reorganisation (Ändern der physischen Datenanordnung auf HDD) sollte
immer dann durchgeführt werden, wenn eine grosse Menge an Daten hinzugefügt wurde
§ Runstat (Sammeln von Statistikdaten) sollte regelmässig durchgeführt werden, damit DB Abfragen möglichst optimal ausgeführt werden
§ Reorganisation und Runstat können mit Skripts ausgeführt werden, welche im connections.sql Verzeichnis gefunden werden
§ Es gibt auch die Möglichkeit beides über die Automatische Wartung zu konfigurieren
![Page 34: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/34.jpg)
DB2 - Reorganisieren der Datenbanken § Reorg sollte nur ausgeführt werden, wenn alle Applikationen gestoppt
sind, DBs werden Offline genommen -> während Wartungsfenstern
§ Ausführen von 10 Skripts durch unterschiedliche Aufrufe -> mühsam
§ Einfacher über Skript reorg.sh/reorg.bat
![Page 35: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/35.jpg)
DB2 - Runstats § Runstats sollte regelmässig ausgeführt werden, Applikationen dürfen
gestartet sein, DBs werden nicht Offline genommen -> während Randzeiten
§ Ausführen von 10 Skripts durch unterschiedliche Aufrufe -> mühsam
§ Einfacher über Skript runstats.sh/runstats.bat
![Page 36: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/36.jpg)
DB2 - Runstats § Erstellen eines geplanten
Tasks (Windows)
§ Erstellen eines Cron Jobs (Linux)
§ crontab -e
§ 0 1 * * * cd /opt/install/Wizards/connections.sql;./reorg.sh
§ -> Ausführen des Skripts jeden Tag um 01:00
![Page 37: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/37.jpg)
Backup der Datenbanken § Anpassen der Datenbankkonfiguration
§ db2 update database configuration for BLOGS using AUTO_DEL_REC_OBJ ON num_db_backups 1 rec_his_retentn 0 logarchmeth1 disk:D:\DB2\LOGS
§ Skript configureArchiveLogs.sh/configureArchiveLogs.bat
Automatisches Löschen von
Recovery-Objekten
Anzahl der Datenbank-
Backups
Aufbewahrungs-zeitraum für
Recoveryprotokoll
Primäre Protokollarchivie-
rungsmethode
![Page 38: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/38.jpg)
Backup der Datenbanken § Erstellen eines Offline Backup
§ Nach dem Ändern der DB Konfiguration muss zuerst ein Offline Backup erstellt werden, ansonsten können Sie (oder Websphere) nicht auf die DBs zugreifen
§ Skript backupDatabasesOffline.sh/backupDatabasesOffline.bat
![Page 39: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/39.jpg)
Backup der Datenbanken § Ab nun können Online Backup erstellt werden, sprich Backup während
des Betriebs -> geplanter Task, Cron Job
§ Skript backupDatabasesOnline.sh/backupDatabasesOnline.bat
![Page 40: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/40.jpg)
Restore der Datenbanken § Löschen der Datenbank, welche wiederhergestellt werden soll (Bsp. BLOGS)
§ DB2 drop database BLOGS
§ Die Datenbank mit dem DB Wizard neu erstellen
§ Restore der Daten mit dem Backup § db2 restore database BLOGS from /opt/db2backup REPLACE EXISTING
§ db2 restore database BLOGS LOGS from /opt/db2backup LOGTARGET /opt/db2logs
§ db2 rollforward database BLOGS to end of logs overflow log path "(/opt/db2logs)"
§ db2 rollforward database BLOGS complete overflow log path "(/opt/db2logs) “
§ Reorganisieren der Datenbank § db2 -td@ -vf reorg.sql
![Page 41: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/41.jpg)
Ressourcen
![Page 42: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/42.jpg)
Add On – cnxmenu.py § Menu für alle vorhandenen Jython Skripts
![Page 43: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/43.jpg)
Download aller gezeigter Skripts § Alle gezeigten Skripts (und weitere) können unter folgendem Link
heruntergeladen werden (Nutzung auf eigene Gefahr und ohne Garantie):
§ https://github.com/stoeps13/ibmcnxscripting
§ Seit 21. November 2013 ist diese Sammlung auch ein OpenNTF Projekt – Administration Scripts for WebSphere
§ http://preview.tinyurl.com/otmq6mj
![Page 44: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/44.jpg)
Wir sind froh um Hilfe
§ Helfen Sie uns diese Skripts zu erweitern
§ Diskutieren Sie mit uns neue Ideen
§ Sie können uns auch gerne bei folgenden Punkten unterstützen:
§ Erstellen der Dokumentation
§ Testen von Skripts in ihrer Umgebung
![Page 45: Tipps und Skripts aus dem Leben eines Connections Admins](https://reader034.vdokument.com/reader034/viewer/2022052120/540018778d7f724c088b4ae7/html5/thumbnails/45.jpg)
§ Klaus Bild
§ Skype: kbuilder
§ Twitter: kbild
§ Blog: http://kbild.ch
§ http://about.me/kbild
§ Christoph Stoettner
§ Skype: christophstoettner
§ Twitter: stoeps
§ Blog: http://www.stoeps.de
§ http://about.me/stoeps
Unsere Kontaktdaten