{"id":9057,"date":"2022-06-25T16:06:00","date_gmt":"2022-06-25T15:06:00","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=9057"},"modified":"2025-12-06T16:17:49","modified_gmt":"2025-12-06T15:17:49","slug":"hcl-cnx-6-5-manuell","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/hcl-cnx-6-5-manuell\/","title":{"rendered":"HCL Connections 6.5 Installation: Der harte Weg"},"content":{"rendered":"<p>Eine minimale HCL Connections (CNX) 6.5 Testinstallation ist das Ziel dieses Beitrags. Und zwar bewusst manuell, um ein Verst\u00e4ndnis f\u00fcr die einzelnen Komponenten mit ihrem Zusammenspiel zu schaffen. Inzwischen habe ich mit Terraform das Anlegen &amp; Provisionieren der VMs automatisiert, eben so die CNX Installation. Das ist sinnvoll, wenn man alles verstanden hat &#8211; was zu Beginn nicht der Fall sein wird.<\/p>\n<p>Gerade zu Beginn empfiehlt sich der <em>harte Weg<\/em>. Er ist zwar aufw\u00e4ndiger und kostet mehr Nerven. Doch was n\u00fctzt es, eine Umgebung automatisiert mit Skripten (von anderen) aufzusetzen &#8211; aber bei Problemen keine Ahnung zu haben? Um den Fokus auf das Wesentliche zu legen, wird in diesem Beitrag auf das Component Pack verzichtet. Es liefert in 6.5 ohnehin nur erg\u00e4nzende Funktionen wie den Customizer, die sich auf anderem Wege realisieren lassen (z.B. JSP-Anpassungen).<\/p>\n<p><strong>Hinweis<\/strong>: HCL Connections 6.5 hat sein Lebensende erreicht. Zum Stand 2025 ist mindestens Version 7, besser 8 zu empfehlen. Im Wesentlichen k\u00f6nnen die Schritte f\u00fcr CNX 6.5 angepasst (Versionsnummern in Dateinamen usw) verwendet werden. Die Installation unterscheidet sich nur im Detail.<\/p>\n<h2 class=\"wp-block-heading\">Ben\u00f6tigte Komponenten<\/h2>\n<p>Als Grundlage dienen <a title=\"die Systemanforderungen f\u00fc\" href=\"https:\/\/support.hcltechsw.com\/csm?id=kb_article&amp;sysparm_article=KB0073654\" target=\"_blank\" rel=\"nofollow\">die Systemanforderungen f\u00fc<\/a><a title=\"r\" href=\"https:\/\/support.hcltechsw.com\/csm?id=kb_article&amp;sysparm_article=KB0073654\" target=\"_blank\" rel=\"nofollow\">r<\/a> die jeweilige Version von Connections, <a title=\"in diesem Beispiel ist das 6.5 CR1\" href=\"https:\/\/support.hcltechsw.com\/csm?id=kb_article&amp;sysparm_article=KB0077297\" target=\"_blank\" rel=\"nofollow\">in diesem Beispiel ist das 6.5 CR1<\/a>. Alles hier beschriebene l\u00e4sst sich \u00e4hnlich mit den Nachfolgeversionen umsetzen. <\/p>\n<h3 class=\"wp-block-heading\">CentOS als Betriebssystem<\/h3>\n<p>Da Connections RHEL unterst\u00fctzt, verwende ich CentOS 7 als freie Alternative. Connections 6.5 ist noch nicht mit der Nachfolgeversion 8 kompatibel, wobei CentOS sich mit der Hauptversion stark ver\u00e4ndert: Aus der stabilen Distribution ist eine Rolling Release Version geworden. Daher w\u00fcrde ich zu Alma Linux oder Rocky Linux wechseln, die den urspr\u00fcnglichen Weg als stabile RHEL Bin\u00e4rkompatible Version beibehalten haben. Allerdings ist Connections 6.5 derzeit noch nicht mit RHEL 8 kompatibel, hierf\u00fcr m\u00fcsste man Connections 7 oder neuer verwenden.<\/p>\n<p>Wichtig ist zudem ein funktionierendes DNS: Jeder Server sollte einen aufl\u00f6sbaren FQDN besitzen.<\/p>\n<h3 class=\"wp-block-heading\">Datenbank<\/h3>\n<p>Connections unterst\u00fctzt nur propriet\u00e4re Datenbanken: MSSQL, IBM DB2 und Oracle. Eine DB2-Lizenz ist in Connections inklusive, daher verwenden wir dies im Folgenden.<\/p>\n<h3 class=\"wp-block-heading\">LDAP-Server<\/h3>\n<p>Connections bietet keine eigene Nutzerverwaltung. Man ben\u00f6tigt einen Verzeichnisdienst, aus dem die Benutzer (ggf. anhand bestimmter Kriterien) mittels TDI synchronisiert werden. In der Praxis d\u00fcrfte ohnehin in den meisten Unternehmen bereits ein Active Directory oder anderer Verzeichnisdienst existieren, sodass es sich anbietet, diesen zu verwenden. <\/p>\n<p>In dieser Testinstallation werden wir <strong>OpenLDAP <\/strong>nutzen, einen der verbreitetsten Verzeichnisdienste unter Linux.<\/p>\n<h3 class=\"wp-block-heading\">TDI<\/h3>\n<p>Der <strong>IBM Tivoli Directory Integrator<\/strong> (kurz <strong>TDI<\/strong>) wird periodisch unseren Verzeichnisdienst mit der Connections-Datenbank abgleichen. Man kann alle Benutzer synchronisieren oder anhand bestimmter Kriterien (z.B. LDAP-Gruppe) filtern. <\/p>\n<h3 class=\"wp-block-heading\">WebSphere Anwendungsserver<\/h3>\n<p>Der <em>WebSphere Application Server<\/em> wird genutzt, um die Java-Anwendungen von Connections zu betreiben. Auch dieses Software ist propriet\u00e4r und wird \u00fcber HCL von IBM lizenziert. Im Gegensatz zu <em>kleineren<\/em> Anwendungsservern wie z.B. Tomcat ist WebSphere auf gr\u00f6\u00dfere Cluster ausgelegt. Es gibt daher grunds\u00e4tzlich einen Deployment Manager, der als die Nodes verwaltet, auf denen die Anwendungen laufen. Man muss WebSphere nicht zwingend clustern, wenn dies nicht ben\u00f6tigt wird.<\/p>\n<h3 class=\"wp-block-heading\">IBM HTTP Server<\/h3>\n<p>Ein Fork des Apache 2.2 Webservers, der mithilfe einer Erweiterung die Verbindung zu dem oder den WebSphere-Servern aufnimmt. Mithilfe einer Erweiterung kann man WebSphere-Anwendungen darauf mappen. Er \u00fcbernimmt die Lastverteilung, ist allerdings kein vollwertiger Apache Webserver. So stehen beispielsweise nicht alle Module zur Verf\u00fcgung.<\/p>\n<h3 class=\"wp-block-heading\">Nginx mit Let&#8217;s Encrypt<\/h3>\n<p>Nginx ist ein schlanker Reverse Proxy, womit wir die automatisierten und kostenfreien Zertifikate von Let&#8217;s Encrypt nutzen k\u00f6nnen. Die Apache-Integration ist nicht mit dem IBM HTTP Server kompatibel. Der Nginx ist nicht zwingend n\u00f6tig, allerdings sollte SSL eingesetzt werden. Wer etwa eine eine eigene CA im Unternehmensumfeld besitzt, der kann entsprechend selbst ein Zertifikat erstellen, signieren und es \u00fcber ikeyman im IHS Store hinterlegen.<\/p>\n<h2 class=\"wp-block-heading\">Vorbereitung<\/h2>\n<h3 class=\"wp-block-heading\">Vorbereiten der Server<\/h3>\n<p>Zun\u00e4chst aktualisieren wir die Paketquellen und Pakete auf beiden Servern (als root):<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">yum update<\/code><\/pre>\n<p>F\u00fcr den Einstieg und die erste Testinstallation w\u00fcrde ich die grafischen Installationsassistenten verwenden, da diese einen durch die Einrichtung leiten. Zwar stehen auch Konsolenwerkzeuge zur Verf\u00fcgung, wie dies unter Linux \u00fcblich ist. Allerdings ist dies f\u00fcr den Einstieg aufgrund der Komplexit\u00e4t in meinen Augen nicht optimal. Teils ben\u00f6tigt man zumindest einmalig die grafischen Werkzeuge, um die notwendigen Konfigurationsdateien zu erstellen.<\/p>\n<p>Damit keine vollst\u00e4ndige Desktopumgebung installiert werden muss, kann man <a href=\"https:\/\/wiki.archlinux.org\/title\/OpenSSH#X11_forwarding\" title=\"mit X-Forwarding arbeiten\" target=\"_blank\" rel=\"nofollow\">mit X11-Forwarding arbeiten<\/a>.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">yum install xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-apps<\/code><\/pre>\n<p>In <strong>\/etc\/ssh\/sshd_config<\/strong> muss zudem <strong>X11Forwarding yes<\/strong> und X11UseLocalhost No gesetzt sein. Bei CentOS 7 ist dies standardm\u00e4\u00dfig der Fall, f\u00fcr \u00c4nderungen ist ein Neustart des SSH-Daemon (<strong>systemctl restart sshd<\/strong>) notwendig.<\/p>\n<p>Beim Kommandozeilen-Client aktiviert man X11-Forwarding mit dem Schalter -X<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">ssh -X user@cnx-server<\/code><\/pre>\n<p>Wer einen anderen, grafischen Client nutzt, muss in den Einstellungen der Verbindung schauen. <a href=\"https:\/\/u-labs.de\/portal\/der-beste-kostenfreie-ssh-client-fuer-windows-mobaxterm-vorgestellt-mit-10-vorteilen-fuer-dich\/\" title=\"Der BESTE kostenfreie SSH-Client f\u00fcr Windows: MobaXterm vorgestellt mit 10 Vorteilen f\u00fcr dich\">Bei MobaXterm<\/a> kann man etwa im SSH-Reiter den Haken <strong>X11-Forwarding<\/strong> setzen:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik.png\"><img loading=\"lazy\" decoding=\"async\" width=\"366\" height=\"128\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik.png\" alt=\"\" class=\"wp-image-9063\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik.png 366w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-300x105.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-70x24.png 70w\" sizes=\"auto, (max-width: 366px) 100vw, 366px\" \/><\/a><\/figure>\n<\/div>\n<p>CentOS bringt standardm\u00e4\u00dfig SELinux mit. Da dies von Connections nicht unterst\u00fctzt wird, m\u00fcssen wir es deaktivieren und anschlie\u00dfend neu starten:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">sed -i &#039;s\/SELINUX=permissive\/SELINUX=disabled\/g&#039; \/etc\/selinux\/config\nreboot<\/code><\/pre>\n<p><strong>Achtung<\/strong>: Wer dennoch eine grafische Oberfl\u00e4che verwendet (etwa bei lokalen VMs), installiert durch die Gruppe etwa Firewalld mit. dies muss eben so deaktiviert werden wie SELinux (nicht von CNX unterst\u00fctzt):<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">systemctl disable --now firewalld<\/code><\/pre>\n<p>F\u00fcr Connections und DB2 m\u00fcssen entsprechend den Anforderungen noch ein paar Limits in der Datei <strong>\/etc\/security\/limits.conf<\/strong> erh\u00f6ht werden:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">* - nproc 16384\n* - nofile 65536\n* - stack 10240<\/code><\/pre>\n<p>Wir setzen dies auf beiden Servern f\u00fcr jeden Benutzer. Produktiv w\u00fcrde man dies auf die entsprechenden Nutzer von <a href=\"https:\/\/www.ibm.com\/docs\/en\/was-nd\/8.5.5?topic=installation-preparing-red-hat-enterprise-linux-7\" title=\"WebSphere \" target=\"_blank\" rel=\"nofollow\">WebSphere <\/a>(auch <a href=\"https:\/\/help.hcltechsw.com\/connections\/v65\/admin\/install\/t_preinstall_sys.html\" title=\"f\u00fcr Connections\" target=\"_blank\" rel=\"nofollow\">f\u00fcr Connections<\/a>) und DB2 (Instanz-Eigent\u00fcmer) einschr\u00e4nken. Damit dies wirksam wird, die SSH-Sitzung schlie\u00dfen (exit) sowie neu \u00f6ffnen.<\/p>\n<p>Wenn IPv6 nicht genutzt\/ben\u00f6tigt wird, kann man es durch das setzen folgender zwei Zeilen in der Datei <strong>\/etc\/sysctl.conf<\/strong> deaktivieren:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">net.ipv6.conf.all.disable_ipv6 = 1\nnet.ipv6.conf.default.disable_ipv6 = 1<\/code><\/pre>\n<p>Danach die Datei mit sysctl -p neu laden. Damit es dadurch zu keinen Problemen in Kombination mit X-Forwarding unter SSH kommt, sollte in <strong>\/etc\/ssh\/sshd_config<\/strong> <strong>AddressFamily inet<\/strong> gesetzt sein (statt any).<\/p>\n<h3 class=\"wp-block-heading\">Download der Installationsdateien<\/h3>\n<p>Mittlerweile finden sich die meisten Installationsdateien <a href=\"https:\/\/hclsoftware.flexnetoperations.com\/flexnet\/operationsportal\/entitledDownloadFile.action?downloadPkgId=HCL_Connections_6.5&amp;orgId=HCL17813\" title=\"in der HCL Connections Gruppe des Flexnet\" target=\"_blank\" rel=\"nofollow\">in der HCL Connections Gruppe des Flexnet<\/a>. Aktualisierungen (wie z.B. CR1 f\u00fcr 6.5) finden sich <a href=\"https:\/\/hclsoftware.flexnetoperations.com\/flexnet\/operationsportal\/entitledDownloadFile.action?downloadPkgId=HCL_Connections_6.5_CRx&amp;orgId=HCL17813\" title=\"in der Connections CR Gruppe\" target=\"_blank\" rel=\"nofollow\">in der Connections CR Gruppe<\/a>. Da manche Dateien wenig sprechend benannt sind, w\u00fcrde ich diese zur besseren \u00dcbersicht in folgender Ordnerstruktur organisieren:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was ~]# tree \/opt\/install\n\/opt\/install\n\u251c\u2500\u2500 cnx\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 HCL_Connections_6.5_lin.tar\n\u251c\u2500\u2500 installation-manager\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 agent.installer.linux.gtk.x86_64_1.8.5000.20160506_1125.zip\n\u251c\u2500\u2500 HCL_Connections_6.5_lin.tar\n\u251c\u2500\u2500 lost+found\n\u2514\u2500\u2500 was\n    \u251c\u2500\u2500 CIK2HML.zip\n    \u251c\u2500\u2500 CIK2IML.zip\n    \u251c\u2500\u2500 CIK2JML.zip\n    \u2514\u2500\u2500 supplements\n        \u251c\u2500\u2500 CIK1VML.zip\n        \u251c\u2500\u2500 CIK1WML.zip\n        \u2514\u2500\u2500 CIK1XML.zip\n\n[root@cnx65-db2 ~]# tree \/opt\/install\/\n\/opt\/install\/\n\u2514\u2500\u2500 db2\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 DB2_ESE_AUSI_Activation_11.5.zip\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 v11.5.6_linuxx64_universal_fixpack.tar.gz\n\u251c\u2500\u2500 HCL_Connections_6.5_wizards_lin_aix.tar\n<\/code><\/pre>\n<h3 class=\"wp-block-heading\">IBM Installation Manager<\/h3>\n<p>Wird zur Installation von WebSphere ben\u00f6tigt, mindestens Version 1.8.5.1. Kann (noch?) nicht im Flexnet heruntergeladen werden, sondern<a href=\"https:\/\/www.ibm.com\/support\/fixcentral\/swg\/downloadFixes?parent=ibm%7ERational&amp;product=ibm\/Rational\/IBM+Installation+Manager&amp;release=1.9.2.2&amp;platform=Linux&amp;function=fixId&amp;fixids=1.9.2.2-IBMIM-LINUX-X86_64-20220323_1321&amp;includeRequisites=1&amp;includeSupersedes=0&amp;downloadMethod=http\" title=\"\" target=\"_blank\" rel=\"nofollow\"> im IBM Fix Central (IBM ID<\/a> ben\u00f6tigt).<\/p>\n<h3 class=\"wp-block-heading\">WebSphere<\/h3>\n<p>IBM WebSphere Application Server Network Deployment V8.5.5 (1 of 3) for Multiplatform Multilingual\r\nIBM WebSphere Application Server V8.5.5 Supplements (1 of 3) for Multiplatform Multilingual\r\nIBM WebSphere Application Server V8.5.5 Supplements (1 of 3) for Multiplatform Multilingual<\/p>\n<p>Jeweils alle drei Zip-Dateien herunterladen.<\/p>\n<h3 class=\"wp-block-heading\">DB2<\/h3>\n<p>DB2 11.5.6 FixPack 0 for Linux\/x86-64 (64 bit), DB2 Universal Fix Pack\r\nIBM Db2 Enterprise Server Edition &#8211; Authorized User Single Install Option &#8211; Activation 11.5 for Linux, UNIX and Windows Multilingual<\/p>\n<h3 class=\"wp-block-heading\">TDI<\/h3>\n<p>IBM Security Directory Integrator V7.2 for Linux Linux &#8211; x86-64<\/p>\n<h3 class=\"wp-block-heading\">Connections<\/h3>\n<p>HCL Connections V6.5 for Linux Multilingual\r\nHCL Connections V6.5 Wizard for Linux, AIX Multilingual\r\n<a href=\"https:\/\/epwt-www.mybluemix.net\/software\/support\/trial\/cst\/programwebsite.wss?siteId=854&amp;h=null&amp;p=null\" target=\"_blank\" rel=\"nofollow\">JDBC 3-Treiber f\u00fcr DB2<\/a> (nur bis DB2 Version 11.1 mitgeliefert, bei 11.5 ist nur der Nachfolger JDBC 4 dabei)<\/p>\n<h2 class=\"wp-block-heading\">Installation der Komponenten<\/h2>\n<h3 class=\"wp-block-heading\">OpenLDAP<\/h3>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-db2 ~]# yum install openldap-clients openldap-servers\n[root@cnx65-db2 ~]# systemctl enable --now slapd<\/code><\/pre>\n<p>F\u00fcr <a href=\"https:\/\/www.golinuxcloud.com\/install-and-configure-openldap-centos-7-linux\/\" title=\"die grundlegende Konfiguration\" target=\"_blank\" rel=\"nofollow\">die grundlegende Konfiguration<\/a> legt eine Ldiff-Datei (hier<strong> ldap-base.ldiff<\/strong>) an mit folgendem Inhalt<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"\" data-line=\"\">dn: olcDatabase={2}hdb,cn=config\nchangetype: modify\nreplace: olcSuffix\nolcSuffix: dc=u-labs,dc=de\n\ndn: olcDatabase={2}hdb,cn=config\nchangetype: modify\nreplace: olcRootDN\nolcRootDN: cn=admin,dc=u-labs,dc=de\n\ndn: olcDatabase={2}hdb,cn=config\nchangetype: modify\nreplace: olcRootPW\nolcRootPW: {SSHA}6FPF2qA2kEFqVlO2hBZYPj4s5VLc3jK3\n\ndn: olcDatabase={2}hdb,cn=config\nchangetype: modify\nreplace: olcDbIndex\nolcDbIndex: objectclass eq,pres\n\ndn: olcDatabase={2}hdb,cn=config\nchangetype: modify\nadd: olcDbIndex\nolcDbIndex: uid,ou,cn,mail,sn eq,pres,sub\n\ndn: olcDatabase={1}monitor,cn=config\nchangetype: modify\nreplace: olcAccess\nolcAccess: {0}to * by dn.base=&quot;gidNumber=0+uidNumber=0,cn=peercred,cn=external, cn=auth&quot; read by dn.base=&quot;cn=admin,dc=u-labs,dc=de&quot; read by * none\n\n<\/code><\/pre>\n<p>Sowie eine zweite Datei, um die Organisation\/Dom\u00e4ne als Objekt anzulegen (<strong>dc.ldiff<\/strong>). Wer m\u00f6chte, kann <a href=\"https:\/\/docs.oracle.com\/cd\/E19424-01\/820-4811\/baasy\/index.html\" title=\"alternativ auch eine Organisationseinheit (OU statt O)\" target=\"_blank\" rel=\"nofollow\">alternativ auch eine Organisationseinheit (OU statt O)<\/a> erstellen.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"\" data-line=\"\">dn: dc=u-labs,dc=de\nobjectClass: dcObject\nobjectClass: organization\ndc: u-labs\no: u-labs\n\ndn: o=user,dc=u-labs,dc=de\nobjectClass: organization\no: user<\/code><\/pre>\n<p><strong>olcRootPW <\/strong>ist das Passwort eures Admin-Kontos. Den Hash kann man mit <strong>slappasswd <\/strong>generieren, in diesem Beispiel wurde &#8222;cnx&#8220; verwendet. Auch das Suffix (<strong>dc=u-labs, dc=de<\/strong>) k\u00f6nnt ihr entsprechend eurer Dom\u00e4ne anpassen. Anschlie\u00dfend f\u00fcgen wir die \u00c4nderungen zusammen mit ein paar Standard-Schematas ein:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-db2 ~]# ldapmodify -Y EXTERNAL -H ldapi:\/\/\/ -f ldap-base.ldiff\n[root@cnx65-db2 ~]# ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f \/etc\/openldap\/schema\/cosine.ldif\n[root@cnx65-db2 ~]# ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f \/etc\/openldap\/schema\/nis.ldif \n[root@cnx65-db2 ~]# ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f \/etc\/openldap\/schema\/inetorgperson.ldif\n[root@cnx65-db2 ~]# ldapadd -D &quot;cn=admin,dc=u-labs,dc=de&quot; -x -W -f dc.ldiff<\/code><\/pre>\n<p>Der LDAP-Server ist damit bereit, enth\u00e4lt au\u00dfer dem Administratorkonto aber noch keine Benutzer. Daher legen wir zumindest ein paar Testbenutzer an, mit denen man sich sp\u00e4ter an Connections anmelden kann:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"\" data-line=\"\">dn: uid=ACapone,o=user,dc=u-labs,dc=de\nchangetype: add\ngivenName: Al\nsn: Capone\ntelephoneNumber: 123456789\nmail: ACapone@u-labs.de\nfacsimileTelephoneNumber: 987654321\nobjectClass: top\nobjectClass: person\nobjectClass: organizationalPerson\nobjectClass: inetorgperson\nuid: ACapone\ncn: Al Capone\nuserPassword: cnx\n\ndn: uid=mickeym,o=user,dc=u-labs,dc=de\nchangetype: add\ngivenName: Mickey\nsn: Maus\ntelephoneNumber: 1234567890\nmail: mickey@u-labs.de\nfacsimileTelephoneNumber: 987654321\nobjectClass: top\nobjectClass: person\nobjectClass: organizationalPerson\nobjectClass: inetorgperson\nuid: mickeym\ncn: Mickey Maus\nuserPassword: cnx<\/code><\/pre>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-db2 ~]# ldapadd -D &quot;cn=admin,dc=u-labs,dc=de&quot; -x -W -f users.ldiff<\/code><\/pre>\n<p>Eine Testabfrage mit <strong>ldapsearch <\/strong>sollte diese zwei Nutzer nun finden, wenn wir nach z.B. Personen suchen:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"\" data-line=\"\">[root@cnx65-db2 ~]#  ldapsearch -D &quot;cn=admin,dc=u-labs,dc=de&quot; -x -W -b &quot;dc=u-labs,dc=de&quot; &quot;objectClass=person&quot; cn\nEnter LDAP Password:\n# extended LDIF\n#\n# LDAPv3\n# base &lt;dc=u-labs,dc=de&gt; with scope subtree\n# filter: objectClass=person\n# requesting: cn\n#\n\n# ACapone, user, u-labs.de\ndn: uid=ACapone,o=user,dc=u-labs,dc=de\ncn: Al Capone\n\n# mickeym, user, u-labs.de\ndn: uid=mickeym,o=user,dc=u-labs,dc=de\ncn: Mickey Maus\n\n# search result\nsearch: 2\nresult: 0 Success\n\n# numResponses: 3\n# numEntries: 2<\/code><\/pre>\n<h3 class=\"wp-block-heading\">DB2<\/h3>\n<p>DB2 bietet einen konsolenbasierten Assistenten (<strong>db2_install<\/strong>), der allerdings nur das absolute Minimum reduziert. Er legt keine Instanz an und startet diese auch nicht automatisch. Dies k\u00f6nnte man <a href=\"https:\/\/www.pengtao.vip\/archives\/db2-databases\" title=\"manuell erg\u00e4nzend einrichten\" target=\"_blank\" rel=\"nofollow\">manuell erg\u00e4nzend einrichten<\/a>.<\/p>\n<p>Alternativ kann <strong>db2_setup <\/strong>sowohl grafisch genutzt werden, oder \u00fcber ein Response-File. Letzteres ist die praktikablere L\u00f6sung, da die grafische Variante teilweise Probleme mit sich bringt (z.B. nicht ausf\u00fcllbare Passwortfelder bei Verwendung von X-Forwarding). Das Response-File ist wie eine Konfigurationsdatei: Man gibt beispielsweise den Name der Instanz an. Anders als z.B. MySQL ist DB2 in Instanzen organisiert, in denen wiederum mehrere Datenbanken angelegt werden k\u00f6nnen. Bei vielen IBM-Programmen ist es g\u00e4ngig, die grafische Installation in ein Response-File aufzeichnen zu k\u00f6nnen.<\/p>\n<p>Zun\u00e4chst m\u00fcssen folgende Abh\u00e4ngigkeiten installiert werden:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-db2 ~]# yum install pam.i686 libaio compat-libstdc++-33.i686 libstdc++.i686 pam libaio compat-libstdc++-33 libstdc++ ksh cpp gcc gcc-c++ unzip<\/code><\/pre>\n<p>Anschlie\u00dfend entpacken wir das Installationsarchiv (diese liegen bei mir immer in <strong>\/opt\/install<\/strong>):<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-db2 ~]# cd \/opt\/install\/db2; mkdir extracted\n[root@cnx65-db2 ~]# tar -xf v11.5.6_linuxx64_universal_fixpack.tar.gz -C extracted\n[root@cnx65-db2 ~]# cd extracted\/universal<\/code><\/pre>\n<p>Das Response-File (<strong>db2.resp<\/strong>) mit folgendem Inhalt anlegen:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">*-----------------------------------------------------\n* Generated response file used by the DB2 Setup wizard\n*-----------------------------------------------------\n*  Product Installation\nLIC_AGREEMENT = ACCEPT\nPROD = DB2_SERVER_EDITION\nFILE = \/opt\/ibm\/db2\nINSTALL_TYPE = TYPICAL\n*-----------------------------------------------\n*  Das properties\n*-----------------------------------------------\nDAS_CONTACT_LIST = LOCAL\n* ----------------------------------------------\n*  Instance properties\n* ----------------------------------------------\nINSTANCE = inst1\ninst1.TYPE = ese\n*  Instance-owning user\ninst1.NAME = db2inst1\ninst1.GROUP_NAME = db2inst1\ninst1.HOME_DIRECTORY = \/home\/db2inst1\n* plain: password\ninst1.PASSWORD = cnx\ninst1.AUTOSTART = YES\ninst1.SVCENAME = db2c_db2inst1\ninst1.PORT_NUMBER = 50000\ninst1.FCM_PORT_NUMBER = 60000\ninst1.MAX_LOGICAL_NODES = 6\ninst1.CONFIGURE_TEXT_SEARCH = NO\n*  Fenced user\ninst1.FENCED_USERNAME = db2fenc1\ninst1.FENCED_GROUP_NAME = db2fadm1\ninst1.FENCED_HOME_DIRECTORY = \/home\/db2fenc1\ninst1.FENCED_PASSWORD = cnx\n*-----------------------------------------------\n*  Installed Languages\n*-----------------------------------------------\nLANG = EN<\/code><\/pre>\n<p>Dies legt grundlegende Einstellungen wie Edition, Zielpfad etc. fest und erstellt eine automatisch gestartete Instanz namens <strong>db2inst1<\/strong> und den Passwort <strong>cnx<\/strong> (entsprechend anpassen). Zus\u00e4tzlich einen <em>Fenced<\/em> Benutzer. <a href=\"http:\/\/www.databaseteam.org\/9-db2\/9b55c68f4cc920f3.htm\" title=\"Er dient zur Ausf\u00fchrung von Prozeduren und soll die Sicherheit erh\u00f6hen\" target=\"_blank\" rel=\"nofollow\">Er dient zur Ausf\u00fchrung von Prozeduren und soll die Sicherheit erh\u00f6hen<\/a>. Gestartet wird die Installation mit <strong>db2setup<\/strong> und dem Schalter <strong>-r<\/strong> f\u00fcr Response-File:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-db2 universal]# .\/db2setup -r db2.resp<\/code><\/pre>\n<p>Standardm\u00e4\u00dfig haben wir damit eine Demo-Version installiert. Da DB2 \u00fcber Connections lizenziert wird, kann man die Instanz mit der Lizenzdatei (ZIP) aus dem Flexnet aktivieren. Daf\u00fcr zun\u00e4chst das ZIP-Archiv entpacken:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-db2 db2]# cd \/opt\/install\/db2\n[root@cnx65-db2 db2]# unzip DB2_ESE_AUSI_Activation_11.5.zip<\/code><\/pre>\n<p>DB2 legt keine Benutzer im eigenen Rechtesystem an, sondern verwendet Betriebssystembenutzer. Am einfachsten ist es daher, zum beim installieren automatisch angelegten gleichnamigen Benutzer der Instanz zu wechseln. Mit <strong>db2licm -l<\/strong> kann die Lizenz gepr\u00fcft werden, hier steht standardm\u00e4\u00dfig <em>Trial<\/em> nach einer frischen Installation:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-db2 db2]# su - db2inst1\n[db2inst1@cnx65-db2]$ db2licm -l | grep type\nLicense type:                     &quot;Trial&quot;\n\n[db2inst1@cnx65-db2]$ db2licm -a \/opt\/install\/db2\/ese_u\/db2\/license\/db2ese_u.lic\nLIC1402I  License added successfully.\n\nLIC1426I  This product is now licensed for use as outlined in your License Agreement.  USE OF THE PRODUCT CONSTITUTES ACCEPTANCE OF THE TERMS OF THE IBM LICENSE AGREEMENT, LOCATED IN THE FOLLOWING DIRECTORY: &quot;\/opt\/ibm\/db2\/license\/en_US.iso88591&quot;\n\n[db2inst1@cnx65-db2 ese_u]$ db2licm -l | grep type\nLicense type:                     &quot;Authorized User Single Install&quot;<\/code><\/pre>\n<p>Schlussendlich sollte noch <a href=\"https:\/\/help.hcltechsw.com\/connections\/v6\/admin\/install\/t_inst_configuring_unicode_db2.html\" title=\"Unicode aktiviert werden\" target=\"_blank\" rel=\"nofollow\">Unicode aktiviert werden<\/a>:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[db2inst1@cnx65-db2 Wizards]$ db2set DB2CODEPAGE=1208\n[db2inst1@cnx65-db2 Wizards]$ db2stop force\n06\/10\/2022 07:15:54     0   0   SQL1064N  DB2STOP processing was successful.\nSQL1064N  DB2STOP processing was successful.\n[db2inst1@cnx65-db2 Wizards]$ db2start\n06\/10\/2022 07:16:00     0   0   SQL1063N  DB2START processing was successful.\nSQL1063N  DB2START processing was successful.\n[db2inst1@cnx65-db2 Wizards]$ db2set\nDB2COMM=TCPIP\nDB2CODEPAGE=1208\nDB2AUTOSTART=YES<\/code><\/pre>\n<p>Und den <a href=\"https:\/\/help.hcltechsw.com\/connections\/v6\/admin\/install\/t_db_create_lcuser.html\" title=\"lcuser f\u00fcr den Datenbankzugriff\" target=\"_blank\" rel=\"nofollow\">lcuser f\u00fcr den Datenbankzugriff<\/a> erstellen (mit root statt db2inst1 Benutzer):<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-db2 Wizards]# useradd -g db2inst1 lcuser\n[root@cnx65-db2 Wizards]# echo &quot;lcuser:cnx&quot; | chpasswd<\/code><\/pre>\n<h3 class=\"wp-block-heading\">TDI<\/h3>\n<p>Auch f\u00fcr den TDI legen wir wieder ein Response-File (<strong>tdi.resp<\/strong>) an. Der Pfad <strong>\/opt\/ibm\/tdi\/7.2<\/strong> ist jeweils der anpassbare Installationspfad:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">#Indicate whether the license agreement been accepted\n#----------------------------------------------------\nLICENSE_ACCEPTED=TRUE\n\n#Choose Install Folder\n#---------------------\nUSER_INSTALL_DIR=\/opt\/ibm\/tdi\/7.2\n\n#Choose Install Set\n#------------------\nCHOSEN_FEATURE_LIST=JavaDocs,Examples,Server,CE,lwi,amc\nCHOSEN_INSTALL_FEATURE_LIST=JavaDocs,Examples,Server,CE,lwi,amc\nCHOSEN_INSTALL_SET=Typical\n\n#Solutions Directory\n#-------------------\nTDI_SOLDIR_HOME=0\nTDI_SOLDIR_INSTALL=0\nTDI_SOLDIR_SELECT=0\nTDI_SOLDIR_CWD=1\n\n#Server Port Values\n#------------------\nTDI_SERVER_PORT=1099\nTDI_SYSTEM_STORE_PORT=1527\nTDI_REST_API_PORT=1098\nTDI_MQE_SYSTEMQ_PORT=61616\n\n#Register Server as Service\n#--------------------------\nTDI_REGISTER_SERVER=0\n\n#Integrated Solutions Console Port Values\n#----------------------------------------\nTDI_HTTP_PORT=13100\nTDI_HTTPS_PORT=13101\nTDI_AM_API_PORT=13104\n\n#AMC Service\n#-----------\nTDI_REGISTER_AMC=0\n\n#Install\n#-------\n-fileOverwrite_\/opt\/ibm\/tdi\/7.2\/maintenance\/UpdateInstaller.jar=Yes\n-fileOverwrite_\/opt\/ibm\/tdi\/7.2\/TDI_LUM.zip=Yes\n-fileOverwrite_\/opt\/ibm\/tdi\/7.2\/_uninst\/uninstaller.lax=Yes<\/code><\/pre>\n<p>Es folgt das Entpacken sowie die Installation mit dem Response-File:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-db2 db2]# cd \/opt\/install\/tdi; mkdir extracted\n[root@cnx65-db2 tdi]# tar -xf CIS7TML.tar -C extracted\n[root@cnx65-db2 tdi]# cd extracted\/linux_x86_64\n[root@cnx65-db2 extracted]# .\/install_sdiv72_linux_x86_64.bin -f tdi.resp -i silent<\/code><\/pre>\n<h3 class=\"wp-block-heading\">WebSphere<\/h3>\n<h4 class=\"wp-block-heading\">Abh\u00e4ngigkeiten<\/h4>\n<p>WebSphere ben\u00f6tigt folgende Abh\u00e4ngigkeiten:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was ~]# yum install gtk2 libXtst xorg-x11-fonts-Type1 psmisc<\/code><\/pre>\n<p>F\u00fcr die sp\u00e4tere Installation m\u00fcssen wir den Installation Manager von IBM entpacken:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was install]# cd \/opt\/install\/installation-manager\/\n[root@cnx65-was installation-manager]# unzip agent.installer.linux.gtk.x86_64_1.9.2002.20220323_1321.zip -d extracted\n[root@cnx65-was installation-manager]# cd extracted<\/code><\/pre>\n<p>Zur Installation gibt es mehrere M\u00f6glichkeiten: <strong>installc -c<\/strong> startet den konsolenbasierten Assistenten. Dort kann man den Standard-Zielpfad (<strong>\/opt\/IBM\/InstallationManager<\/strong>) \u00e4ndern, wobei dies i.d.R. nicht notwendig ist. Daher kann man den Modus <em>Silent Install<\/em> verwenden. Hier gen\u00fcgt es, folgenden Befehl auszuf\u00fchren:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was extracted]# .\/install -acceptLicense --launcher.ini silent-install.ini\nInstalled com.ibm.cic.agent_1.9.2002.20220323_13215 to the \/opt\/IBM\/InstallationManager\/eclipse directory.<\/code><\/pre>\n<p>Wer den IM deinstallieren m\u00f6chte, findet das Skript dazu unter <strong>\/var\/ibm\/InstallationManager\/uninstall\/uninstallc<\/strong> &#8211; dies kann direkt ausgef\u00fchrt werden, ohne weitere Parameter.<\/p>\n<h4 class=\"wp-block-heading\">WAS Installationsdateien<\/h4>\n<p>Entpackt werden diese mit ? als Platzhalter f\u00fcr den fortlaufenden Buchstabe, der als eine Art &#8222;Teildatei&#8220; genutzt wird &#8211; allerdings anscheinend auf eigene Faust. Denn im Gegensatz zu anderen Archivformaten unterst\u00fctzt ZIP keine nativen Teilarchive. Man muss daher alle Archive einzeln entpacken, dies l\u00e4sst sich mit dem Platzhalter vereinfachen:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was was]# cd \/opt\/install\/was\/\n[root@cnx65-was was]# unzip &#039;CIK2?ML.zip&#039; -d extracted<\/code><\/pre>\n<p>Eben so wird mit dem <em>Supplements<\/em> Ordner verfahren, allerdings den Dateiname entsprechend anpassen:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was was]# cd supplements\n[root@cnx65-was supplements]# unzip &#039;CIK1?ML.zip&#039; -d extracted<\/code><\/pre>\n<p>Damit lie\u00dfe sich WebSphere bereits installieren, allerdings die Ursprungsversion 8.5.5.0 ohne Fixpack. Diese ist von 2013 und damit stark veraltet. Beispielsweise kommt man nicht auf die ISC, da die verwendeten kryptografischen Verfahrungen f\u00fcr TLS seit Jahren veraltet sind. Es macht daher Sinn, das aktuellste unterst\u00fctzte Fixpack (f\u00fcr CNX 6.5 ist das FP 20) ebenfalls zu entpacken. Fixpacks gibt es f\u00fcr WebSphere selbst und die Erweiterungen im Supplements-Paket.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was ~]# cd \/opt\/install\/was\/fixpack\/\n[root@cnx65-was fixpack]# unzip &#039;8.5.5-WS-WAS-FP020-part?.zip&#039; -d was\n\n[root@cnx65-was fixpack]# unzip &#039;8.5.5-WS-WASSupplements-FP020-part?.zip&#039; -d supplements<\/code><\/pre>\n<p>Die Installation selbst erfolgt \u00fcber die Konsolenvariante des Installation Managers unter <strong>\/opt\/IBM\/InstallationManager\/eclipse\/tools\/imcl<\/strong>. Installationsdateien f\u00fcr den IM werden in <em>Repositories<\/em> abgelegt. Jeder soeben entpackte Ordner ist ein Repository, zu erkennen an der Datei <strong>repository.config<\/strong> im Wurzelverzeichnis. Mit dem Befehl listAvailablePackages k\u00f6nnen wir uns die Pakete auflisten lassen, die in einem (oder mehreren mit Komma getrennten) Pfaden zu Repositories verf\u00fcgbar sind:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was ~]# \/opt\/IBM\/InstallationManager\/eclipse\/tools\/imcl listAvailablePackages -repositories \/opt\/install\/was\/extracted,\/opt\/install\/was\/supplements\/extracted\ncom.ibm.websphere.ND.v85_8.5.5000.20130514_1044\ncom.ibm.websphere.APPCLIENT.v85_8.5.5000.20130514_1044\ncom.ibm.websphere.IHS.v85_8.5.5000.20130514_1044\ncom.ibm.websphere.PLG.v85_8.5.5000.20130514_1044\ncom.ibm.websphere.PLUGCLIENT.v85_8.5.5000.20130514_1044\ncom.ibm.websphere.WCT.v85_8.5.5000.20130514_1044<\/code><\/pre>\n<p>Das erste Paket <strong>com.ibm.websphere.ND.v85_8.5.5000.20130514_1044<\/strong> stammt aus dem WebSphere-Repository (<em>\/opt\/install\/was\/extracted<\/em>). Alle anderen aus dem Supplements-Repository (<em>\/opt\/install\/was\/supplements\/extracted<\/em>), in denen der IBM HTTP Server (IHS) sowie das Plugin enthalten ist.<\/p>\n<h4 class=\"wp-block-heading\">Installation WAS und dem Deployment Manager<\/h4>\n<p>Ebenfalls mit <strong>imcl <\/strong>kann man besagtes Paket installieren. Daf\u00fcr reicht das erste Repository, da wir f\u00fcr WebSphere selbst das Supplements-Paket noch nicht ben\u00f6tigen. Allerdings macht es Sinn, den Pfad zum Fixpack-Repository mit anzugeben: Durch den Parameter <strong>-installFixes<\/strong> wird das Fixpack im Anschluss automatisch installiert, sodass wir <a href=\"https:\/\/u-labs.de\/portal\/fixpacks-fp-fuer-ibm-websphere-installieren-headless-auf-der-konsole\/\" title=\"Fixpacks (FP) f\u00fcr IBM WebSphere installieren (headless auf der Konsole)\">kein h\u00e4ndisches Update<\/a> durchf\u00fchren m\u00fcssen. Die Buildnummer mit Zeitstempel aus dem Paketname (<em>5000.20130514_1044<\/em>) sind nicht n\u00f6tig. Der letzte Parameter <strong>-showProgress<\/strong> zeigt eine Fortschrittsanzeige:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was ~]# \/opt\/IBM\/InstallationManager\/eclipse\/tools\/imcl install com.ibm.websphere.ND.v85 -repositories \/opt\/install\/was\/extracted,\/opt\/install\/was\/fixpack\/was -acceptLicense -showProgress -installFixes recommended\n                 25%                50%                75%                100%\n------------------|------------------|------------------|------------------|\n............................................................................\nInstalled com.ibm.websphere.ND.v85_8.5.5000.20130514_1044 to the \/opt\/IBM\/WebSphere\/AppServer directory.<\/code><\/pre>\n<p>Das <strong>versionInfo.sh<\/strong> Skript sollte das entsprechende FP (hier 20, d.H. 8.5.5.<strong>20<\/strong>) anzeigen:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was fixpack]# \/opt\/IBM\/WebSphere\/AppServer\/bin\/versionInfo.sh\n...\nName                  IBM WebSphere Application Server Network Deployment\nVersion               8.5.5.20\nID                    ND\nBuild Level           cf202127.02\nBuild Date            7\/8\/21\nPackage               com.ibm.websphere.ND.v85_8.5.5020.20210708_1826<\/code><\/pre>\n<p>Zum Vergleich dazu die Installation der 8.5.5.0 ohne Fixpack (so sollte es nicht aussehen):<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">...\nInstalled Product\n--------------------------------------------------------------------------------\nName                  IBM WebSphere Application Server Network Deployment\nVersion               8.5.5.0\nID                    ND\nBuild Level           gm1319.01\nBuild Date            5\/14\/13\nPackage               com.ibm.websphere.ND.v85_8.5.5000.20130514_1044<\/code><\/pre>\n<p>Wir m\u00fcssen im folgenden mindestens zwei Profile anlegen: Zun\u00e4chst der Deployment Manager. Ein typischer Standardname ist Dmgr01, wobei dieser frei w\u00e4hlbar ist. Der Hostname wird mit dem eures WAS-Servers setzt. Die Admin-Zugangsdaten dienen f\u00fcr den sp\u00e4teren Zugriff auf die ISC.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was fixpack]# cd \/opt\/IBM\/WebSphere\/AppServer\/bin\n[root@cnx65-was bin]# .\/manageprofiles.sh -create -profileName Dmgr01 -profilePath \/opt\/IBM\/WebSphere\/AppServer\/profiles\/Dmgr01 -templatePath \/opt\/IBM\/WebSphere\/AppServer\/profileTemplates\/management\/ -cellName CnxCell -HostName cnx65-was.u-labs.de -enableAdminSecurity true -adminUserName wasadmin -adminPassword adminwas\nINSTCONFSUCCESS: Success: Profile Dmgr01 now exists. Please consult \/opt\/IBM\/WebSphere\/AppServer\/profiles\/Dmgr01\/logs\/AboutThisProfile.txt for more information about this profile.<\/code><\/pre>\n<p>Im angegebenen Pfad sollte nun ein Profil namens <strong>Dmgr01 <\/strong>angelegt worden sein. Dies kann \u00fcber <strong>startManager.sh<\/strong> im bin Ordner gestartet werden:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was bin]# cd \/opt\/IBM\/WebSphere\/AppServer\/profiles\/Dmgr01\/bin\/\n[root@cnx65-was bin]# .\/startManager.sh\n...\nADMU3000I: Server dmgr open for e-business; process id is 8218<\/code><\/pre>\n<p>Damit ist die ISC im Browser \u00fcber <strong>https:\/\/cnx-host:9043\/ibm\/console<\/strong> erreichbar. Dort erscheint ein Zertifikatsfehler, da WAS standardm\u00e4\u00dfig ein selbst signiertes Zertifikat benutzt. <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"922\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-1.png\" alt=\"\" class=\"wp-image-9074\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-1.png 1000w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-1-300x277.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-1-768x708.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-1-70x65.png 70w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><\/figure>\n<\/div>\n<p>\u00dcber <em>Erweitert<\/em> kann man fortfahren und mit dem zuvor erstellten Admin-Konto (hier im Beispiel wasadmin:adminwas) sich anmelden:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"884\" height=\"573\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-2.png\" alt=\"\" class=\"wp-image-9075\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-2.png 884w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-2-300x194.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-2-768x498.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-2-70x45.png 70w\" sizes=\"auto, (max-width: 884px) 100vw, 884px\" \/><\/a><\/figure>\n<\/div>\n<h4 class=\"wp-block-heading\">Einrichtung des WAS-Nodes<\/h4>\n<p>Der Deployment Manager ist zur Verwaltung gedacht. F\u00fcr die eigentlichen Anwendungen von Connections wird ein Node (<strong>CnxNode01<\/strong>) eingerichtet, in diesem Beispiel auf dem gleichen Server. Theoretisch k\u00f6nnte dieser aber auch auf einem anderen Host liegen.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was bin]# cd \/opt\/IBM\/WebSphere\/AppServer\/bin\n[root@cnx65-was bin]# .\/manageprofiles.sh -create -profileName CnxNode01 -profilePath \/opt\/IBM\/WebSphere\/AppServer\/profiles\/CnxNode01 -templatePath \/opt\/IBM\/WebSphere\/AppServer\/profileTemplates\/managed -cellName CnxCell01 -HostName cnx65-was.u-labs.de -nodeName CnxNode01 -enableAdminSecurity true -adminUserName wasadmin -adminPassword adminwas\nINSTCONFSUCCESS: Success: Profile CnxNode01 now exists. Please consult \/opt\/IBM\/WebSphere\/AppServer\/profiles\/CnxNode01\/logs\/AboutThisProfile.txt for more information about this profile.\n<\/code><\/pre>\n<p>Dieser neue Node CnxNode01 ist bisher allerdings nicht mit dem Deployment Manager verbunden. Um das zu \u00e4ndern, wird <strong>addNode.sh<\/strong> ausgef\u00fchrt. 127.0.0.1 ist die Adresse des Deployment Managers &#8211; hier localhost, da beide auf dem gleichen Server betrieben werden.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was bin]# .\/addNode.sh 127.0.0.1 8879 -conntype SOAP -username wasadmin -password adminwas -profileName CnxNode01\nADMU0116I: Tool information is being logged in file\n           \/opt\/IBM\/WebSphere\/AppServer\/profiles\/CnxNode01\/logs\/addNode.log\nADMU0128I: Starting tool with the CnxNode01 profile\n...\n\nADMU0300I: The node CnxNode01 was successfully added to the CnxCell cell.<\/code><\/pre>\n<p>In der ISC taucht der Node nun auf:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"902\" height=\"358\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-3.png\" alt=\"\" class=\"wp-image-9076\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-3.png 902w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-3-300x119.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-3-768x305.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-3-70x28.png 70w\" sizes=\"auto, (max-width: 902px) 100vw, 902px\" \/><\/a><\/figure>\n<\/div>\n<h3 class=\"wp-block-heading\">Connections Datenbanken<\/h3>\n<p>Bevor Connections installiert (d.H. die Anwendungen auf WebSphere deployen) wird, m\u00fcssen vorbereitend die Datenbanken angelegt werden. Dies geschieht auf dem Datenbankserver:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-db2 install]# cd \/opt\/install\n[root@cnx65-db2 install]# tar -xf HCL_Connections_6.5_wizards_lin_aix.tar\n[root@cnx65-db2 install]# cd Wizards\n[root@cnx65-db2 Wizards]# chmod +x dbWizard.sh jvm\/linux\/jre\/bin\/*\n[root@cnx65-db2 Wizards]# chown db2inst1 . -R\n\n[db2inst1@cnx65-db2 Wizards]$ cp samples\/dbWizard_response.properties cnx-db.resp<\/code><\/pre>\n<p>In <strong>samples\/dbWizard_response.properties<\/strong> befindet sich eine Vorlage, aus der sich ein Response-File zur Installation erstellen l\u00e4sst. Wichtig ist hier vor allem der Installationspfad zur Datenbank (<strong>dbHome)<\/strong>, deren Administratorzugang (<strong>administrator<\/strong>\/<strong>adminPassword<\/strong>) und der Pfad zur Java-Bibliothek, mit dem sich eine Verbindung zur DB2 herstellen l\u00e4sst (<strong>jdbcLibPath<\/strong>). Aus lizenztechnischen Gr\u00fcnden befindet sich diese Bibliothek nicht im Lieferumfang von Connections. Auf Basis der Vorlage wird folgendes Response-File (<strong>cnx-db.resp<\/strong>) angelegt:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\"># *****************************************************************\n#\n# IBM Confidential\n#\n# OCO Source Materials\n#\n# Copyright IBM Corp. 2010, 2015\n#\n# The source code for this program is not published or otherwise\n# divested of its trade secrets, irrespective of what has been\n# deposited with the U.S. Copyright Office.\n#\n# *****************************************************************\n\n###########################################################################\n# The value can be: db2 | oracle | sqlserver\n###########################################################################\ndbtype=db2\n\n###########################################################################\n# The value is the instance name which your want to create your database.\n###########################################################################\ndbInstance=db2inst1\n\n###########################################################################\n# Specify the database installed location.\n###########################################################################\ndbHome=\/opt\/ibm\/db2\n\n###########################################################################\n# The value can be: create | delete | upgrade\n# create : create database.\n# delete : delete database.\n# upgrade: upgrade database.\n###########################################################################\naction=create\n\n###########################################################################\n# The feature you selected. Use &quot;,&quot; to separate.\n# The value can be: activities, blogs, communities, dogear, homepage,\n# wikis, files, forum, profiles, mobile, metrics, cognos, library\n# cognos and library cannot be listed in features when action=upgrade\n###########################################################################\nfeatures=activities,blogs,communities,dogear,homepage,wikis,files,forum,profiles,mobile,metrics,cognos,library\n\n###########################################################################\n# Database server port used for JDBC invocation\n# DB2 default is 50000\n# Oracle default is 1521\n# SQLServer default is 1433\n###########################################################################\nport=50000\n\n###########################################################################\n# Database administrator account used for JDBC invocation\n# DB2 default on Windows is db2admin, on Linux\/AIX is db2inst1\n# Oracle default is system\n# SQLServer default is sa\n###########################################################################\nadministrator=db2inst1\n\n###########################################################################\n# Database administror password used for JDBC invocation\n###########################################################################\nadminPassword=cnx\n\n###########################################################################\n# JDBC library path used for JDBC invocation on SQLServer only\n###########################################################################\njdbcLibPath=\/opt\/ibm\/db2\/java\/db2jcc4.jar\n\n###########################################################################\n# Password is Only needed for oracle and sqlserver when creating or updating database.\u00a0 The password will be removed\n#\u00a0after finishing task for the reponse file &quot;response\\dbWizard\\response.properties&quot;.\n###########################################################################\nhomepage.password=\nactivities.password=\nblogs.password=\ndogear.password=\ncommunities.password=\nprofiles.password=\nwikis.password=\nfiles.password=\nforum.password=\nmobile.password=\nmetrics.password=\ncognos.password=\nlibrary.password=\npushnotification.password=\n###########################################################################\n# file path is only needed for sqlserver when creating or updating database, it is the\n# directory where user want to store the database files.\n###########################################################################\nprofiles.filepath=C\\:\\\\yourPath\nblogs.filepath=\ndogear.filepath=\ncommunities.filepath=\nhomepage.filepath=\nactivities.filepath=\nwikis.filepath=\nfiles.filepath=\nforum.filepath=\nmobile.filepath=\nmetrics.filepath=\ncognos.filepath=\nlibrary.filepath=\npushnotification.filepath=\n###########################################################################\n# The value can be:\n#  For db2:9.7 or 10.0\n#  For Oracle: 10 or 11\n#  For sqlserver: 9.0 or 10.0\n###########################################################################\ndbVersion=11.5\n<\/code><\/pre>\n<p>Um damit die Installation zu starten, <strong>dbWizard.sh<\/strong> aufrufen:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[db2inst1@cnx65-db2 Wizards]$ .\/dbWizard.sh -silent cnx-db.resp\nStart the task in silent mode.\nResponse file is set to cnx-db.resp.\nCreate IBM Connections database\n...<\/code><\/pre>\n<p>Das Anlegen und Einrichten der Datenbanken dauert mindestens etwa 20 Minuten, je nach verwendeter Hardware auch l\u00e4nger. Am Ende sollte bei jeder Datenbank <em>The database creation was successful<\/em> in der Ausgabe stehen.<\/p>\n<h3 class=\"wp-block-heading\">Connections TDI Konfiguration<\/h3>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\"># ToDo: Wird im GUI Assistenten des TDI abgefragt - pruefen, ob dieser Schritt per CLI notwendig ist\n[root@cnx65-db2 db2]# tar -xf v11.1.4fp7_jdbc_sqlj.tar.gz\n[root@cnx65-db2 jdbc_sqlj]# unzip db2_db2driver_for_jdbc_sqlj.zip\n[root@cnx65-db2 jdbc_sqlj]# cp db2jcc.jar \/opt\/ibm\/db2\/java\/<\/code><\/pre>\n<p>Hierf\u00fcr werden Konfigurationsdateien aus der <strong>tdisol.tar<\/strong> ben\u00f6tigt, die sich wiederum im Installationsarchiv von Connections (<em>HCL_Connections_6.5_lin<\/em>.tar) befindet. Wir entpachen dieses Archiv daher auf dem WAS-Server, da wir die anderen Dateien dort sp\u00e4ter ebenfalls ben\u00f6tigen. Mit rsync l\u00e4sst sich die <strong>tdisol.tar<\/strong> nach <strong>\/opt\/install<\/strong> auf dem zweiten Server (DB2) hochladen.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was ~]# cd \/opt\/install\/cnx\n[root@cnx65-was cnx]# tar -xf HCL_Connections_6.5_lin.tar\n[root@cnx65-was cnx]# rsync -azP HCL_Connections_Install\/tools\/tdisol.tar cnx65-db2.u-labs.de:\/opt\/install\/<\/code><\/pre>\n<p>Anschlie\u00dfend das Archiv entpacken und in den Basisodner des TDI unterhalb von <strong>\/opt<\/strong> verschieben:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-db2 install]# tar -xf tdisol.tar\n[root@cnx65-db2 install]# mv TDI \/opt\/ibm\/tdi\/tdisol\n[root@cnx65-db2 install]# cd \/opt\/ibm\/tdi\/tdisol<\/code><\/pre>\n<p>In der Datei tdienv.sh befindet sich ein Fehler: Sie referenziert standardm\u00e4\u00dfig noch auf die Vorversion 7.1.1, obwohl wir 7.2 nutzen. Daher muss man folgenden Pfad von Hand korrigieren:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">export TDIPATH=\/opt\/IBM\/TDI\/V7.1.1<\/code><\/pre>\n<p>Es folgt die grundlegende Konfiguration des TDI in <strong>profiles_tdi.properties<\/strong>:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">source_ldap_url=ldap:\/\/localhost:389\nsource_ldap_search_base=o=user,dc=u-labs,dc=de\nsource_ldap_search_filter=(objectClass=person)\nsource_ldap_user_login=cn=admin,dc=u-labs,dc=de\n{protect}-source_ldap_user_password=cnx\n\ndbrepos_jdbc_url=jdbc:db2:\/\/localhost:50000\/peopledb\ndbrepos_jdbc_driver=com.ibm.db2.jcc.DB2Driver\ndbrepos_username=db2inst1\n{protect}-dbrepos_password=cnx<\/code><\/pre>\n<p>Das gen\u00fcgt als Basis f\u00fcr ein Testsystem &#8211; jeder LDAP-Benutzer in der <strong>user<\/strong> Organisation wird dadurch in die Benutzerdatenbank synchronisiert. Der TDI kann aber noch deutlich mehr, wie teils auch an den weiteren Beispielen deutlich wird. Nachdem wir alle Skripte ausf\u00fchrbar gemacht haben, eignet sich das <strong>collect_dns.sh<\/strong> Skript f\u00fcr einen ersten Testlauf: Es sammelt alle Nutzer die auf den Filter zutreffend ein und schreibt sie in <strong>collect.dns<\/strong>. Dabei findet noch keine Synchronisation statt &#8211; somit testen wir vorerst nur die LDAP-Konfiguration und Verbindung. Entsprechend der Anzahl an (Test-) Benutzern auf dem LDAP-Server sollte diese Nutzer vorhanden sein, hier zwei:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-db2 tdisol]# chmod +x *.sh netstore\n[root@cnx65-db2 tdisol]# .\/collect_dns.sh\nCLFRN1280I: 20220610104053 Iterations total number: 2.\n[root@cnx65-db2 tdisol]# cat collect.dns\nuid=ACapone,o=user,dc=u-labs,dc=de\nuid=mickeym,o=user,dc=u-labs,dc=de<\/code><\/pre>\n<p>Der n\u00e4chste Schritt ist eine vollst\u00e4ndige Synchronisation. Hierf\u00fcr muss noch das Id-Attribut in der Datei <strong>map_dbrepos_from_source.properties<\/strong> angepasst werden, da die Standardkonfiguration von Domino ausgeht:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">guid=uid\n# Statt \n#guid=ibm-entryUuid<\/code><\/pre>\n<p>Wird nun die Synchronisation mit <strong>sync_all_dns.sh<\/strong> gestartet, holt sich der TDI die Benutzer aus dem LDAP und gleicht sie mit den Connections-Benutzern ab. Da alle Benutzer neu sind, sollten sie als hinzugef\u00fcgt\/modifiziert vermerkt werden:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-db2 tdisol]# .\/sync_all_dns.sh\n...\nCLFRN0037I: After synchronization, added or modified records is 2, deleted or inactivated records is 0, unchanged records 0, and failure records is 0.<\/code><\/pre>\n<h3 class=\"wp-block-heading\">Connections-Anwendungen installieren<\/h3>\n<p>Connections selbst besteht aus mehreren Anwendungen, die auf verschiedenen Anwendungsservern (JVMs) installiert werden.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was cnx]# mkdir -p \/opt\/IBM\/DB2\/java\n[root@cnx65-was cnx]# rsync -azP cnx65-db2.u-labs.de:\/opt\/ibm\/db2\/java\/ \/opt\/IBM\/DB2\/java<\/code><\/pre>\n<p>Das Passwort des WebSphere Administratorkontos (wasadmin) darf nicht im Klartext \u00fcbergeben werden. Man muss es zun\u00e4chst <a href=\"https:\/\/help.hcltechsw.com\/connections\/v65\/admin\/install\/t_silent_create_encrypted_passwords.html\" title=\"mit imutilsc verschl\u00fcsseln\" target=\"_blank\" rel=\"nofollow\">mit <strong>imutilsc<\/strong> <em>verschl\u00fcssel<\/em>n<\/a>. Im folgenden Beispiel geschieht dies mit unserem Beispiel-Kennwort <strong>adminwas<\/strong>:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was cnx]# \/opt\/IBM\/InstallationManager\/eclipse\/tools\/imutilsc encryptString adminwas -silent -noSplash\nhyDz8CktIliBlf7Vfsj+kg==<\/code><\/pre>\n<p>Als Grundlage f\u00fcr das Response-File dient <strong>HCL_Connections_Install\/IM\/LC.rsp<\/strong>. Da dies etwas un\u00fcbersichtlich ist und man verschiedene Dinge mehrfach angeben muss, habe ich es etwas \u00fcberarbeitet. Alle Dinge die ihr ggf. an eure Umgebung anpassen m\u00fcsst, befinden sich oben in Variablen.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was cnx]# \/opt\/IBM\/InstallationManager\/eclipse\/tools\/imcl -input \/opt\/install\/cnx\/cnx.resp -log \/var\/log\/cnx-install.log -acceptLicense\nInstalled com.ibm.connections_6.5.0.0_20191121_2323 to the \/opt\/HCL\/Connections directory.<\/code><\/pre>\n<h3 class=\"wp-block-heading\">IBM HTTP Server installieren<\/h3>\n<p>Insgesamt m\u00fcssen drei IBM-Pakete installiert werden: IHS f\u00fcr den IBM HTTP Server, PLG enth\u00e4lt das IHS-Plugin f\u00fcr die Kommunikation mit WebSphere und die Toolbox (WCT) stellt Werkzeuge zur Konfiguration des Plugins bereit.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was cnx]# \/opt\/IBM\/InstallationManager\/eclipse\/tools\/imcl install com.ibm.websphere.IHS.v85 -repositories \/opt\/install\/was\/supplements\/extracted,\/opt\/install\/was\/fixpack\/supplements -acceptLicense -showProgress -installFixes recommended -properties &quot;user.ihs.httpPort=80&quot;\ncom.ibm.websphere.IHS.v85_8.5.5020.20210708_1826 wird in das Verzeichnis \/opt\/IBM\/HTTPServer installiert.\n\n[root@cnx65-was cnx]# \/opt\/IBM\/InstallationManager\/eclipse\/tools\/imcl install com.ibm.websphere.PLG.v85 -repositories \/opt\/install\/was\/supplements\/extracted,\/opt\/install\/was\/fixpack\/supplements -acceptLicense -showProgress -installFixes recommended\ncom.ibm.websphere.PLG.v85_8.5.5020.20210708_1826 wird in das Verzeichnis \/opt\/IBM\/WebSphere\/Plugins installiert.\n\n[root@cnx65-was cnx]# \/opt\/IBM\/InstallationManager\/eclipse\/tools\/imcl install com.ibm.websphere.WCT.v85 -repositories \/opt\/install\/was\/supplements\/extracted,\/opt\/install\/was\/fixpack\/supplements -acceptLicense -showProgress -installFixes recommended\ncom.ibm.websphere.WCT.v85_8.5.5000.20130514_1044 wird in das Verzeichnis \/opt\/IBM\/WebSphere\/Toolbox installiert.<\/code><\/pre>\n<p>Zwei Abh\u00e4ngigkeiten sind f\u00fcr WCT n\u00f6tig:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was cnx]# yum install glibc.i686 libgcc.i686<\/code><\/pre>\n<p>Nach der Installation wechseln wir zum IBM HTTP Server (IHS), um eine neue Schl\u00fcsseldatenbank zu erzeugen. Im Gegensatz zu Apache und anderen Webservern wird im IHS ein SSL-Modul von IBM verwendet. Dies erh\u00e4lt nicht direkt Zertifikat mit dem dazugeh\u00f6rigen privaten Schl\u00fcssel, sondern speichert beide in einer Schl\u00fcsseldatenbank. F\u00fcr die Testumgebung wird eine neue Datenbank zusammen mit einem selbst signierten Zertifikat angelegt:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was cnx]# cd \/opt\/IBM\/HTTPServer\/bin\n[root@cnx65-was cnx]# .\/gskcapicmd -keydb -create -db \/opt\/IBM\/HTTPServer\/conf\/key.db -pw cnx -stash\n[root@cnx65-was cnx]# .\/gskcmd -cert -create -db \/opt\/IBM\/HTTPServer\/conf\/key.db -stashed -size 2048 -dn CN=cnx65-was.u-labs.de,OU=tests,C=DE -label cnx65-was.u-labs.de -default_cert yes -sig_alg SHA512WithRSA -expire 365 -ca true<\/code><\/pre>\n<p>Standardm\u00e4\u00dfig ist SSL im IHS deaktiviert. In der httpd.conf muss SSL daher mit dem dazugeh\u00f6rigen IBM-Modul aktiviert werden. Au\u00dferdem ist ein Verweis auf die soeben erstellte Datenbank n\u00f6tig. An dieser Stelle k\u00fcmmere ich mich auch immer gleich um die Weiterleitung, da standardm\u00e4\u00dfig der IHS beim Aufruf des Wurzel-Verzeichnis (also https:\/\/hostname.de ohne Pfad) eine Willkommensseite anzeigt. Durch die Umleitung auf <strong>\/homepage <\/strong>erscheint stattdessen die Connections Startseite.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was cnx]# cd ..\/conf\n[root@cnx65-was cnx]# vim httpd.conf\n# Ans Ende Einfuegen\nLoadModule ibm_ssl_module modules\/mod_ibm_ssl.so\nListen 443\n&lt;VirtualHost *:443&gt;\n  SSLEnable\n  RedirectMatch &quot;^\/$&quot; &quot;\/homepage&quot;\n&lt;\/VirtualHost&gt;\nKeyFile \/opt\/IBM\/HTTPServer\/conf\/key.db\nSSLDisable\n\n[root@cnx65-was cnx]# ..\/bin\/apachectl -k start<\/code><\/pre>\n<p>Als Vorbereitung zur Verkn\u00fcpfung des IHS mit WAS wird folgendes Response-File (plugin.resp) ben\u00f6tigt:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\"># https:\/\/www.ibm.com\/support\/knowledgecenter\/SSEQTP_9.0.5\/com.ibm.websphere.base.doc\/ae\/tins_pctcl_using.html\nconfigType=remote\nenableAdminServerSupport=true\nenableUserAndPass=true\nenableWinService=false\nihsAdminCreateUserAndGroup=true\nihsAdminUserID=ihsadmin\nihsAdminPassword=adminihs\nihsAdminPort=8008\nihsAdminUnixUserGroup=ihsadmin\nihsAdminUnixUserID=ihsadmin\nmapWebServerToApplications=true\nwasMachineHostname=cnx65-was.u-labs.de\nwebServerConfigFile1=\/opt\/IBM\/HTTPServer\/conf\/httpd.conf\nwebServerDefinition=webserver1\nwebServerHostName=cnx65-was.u-labs.de\nwebServerOS=Linux\nwebServerPortNumber=80\n# Lower seems required for proper parsing, see https:\/\/stackoverflow.com\/a\/60608447\/3276634 - seems not having a diference, but matching the specs is always better\nwebServerSelected=ihs\nwebServerType=IHS<\/code><\/pre>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was cnx]# cd \/opt\/IBM\/WebSphere\/Toolbox\/WCT\n[root@cnx65-was cnx]# .\/wctcmd.sh -tool pct -createDefinition -defLocPathname \/opt\/IBM\/WebSphere\/Plugins -response plugin.resp -defLocName webserver1 \n...\nDas Tool wurde erfolgreich ausgef\u00fchrt.<\/code><\/pre>\n<p>In meinem Ansible-Projekt kam es gelegentlich vor, dass die Admin-Konfiguration nicht sauber erstellt wurde. Um dies zu pr\u00fcfen, in dessen Konfiguration nach dem Platzhalter <strong>@@AdminPort@@<\/strong> suchen. Hat alles funktioniert, gibt es keine Treffer (leere Ausgabe):<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was cnx]# grep @@AdminPort@@ \/opt\/IBM\/HTTPServer\/conf\/admin.conf\n\n<\/code><\/pre>\n<h4 class=\"wp-block-heading\">Hinzuf\u00fcgen des Webservers in der ISC<\/h4>\n<p><strong>System administration &gt; Nodes &gt; Add Node &gt; Unmanaged node<\/strong>, dann OK.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"350\" height=\"414\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-4.png\" alt=\"\" class=\"wp-image-9084\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-4.png 350w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-4-254x300.png 254w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-4-59x70.png 59w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><\/a><\/figure>\n<\/div>\n<p><strong>Servers &gt; Server Types &gt; Web Servers &gt; New<\/strong>, hier verwenden wir den zuvor bereits genutzten Name <strong>webserver1<\/strong>:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"777\" height=\"367\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-5.png\" alt=\"\" class=\"wp-image-9085\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-5.png 777w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-5-300x142.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-5-768x363.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-5-70x33.png 70w\" sizes=\"auto, (max-width: 777px) 100vw, 777px\" \/><\/a><\/figure>\n<\/div>\n<p>Template <strong>IHS<\/strong>. In Schritt 3 den zuvor angelegten Administrationsbenutzer (hier ihsadmin\/adminihs) angeben<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-6.png\"><img loading=\"lazy\" decoding=\"async\" width=\"695\" height=\"569\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-6.png\" alt=\"\" class=\"wp-image-9086\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-6.png 695w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-6-300x246.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-6-70x57.png 70w\" sizes=\"auto, (max-width: 695px) 100vw, 695px\" \/><\/a><\/figure>\n<\/div>\n<p>Mit <strong>Next<\/strong> und <strong>Finish <\/strong>abschlie\u00dfen und oben in den Nachrichten auf <em>Save<\/em>.<\/p>\n<h4 class=\"wp-block-heading\">Zertifikat vertrauen und Plugin generieren<\/h4>\n<p>Da wir f\u00fcr die Testumgebung ein selbst signiertes Zertifikat verwenden, muss WebSphere diesem vertrauen. Dies ist wichtig, weil auch interne Kommunikation (z.B. API-Abfrage f\u00fcr Profildaten) stattfindet. Unter <strong>Servers &gt; Server Types &gt; Web servers &gt; webserver1 &gt; Additional Properties &gt; Plugin-properties &gt; Manage keys and certificates <\/strong>(1)<strong>&gt; Additional Properties &gt; Signer certificates<\/strong> oben auf <strong>Retrieve from port <\/strong>klicken und den Hostname\/Port des IHS zusammen mit einem frei w\u00e4hlbaren Alias angeben. Mit <strong>Retrive signer information<\/strong> wird das Zertifikat direkt vom IHS geladen.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-10.png\"><img loading=\"lazy\" decoding=\"async\" width=\"793\" height=\"368\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-10.png\" alt=\"\" class=\"wp-image-9091\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-10.png 793w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-10-300x139.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-10-768x356.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-10-70x32.png 70w\" sizes=\"auto, (max-width: 793px) 100vw, 793px\" \/><\/a><\/figure>\n<\/div>\n<p>Um es zu speichern, unten auf <strong>OK <\/strong>und oben auf <strong>Save<\/strong>.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-11.png\"><img loading=\"lazy\" decoding=\"async\" width=\"795\" height=\"680\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-11.png\" alt=\"\" class=\"wp-image-9092\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-11.png 795w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-11-300x257.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-11-768x657.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-11-70x60.png 70w\" sizes=\"auto, (max-width: 795px) 100vw, 795px\" \/><\/a><\/figure>\n<\/div>\n<p>Danach noch mal auf <strong>Servers &gt; Server Types &gt; Web servers &gt; webserver1 &gt; Additional Properties &gt; Plugin-properties<\/strong> und <strong>Copy to Web server key store directory <\/strong>(2)<strong>.<\/strong><\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-14.png\"><img loading=\"lazy\" decoding=\"async\" width=\"447\" height=\"505\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-14.png\" alt=\"\" class=\"wp-image-9096\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-14.png 447w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-14-266x300.png 266w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-14-62x70.png 62w\" sizes=\"auto, (max-width: 447px) 100vw, 447px\" \/><\/a><\/figure>\n<\/div>\n<p>Die Plugin-Konfiguration sollte dadurch bereits automatisch neu generiert und propagiert (auf den Server \u00fcbertragen) werden:<\/p>\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-17.png\"><img loading=\"lazy\" decoding=\"async\" width=\"997\" height=\"238\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-17.png\" alt=\"\" class=\"wp-image-9102\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-17.png 997w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-17-300x72.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-17-768x183.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-17-70x17.png 70w\" sizes=\"auto, (max-width: 997px) 100vw, 997px\" \/><\/a><\/figure>\n<p>Falls es dabei zu Problemen kommt: Auf der Webserver \u00dcbersichtsseite (<strong>Servers &gt; Server Types &gt; Web servers<\/strong>) den zuvor angelegten Server <strong>webserver1<\/strong> anhaken, dann oben auf <strong>Generate Plug-in<\/strong> sowie anschlie\u00dfend <strong>Propagate Plug-in<\/strong>. Dann wird die Konfiguration h\u00e4ndisch neu generiert und transferiert.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-7.png\"><img loading=\"lazy\" decoding=\"async\" width=\"695\" height=\"295\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-7.png\" alt=\"\" class=\"wp-image-9087\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-7.png 695w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-7-300x127.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-7-70x30.png 70w\" sizes=\"auto, (max-width: 695px) 100vw, 695px\" \/><\/a><\/figure>\n<\/div>\n<h4 class=\"wp-block-heading\">Connections URL anpassen<\/h4>\n<p>Wie zuvor bereits erw\u00e4hnt, f\u00fchrt CNX selbst auch interne HTTP-Abfragen durch. Daf\u00fcr kommt die in der <strong>LotusConnections-config.xml <\/strong>angegebene Basis-URL zum Einsatz. Diese kann man mit z.B. sed relativ leicht durch die eigene ersetzen:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was cnx]# cd \/opt\/IBM\/WebSphere\/AppServer\/profiles\/Dmgr01\/config\/cells\/CnxCell\/LotusConnections-config\/\n[root@cnx65-was cnx]# sed -i -E &#039;s#(href=&quot;)[^&quot;]+&quot;#\\1http:\/\/cnx65-was.u-labs.de&quot;#&#039; LotusConnections-config.xml\n[root@cnx65-was cnx]# sed -i -E &#039;s#(ssl_href=&quot;)[^&quot;]+&quot;#\\1https:\/\/cnx65-was.u-labs.de&quot;#&#039; LotusConnections-config.xml\n[root@cnx65-was cnx]# sed -E -i &#039;s#(interService href=&quot;)[^&quot;]+&quot;#\\1https:\/\/cnx65-was.u-labs.de&quot;#&#039; LotusConnections-config.xml<\/code><\/pre>\n<p>Sinnvoll ist au\u00dferdem, SSL zu erzwingen. Dazu setzt man in der gleichen Datei<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-xml\" data-line=\"\">&lt;forceConfidentialCommunications enabled=&quot;true&quot;\/ &gt;<\/code><\/pre>\n<h4 class=\"wp-block-heading\">Cookie-Domain und LDAP-Repository in WebSphere<\/h4>\n<p>Unter <strong>Security &gt; Global security &gt; Single sign-on (SSO)<\/strong> in die Textbox <strong>Domain name<\/strong> den IHS Hostname eintragen. Alternativ kann auch die gesamte TDL mit einem vorangestellten Punkt (z.B. &#8222;.u-labs.de&#8220; genutzt werden. Weiter unten den Haken <em>Set security cookies to HTTPOnly to prevent cross-site scripting attacks<\/em> entfernen und mit <strong>OK <\/strong>best\u00e4tigen:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-19.png\"><img loading=\"lazy\" decoding=\"async\" width=\"519\" height=\"432\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-19.png\" alt=\"\" class=\"wp-image-9113\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-19.png 519w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-19-300x250.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-19-70x58.png 70w\" sizes=\"auto, (max-width: 519px) 100vw, 519px\" \/><\/a><\/figure>\n<\/div>\n<p>Zum Abschluss der WebSphere-Konfiguration wird unser LDAP-Server unter <strong>Security &gt; Global security<\/strong> hinzugef\u00fcgt. Dazu im unteren Bereich <em>User account repository<\/em> auf <strong>Configure<\/strong> klicken:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-27.png\"><img loading=\"lazy\" decoding=\"async\" width=\"513\" height=\"245\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-27.png\" alt=\"\" class=\"wp-image-9121\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-27.png 513w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-27-300x143.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-27-70x33.png 70w\" sizes=\"auto, (max-width: 513px) 100vw, 513px\" \/><\/a><\/figure>\n<\/div>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-20.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"235\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-20-1024x235.png\" alt=\"\" class=\"wp-image-9114\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-20-1024x235.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-20-300x69.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-20-768x176.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-20-70x16.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-20.png 1142w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-21.png\"><img loading=\"lazy\" decoding=\"async\" width=\"674\" height=\"271\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-21.png\" alt=\"\" class=\"wp-image-9115\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-21.png 674w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-21-300x121.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-21-70x28.png 70w\" sizes=\"auto, (max-width: 674px) 100vw, 674px\" \/><\/a><\/figure>\n<\/div>\n<ol class=\"wp-block-list\">\n<li>Ist der Typ des LDAP-Servers. Im Falle von OpenLDAP wird <em>Custom<\/em> verwendet. Soll ein bereits vorhandener Verzeichnisdienst zum Einsatz kommen, den Typ entsprechend anpassen (z.B. auf <strong>IBM Lotus Domino<\/strong>, hier w\u00e4re der DN der Base sp\u00e4ter dann &#8222;root&#8220; &#8211; oder <strong>Microsoft Windows Active Directory<\/strong>).<\/li>\n<li>Host und rechts daneben den Port des LDAP-Servers. In dieser Installation l\u00e4uft OpenLDAP auf dem zweiten Server zusammen mit der DB2.<\/li>\n<li>DN und Zugangsdaten eines LDAP-Benutzers, der mindestens Lesebrechtung ben\u00f6tigt.<\/li>\n<li>Die hier angegebenen Attribute (mehrere mit Strichpunkt; trennen) k\u00f6nnen von den Nutzern als Anmeldename verwendet werden. Mit <strong>uid;mail<\/strong> kann man etwa die Nutzer-Id (z.B. mickeym) oder E-Mail Adresse des Kontos in das Nutzername-Feld eintragen. Der Login funktioniert in beiden F\u00e4llen.<\/li>\n<\/ol>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-22.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"650\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-22-1024x650.png\" alt=\"\" class=\"wp-image-9116\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-22-1024x650.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-22-300x191.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-22-768x488.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-22-70x44.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-22.png 1518w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<p>Nach dem Best\u00e4tigen erscheint die vorherige Seite, welche die Suchbasis des LDAP-Verzeichnisses abfragt. Ich lege meist die O\/OU fest, in der die Benutzer liegen (rechts). Gerade in kleineren Umgebungen kann man auch einfach die gesamte Dom\u00e4ne angeben (links).<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-23.png\"><img loading=\"lazy\" decoding=\"async\" width=\"456\" height=\"309\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-23.png\" alt=\"\" class=\"wp-image-9117\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-23.png 456w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-23-300x203.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-23-70x47.png 70w\" sizes=\"auto, (max-width: 456px) 100vw, 456px\" \/><\/a><\/figure>\n<\/div>\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-24.png\"><img loading=\"lazy\" decoding=\"async\" width=\"459\" height=\"317\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-24.png\" alt=\"\" class=\"wp-image-9118\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-24.png 459w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-24-300x207.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-24-70x48.png 70w\" sizes=\"auto, (max-width: 459px) 100vw, 459px\" \/><\/a><\/figure>\n<p>Nach einem Klick auf <strong>OK<\/strong> sollte in der Liste das soeben angelegte Repository <strong>LDAP1<\/strong> mit dazugeh\u00f6riger Suchbasis (links) erscheinen. Damit ist die LDAP-Einrichtung abgeschlossen, mit <strong>Save<\/strong> im oberen Kasten wird die Konfiguration auf dem Deployment Manager gespeichert.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-25.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"631\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-25-1024x631.png\" alt=\"\" class=\"wp-image-9119\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-25-1024x631.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-25-300x185.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-25-768x473.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-25-70x43.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-25.png 1351w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<p>Um die vorherigen \u00c4nderungen auf die Knoten (CnxNode01 in dieser Umgebung) zu verteilen, in der ISC auf <strong>System Administration &gt; Nodes<\/strong>, dort <strong>CnxNode01 <\/strong>anhaken und oben <strong>Full Resynchronize<\/strong>.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-13.png\"><img loading=\"lazy\" decoding=\"async\" width=\"685\" height=\"337\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-13.png\" alt=\"\" class=\"wp-image-9094\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-13.png 685w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-13-300x148.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-13-70x34.png 70w\" sizes=\"auto, (max-width: 685px) 100vw, 685px\" \/><\/a><\/figure>\n<\/div>\n<p>Da \u00c4nderungen an der LDAP-Konfiguration erst nach einem Neustart des Deployment Managers greifen, stoppen und starten wir diesen:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was cnx]# \/opt\/IBM\/WebSphere\/AppServer\/profiles\/Dmgr01\/bin\/stopManager.sh -username wasadmin -password adminwas\n[root@cnx65-was cnx]# \/opt\/IBM\/WebSphere\/AppServer\/profiles\/Dmgr01\/bin\/startManager.sh<\/code><\/pre>\n<p>Bei dessen Start werden die Benutzer aus dem LDAP-Verzeichnis in WebSphere geladen. Wenn die Synchronisierung funktioniert hat, sollten die LDAP-Benutzer in der ISC unter <strong>Users and Groupe &gt; Manage Users<\/strong> erscheinen:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-26.png\"><img loading=\"lazy\" decoding=\"async\" width=\"608\" height=\"309\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-26.png\" alt=\"\" class=\"wp-image-9120\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-26.png 608w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-26-300x152.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-26-70x36.png 70w\" sizes=\"auto, (max-width: 608px) 100vw, 608px\" \/><\/a><\/figure>\n<\/div>\n<h4 class=\"wp-block-heading\">Erster Start und Test<\/h4>\n<p>Vor dem ersten Test starten wir die AppServer in der ISC unter <strong>Servers &gt; Server Types &gt; WebSphere application servers<\/strong>. Dazu oben auf <strong>Select All<\/strong> und <strong>Start<\/strong>:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-8.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"363\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-8-1024x363.png\" alt=\"\" class=\"wp-image-9088\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-8-1024x363.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-8-300x106.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-8-768x272.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-8-70x25.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-8.png 1143w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<p>Nach einigen Minuten sollten alle gestartet sein und der Status auf gr\u00fcn stehen. Die Anzeige rechts wird nicht automatisch aktualisiert. Man kann entweder neben Status auf die Pfeile klicken, oder mit der Maus \u00fcber die Symbole fahren, um den aktuellen Status abzurufen.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-12.png\"><img loading=\"lazy\" decoding=\"async\" width=\"991\" height=\"160\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-12.png\" alt=\"\" class=\"wp-image-9093\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-12.png 991w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-12-300x48.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-12-768x124.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-12-70x11.png 70w\" sizes=\"auto, (max-width: 991px) 100vw, 991px\" \/><\/a><\/figure>\n<\/div>\n<p>Da wir zuvor die Konfiguration des IHS-Plugins ver\u00e4ndert haben, ben\u00f6tigt dieser ebenfalls einen Neustart.<\/p>\n<p>Wichtig: Das apachectl-Kommando ist<strong> asynchron!<\/strong> Es sendet ein Signal zum beenden an den IHS, wartet darauf allerdings nicht. Daher ist der Befehl schnell ausgef\u00fchrt und der IHS l\u00e4uft danach ggf. noch einige Sekunden weiter. Man sollte daher den Stop-Befehl absetzen, einige Sekunden warten und ihn erneut (Pfeil nach oben Taste) ausf\u00fchren. Erscheint hier der <strong>httpd not running<\/strong> Fehler, ist der IHS beendet. Andernfalls erneut einige Sekunden warten, bis man den Stop-Befehl erneut absetzt.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[root@cnx65-was cnx]# cd \/opt\/IBM\/HTTPServer\/bin\n[root@cnx65-was cnx]# .\/apachectl -k stop\n[root@cnx65-was cnx]# .\/apachectl -k stop\nhttpd (no pid file) not running\n\n[root@cnx65-was cnx]#.\/apachectl -k start<\/code><\/pre>\n<p>Nun sollte Connections im Browser per HTTPS erreichbar sein. Da wir ein selbst signiertes Zertifikat verwenden, erscheint eine Warnmeldung. Im Firefox kann \u00fcber <strong>Advanced\/Erweitert<\/strong> und <strong>Accept the Risk and Continue\/Risiko akzeptieren und fortfahren<\/strong> die Seite aufrufen. Sollte man nat\u00fcrlich nur bei selbst angelegten Testumgebungen machen, niemals bei \u00f6ffentlichen\/fremden Internetseiten.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-15.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"828\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-15-1024x828.png\" alt=\"\" class=\"wp-image-9098\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-15-1024x828.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-15-300x243.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-15-768x621.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-15-70x57.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-15.png 1041w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<p>Die erste Anfrage ben\u00f6tigt ein paar Sekunden, bis die Connections Loginseite erscheint. Dort sollte sich jeder LDAP-Nutzer anmelden k\u00f6nnen. Bei neuen Benutzern ist ein Sync \u00fcber den TDI n\u00f6tig, die anfangs angelegten Testbenutzer sind bereits angelegt (z.B. Mickey Mouse). Zur Anmeldung kann die Nutzer-Id (mickeym) verwendet werden, oder alternativ die E-Mail Adresse. <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-16.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"829\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-16-1024x829.png\" alt=\"\" class=\"wp-image-9100\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-16-1024x829.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-16-300x243.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-16-768x622.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-16-70x57.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-16.png 1038w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-18.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"662\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-18-1024x662.png\" alt=\"\" class=\"wp-image-9112\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-18-1024x662.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-18-300x194.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-18-768x496.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-18-1536x993.png 1536w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-18-70x45.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-18.png 1549w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<h3 class=\"wp-block-heading\">Dienste und Autostart<\/h3>\n<p>Die Komponenten WAS Deployment-Manager, Node &amp; IBM HTTP Server  sollten als Systemd-Units automatisch gestartet werden. Der TDI per Cron regelm\u00e4\u00dfig ausgef\u00fchrt. Doch das gen\u00fcgt nicht: Selbst wenn der WebSphere-Node l\u00e4uft, startet dieser nicht automatisch auch die AppServer von CNX. Dies muss h\u00e4ndisch in dessen Policy gesetzt werden.<\/p>\n<h4 class=\"wp-block-heading\">AppServer automatisch starten<\/h4>\n<p>In der ISC unter <strong>Servers &gt; Server Types &gt; WebSphere application servers<\/strong> auf jeden Server klicken, rechts <strong>Java and Process Management &gt; Monitoring policy<\/strong> und <strong>Node restart state<\/strong> auf <strong>RUNNING <\/strong>stellen:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-9.png\"><img loading=\"lazy\" decoding=\"async\" width=\"615\" height=\"453\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-9.png\" alt=\"\" class=\"wp-image-9090\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-9.png 615w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-9-300x221.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2022\/06\/grafik-9-70x52.png 70w\" sizes=\"auto, (max-width: 615px) 100vw, 615px\" \/><\/a><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\">Weiteres<\/h2>\n<ul class=\"wp-block-list\">\n<li>F\u00fcr Surveys (Umfragen) muss <a title=\"Edge-side-includes (ESI) in WebSphere deaktiviert werden\" href=\"https:\/\/help.hcltechsw.com\/connections\/v65\/admin\/install\/c_add_ihs_over.html\" target=\"_blank\" rel=\"nofollow\">Edge-side-includes (ESI) in WebSphere deaktiviert werden<\/a><\/li>\n<li><a title=\"Node hinzuf\u00fcgen\" href=\"https:\/\/help.hcltechsw.com\/connections\/v65\/admin\/install\/t_install_config_was.html\" target=\"_blank\" rel=\"nofollow\">Node hinzuf\u00fcgen<\/a>, wenn man einen Cluster aus mehreren Servern erstellen m\u00f6chte<\/li>\n<li><a title=\"Dokumentation zur Erstellung der Datenbank\" href=\"https:\/\/help.hcltechsw.com\/connections\/v65\/admin\/install\/t_install_dbs_db2.html\" target=\"_blank\" rel=\"nofollow\">Dokumentation zur Erstellung der Datenbanken<\/a> (mit Fix zur manuellen Erstellung von Community Highlights\/ICEC, da diese nicht automatisch vom Wizard angelegt werden)<\/li>\n<li><a title=\"Connections Testinstallation von Christoph St\u00f6ttner\" href=\"https:\/\/share.stoeps.de\/2011-t1s4-ibmconnections.pdf\" target=\"_blank\" rel=\"nofollow\">Connections Testinstallation von Christoph St\u00f6ttner<\/a> (ist eine \u00e4ltere Pr\u00e4sentation aus 2011, einiges v.a. grundlegendes ist nach wie vor relevant, wenn auch der Stack nat\u00fcrlich veraltet ist)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Eine minimale HCL Connections (CNX) 6.5 Testinstallation ist das Ziel dieses Beitrags. Und zwar bewusst manuell, um ein Verst\u00e4ndnis f\u00fcr die einzelnen Komponenten mit ihrem Zusammenspiel zu schaffen. Inzwischen habe ich mit Terraform das Anlegen &amp; Provisionieren der VMs automatisiert, eben so die CNX Installation. Das ist sinnvoll, wenn man alles verstanden hat &#8211; was &#8230;<\/p>\n","protected":false},"author":5,"featured_media":15869,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[765],"tags":[762,760],"class_list":["post-9057","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hcl-connections","tag-hcl","tag-hcl-connections"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/9057","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=9057"}],"version-history":[{"count":32,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/9057\/revisions"}],"predecessor-version":[{"id":15872,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/9057\/revisions\/15872"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/15869"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=9057"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=9057"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=9057"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}