Jump to content

Fachinformatiker - Blog

  • Einträge
    38
  • Kommentare
    113
  • Aufrufe
    42.962

Mitwirkende

Über diesen Blog

Du* möchtest hier mitbloggen? --> Info & Kontakt    -    Schickt uns gerne Eure Gastbeiträge**
* Mach mit, wenn du über IT-Themen schreiben möchtest   ** kein Anspruch auf Veröffentlichung

Einträge in diesem Blog

 

Berufsbegleitendes Studium

Freunde, Bürger, Member, mit den Worten Shakespeares, leicht gewandelt,  will ich den 1. Teil meines Blogs einläuten: Das berufsbegleitende Studium an der FOM (Hochschule für Ökonomie und Management). Aber wie bin ich überhaupt auf die FOM gekommen? Naja, direkt am Anfang war mir eins klar. Ich bin ein geldgeiler Sack, der niemals aus seinem Job in ein ärmliches Studentenleben wechseln könnte. Also war vom ersten Moment an klar, dass ich nur berufsbegleitend studieren würde. Außerdem besteht bei mir auch ein gesunder Selbstzweifel, der dafür gesorgt hat, dass ich nicht den Job aufgebe, um dann eventuell an der Last eines Studiums zu scheiten. Wer will schön diese allseits bekannte und berüchtigte Lücke im Lebenslauf erklären müssen? Was bietet die FOM? Ganz einfach, für den monatlichen Beitrag von 360€ (abhängig vom Studiengang) bekommt man eine ziemlich intensive Betreuung. Man sitzt nicht in einem engen Hörsaal, der viel zu warm für 350 Studenten ist, sondern mit 22 Mann in einem Klassenraum, der klimatisiert ist. Für einen Feind der warmen Räume wie mich also perfekt! Die Dozenten rattern ihr Skript nicht einfach durch, sondern weisen darauf hin, dass Zwischenfragen nicht erlaubt, sondern erwünscht sind. Wenn's also mal hängt, dann kann man einfach fragen, der Dozent oder Professor nimmt sich gerne die Zeit. Die Räumlichkeiten sind äußerst modern, so zumindest am Standort Bonn. Jeder Hörsaal verfügt über einen Beamer, einen Großbild-Fernseher für die hinteren Reihen und einen Overhead-Projektor, sodass der Dozent auch bequem von seinem Platz aus mal eine Rechnung außerhalb des Skripts erklären kann. Das Team der FOM ist, zumindest in den vier bisherigen Modulen, jung(-geblieben), motiviert und breit aufgestellt. Bisher sind es nämlich nicht die reinen Theoretiker, die alles besser wissen, sondern gestandene Menschen der Praxis, die lange in ihren Berufen gearbeitet haben, somit also ein beträchtliches Wissen einstreuen können. Die Kommilidingsbums Wie jeder Studiengang, steht und fällt das Ganze mit denen, die vor, hinter oder neben einem selbst sitzen. Die Kommilitonen sind ja quasi die Mitschüler, die das gleiche Ziel verfolgen wie man selbst. Da kann ich nur sagen: Wer berufsbegleitend studiert, der weiß ganz genau was er will. Keiner der 22 Männer und Frauen, die sich für Wirtschaftsinformatik eingeschrieben hat, wankte nur eine Sekunde als er/sie gefragt wurde, warum er/sie denn studieren wolle. Hätte mich auch gewundert, bei 360€ die nicht in allen Fällen der Betrieb trägt, überlegt man sich ja mehr als nur einmal was man dort beginnt. Gibt’s schon was Negatives? Ja, wo Licht ist, da ist auch Schatten, wenn auch nur ein kleiner. Bei einem solchen Betrag, da erwartet man schon dass man sein Auto nicht für 1,50€ die Stunde im Parkhaus abstellen muss, sondern ein paar reservierte Plätze für die zahlungswilligen Kunden. Hab ich Kunden gesagt? Ich meine natürlich Studenten… :P. Naja, am zweiten Tag wurde uns dann das Rabattier-Gerät vorgestellt, mein neuer bester Freund, der mir das Ticket auf 50 Cent die Stunde heruntersetzt. Also ist das auch nicht mehr ganz so schlimm. Fazit - ohne geht's ja heute nicht mehr Ich bin bisher wirklich zufrieden mit dem Modell der FOM. Auch wenn es teilweise hart ist, Samstagnachmittag noch 4 Stunden Mathe zu machen, während man sich am Morgen durch die Theorie der Wirtschaftsinformatik gequält hat. Dennoch: Ich bin froh, dass ich den Schritt gewagt habe, denn ich habe schon viele neue Menschen kennen gelernt, die alle samt ehrgeizig, zielstrebig und freundlich sind. In der nächsten Episode beschreibe ich dann das Modul „Management Basics“. Und entschuldigt dass ich keine Bilder eingepflegt habe, der Text-Editor und ich sind momentan noch keine Freunde, aber ich habe ihm die Friedenspfeife angeboten. :-) Aber immerhin konnte ich euch unten die Links zu meiner FH und dem Studiengang da lassen, ist ja schon ein Anfang, oder? Es grüßt euch SebastianB. Hauptseite der FOM Studiengang Wirtschaftsinformatik

SebastianB.

 

Das ISO/OSI-Modell (Teil 2) - Fachinformatiker-Podcast #5

Die Reise durch das ISO/OSI-Modell geht weiter mit den Schichten 2 und 3!   Fachinformatiker-Podcast #5: Das ISO/OSI-Modell (Teil 2) (Länge ca. 35 Minuten, Größe ca. 13 MB)   Sicherungsschicht (Data Link Layer) Wie kommen die Daten sicher (vollständig und fehlerfrei) beim korrekten Empfänger (physikalische Zieladresse) an? Die Schicht ist unterteilt in MAC und LLC. Einheit: Frame Zusätzliche Informationen: physikalische Adressen Hardware: Bridge, Switch, Wireless Access Point Protokolle: Ethernet, CSMA/CD, IEEE 802.11 (WLAN), ARP Vermittlungsschicht (Network Layer) Wie kommen die Daten auch über Netzwerkgrenzen hinweg beim korrekten Empfänger (logische Zieladresse) an? Einheit: Paket Zusätzliche Informationen: Logische Adressen Hardware: Router Protokolle: IP, ICMP   Alle bisherigen und auch die zukünftigen Episoden des Podcasts bekommst du über den RSS-Feed auch im Podcatcher deiner Wahl: http://fiae.link/FIPodcastRSS

stefan.macke

 

Powershell - Allgemeines

In diesem Beitrag soll es um die Powershell im Allgemeinen gehen und sich an Benutzer mit grundlegenden Skriptingkenntnissen wenden. Meine Erfahrungen im Umgang und dem ein oder anderen Tool. Ich bin ein Freund der Powershell geworden, da man mit dieser Scripting Engine viele sich wiederholende Aufgaben schnell und vor allem dann auch fehlerfrei immer wieder erledigen kann. Sei es ein Passwort nach bestimmten Kriterien automatisiert erstellen, dem AD Account hinzufügen, das Flag für "Bei der nächsten Anmeldung Passwort ändern" setzen und einen vorgefertigten Passwortbrief ausdrucken. Oder Gruppenmitgliedschaften zwischen zwei AD Accounts übertragen. Alles was über viel Klickerei zu erreichen ist, kann man durch die Powershell eleganter lösen. Im Grunde genommen bin ich nun so weit, dass ich alles, was ich auf Dateiebene oder im Bereich AD oder Exchange mehr als zwei Mal mache, versuche in der Powershell zu lösen. Im besten Fall wiederhole ich irgendwann noch einmal die Tätigkeit, oder führe eine ähnliche aus und muss das Skript nur ein wenig anpassen, oder im schlechtesten Fall habe ich wieder ein wenig mehr Übung im Skripten und das hilft natürlich bei den kommenden Aufgaben.   Erstmal ein paar allgemeine Überlegungen   ISE - Integrated Scripting Environment oder nicht ISE (Konsole) - das ist hier die Frage   Es gibt für mich keinen Grund der Konsole den Vorzug zu geben. Hier ein paar Gründe: Kopieren und Einfügen Dies ist in der Konsole nur mit der Maus und nicht mit Tastaturbefehlen möglich Bei mehrzeiligen Befehlen werden der Prompt und der Zeilenumbruch mit kopiert Ich kann durch das Kopieren und Einfügen der gleichen Zeile untereinander mit anschließenden editieren der einzelnen Zeilen mehrere ähnliche Syntax erstellen und dann einzeln testen und somit gut experimentieren Wenn ich bemerke, dass eine lange gepipte Verkettung von Befehlen zu komplex wird, kann ich diese recht einfach wieder zerpflücken und in z.B. eine Funktion wandeln IntelliSense Autovervollständigen mit einem kleinen Fenster neben dem Cursor In der Konsole nur CMDlets und Parameter mit Tab durchschaltbar Einfärbung der Codeelemente erhöht die Übersichtlichkeit Tippfehler werden schneller erkannt Befehls Add-on Reiter Ermöglicht schnellere und einfache Erstellung eines CMDlets mit den benötigten Parametern   Add-Ons Ein sehr schönes CMDlet ist für die Arbeit im AD ist NTFSAccess. https://blogs.technet.microsoft.com/heyscriptingguy/2014/11/22/weekend-scripter-use-powershell-to-get-add-and-remove-ntfs-permissions/ ist von The Scripting Guys Bei den Downloads die man aus dem Internet lädt, müsst ihr daran denken, vor dem kopieren, ausführen etc. die Eigenschaften des Downloads aufzurufen und ganz unten im allgemeinen Reiter bei dem Punkt Sicherheit den Button "Zulassen" zu drücken. Ein besonderes Bonbon sind die Powershell ISESteroids von Powertheshell.com Eins vorweg, die ISESteroids sind nicht kostenlos. Preise findet ihr auf Dr. Tobias Weltners Webseite http://www.powertheshell.com/isesteroids2-2/ordering-isesteroids/ Dr. Tobias Weltner ist ein Experte aus dem Team von IT-Visions (Dr. Holger Schwichtenberg). Dr, Schwichtenberg ist durch zahlreiche Publikationen, auch rund um die Powershell, bekannt. Es lohnt sich auf jeden Fall eins seiner Bücher zur Hand zu haben, sobald man mit der Powershell anfängt zu Skripten. Aber nun zurück zu den Steroiden. Um diese immer beim Start zu laden, müssen diese in die Profildatei geladen werden. Diese findet ihr unter dem Userverzeichnis\Dokumente\WindowsPowershell. Hier ändere ich noch die Farbe der Fehleranzeige von dem Blau in Weiß, da dies generell besser lesbar ist. Das macht ihr mit dem Eintrag (get-host).PrivateData.errorbackgroundcolor = "White" Oder, sofern ihr die Steroids mit start-steroids schon geladen habt über die neue Leiste aufrufen. Was die Steroids für mich mittlerweile unverzichtbar machen sind Gaaaanz wichtig Eine Versionierung Einen Simulationsmode - hier muss man nicht nach jeder ausführbaren Zeile ein -Whatif kommen Die Möglichkeit aus dem Skript eine eigenständig laufende EXE zu machen Der Variablen Explorer - Dieser zeigt alle verfügbaren Variablen und deren Inhalt an Win Merge File Compare - Ist im Zusammenarbeit mit der Versioncontrol einfach gut um Unterschiede in den Skripten zu finden PSShaper - Zeigt was in dem Skript nicht den "best practice" entspricht   Schon während des Skriptens erscheinen zahlreiche Hinweise, wenn man dabei ist einen Bock zu schießen und geben einem Möglichkeiten vor es zu verbessern. Diese Möglichkeiten werden dann bei Wunsch auch direkt umgesetzt, Wenn man eine Klammer, egal welcher Art auch immer öffnet, erscheint gleich auch das entsprechende Gegenstück. Wem ging es noch nie so, dass man später die Klammern zählt und sucht ;-) Ein paar Zeilen Code geschrieben und dann gedacht...das wäre auch eine gute Funktion. Hier ist nach dem Markieren des Codes mit einem Rechtsklick sofort alles erledigt sobald man sich für einen Namen für die Funktion entschieden hat und welche Variablen als Parameter übergeben werden sollen. Vorher Nachher Durch einen weiteren Klick auf einem Knopf wird diese Funktion in ein Modul geschrieben oder einem Modul hinzugefügt. Dies nur mal als einen kleinen Appetizer. In den kommenden Blogeinträgen kommt zu den Steroids bestimmt noch mehr.
 

Jens_Mander

 

Powershell - Teil 2

Es gibt wohl zwei Dinge beim Skripten die gerade am Anfang sehr stiefmütterlich behandelt werden. Dokumentation Versionierung Dies liegt vor allem daran, dass man am Anfang des Skriptens viel Spaß am Experimentieren hat und bestimmt auch viel im Code springt oder ein paar Skripte parallel schreibt. Da kommt einem am Anfang gar nicht der Gedanke, dass man ja doch recht häufig speichert, aber immer unter dem gleichen Dateinamen. Vielleicht ab und zu mal eine -test oder eine-2 dranhängt. Aber mit einer ordentlichen Versionierung hat das eher nichts zu tun.
Dokumentation/Kommentierung
Bei mir hat sich bewährt, dass ich am Anfang eines Skriptes erst einmal als Kommentar das Ziel des Skriptes definiere. Dieser kann sich ja immer wieder verändern, aber später spart man sich auch diese Arbeit, wenn man das Skript einmal in andere Hände geben möchte, denn dann gehört so ein Text einfach dazu. Wenn ihr Funktionen schreibt, dann sollten folgende Punkte aufgeführt sein: SYNOPSIS Hier sollte in 1-2 Sätzen die Bestimmung der Funktion stehen DESCRIPTION Eine ausführlichere Beschreibung was diese Funktion macht PARAMETER param1 Beschreibung des param1 PARAMETER param2 Beschreibung des param2 Notes Zusätzliche Notizen LINK Zugehörige URLs Die erste URL wird aufgerufen wenn das CDMlet Get-Help -Online <Funktionsname> aufgerufen wird INPUTS Typen der Datenübergabe die erlaubt sind OUTPUTS Typen der Datenausgabe die von dieser Funktion ausgegeben werden können Funktionen benennen Bei der Wahl des Funktionsnamens sollte man sich an die offizielle Nomenklatur halten. Das bedeutet, dass der Name mit einem Verb und einem Substantiv durch ein "-" getrennt aufgebaut sein sollte. Get-Verb gibt euch eine offizielle Liste der Verben und in welchem Kontext diese stehen. Wenn ihr allerdings eine Funktion nur für euch schreibt die nur lokal eingesetzt wird, schreibt vor den Funktionsnamen "private:" oder „script:“ Versionierung Beim Versionieren habe ich früher bei größeren Änderungen einfach den Versionszähler hochgesetzt und nebenbei eine Liste der Änderungen in einem Onenote Dokument gepflegt. Ihr könnt natürlich auch die Änderungen in einem Textdokument oder direkt im Skript kommentieren. Auch hier bieten die ISESteroids wieder eine sehr komfortable Lösung des Versionierens.   Der Pfeil im Bild zeigt euch, wie ihr den Reiter der Versionierung aufrufen könnt. Auf der rechten Seite seht ihr Die File Version History. Links ein Button „Ad New Version“ und auf der rechten Seite eine Checkbox „Auto Mode“. Wenn bei Auto Mode der Haken gesetzt ist, wird automatisch eine neue Version angelegt sobald man Änderungen durchgeführt hat und darauf folgend speichert. In dem Reiter der einzelnen Versionen seht ihr links eine Klassifikationsmöglichkeit, wie zum Beispiel Stable, Alpha Release und weitere. Über den Knopf Compare öffnet sich das Programm WinMerge und zeigt die Veränderungen zur Vorgängerversion. Hier nutze ich den Button Notes um, wie der Name schon sagt, mir Notizen zu den Versionsunterschieden zu kommentieren.   Falls ihr noch Anregungen, Fragen oder Hinweise habt, gerne her damit.

Jens_Mander

 

Praktikumssuche während der Umschulung - Teil 1

Hallo, mein Username ist Sullidor, ich bin bereits einige Jahre in diesem Forum aktiv und bin nun gerne der Einladung gefolgt, mich doch am Blog zu beteiligen. Ich möchte mich hier zuerst mit dem Thema „Praktikum während der Umschulung“ befassen.  Hierbei fließen einmal meine eigenen Erfahrungen ein, da ich beide Seiten des Prozesses kenne. Ich habe dieses Praktikum und seine Phasen zuerst als Umschüler und später mehrfach als Ausbilder durchlaufen.  Zusätzlich habe ich mich für diesen Artikel mit einigen weiteren ehemaligen Umschülern ausgetauscht. Einige davon haben ähnlich positive Erfahrungen gemacht und arbeiten seitdem durchgehend in der IT. Andere wiederum versuchen seit Jahren erfolglos in der IT Fuß zu fassen. Dabei zeichnete sich bereits ein Muster ab, zwischen der grundsätzlichen Einstellung zur Umschulung, dem Praktikum, dem daraus resultierenden Verhalten und einer anschließenden positiven Karriere. Ich habe daraus einen kleinen Leitfaden entwickelt, der euch zwar keinen Erfolg garantiert, aber es euch ein gutes Stück leichter machen sollte euer Praktikum und damit eure Umschulung erfolgreich zu absolvieren. Ich habe diesen Leitfaden in verschiedene Teile unterteilt. Das erste Thema betrifft die Praktikumssuche und wurde vom mir in 2 Teile unterteilt.      1. Teil Praktikumssuche: Grundsätzliches Ein Praktikant während einer Umschulung muss zwar nicht von dem Praktikumsunternehmen bezahlt werden, kostet diesen Betrieb jedoch trotzdem Geld und bindet bezahlte Fachkräfte, die sich um den Umschüler kümmern, diesen beaufsichtigen und kontrollieren müssen. Im Normalfall ist es so, dass Praktikanten, nicht oder sehr selten produktiv eingesetzt werden können.  Dazu kommen Kosten für die Bereitstellung eines Arbeitsplatzes, Arbeitsmaterialien, Soft- und Hardware inklusive Lizenzen sowie eventueller Arbeitskleidung. Ein Unternehmen muss auch beim Einsatz eines Praktikanten das ökonomische und das erwerbswirtschaftliche Prinzip beachten. Dieser Umstand wird gerne von Umschülern und gelegentlich auch von Firmen übersehen. Einige IT-Firmen haben nicht bewusst vor einen Umschüler als Praktikanten zu nehmen oder wissen über diese Möglichkeit nicht Bescheid.  Es lohnt sich also eventuell seinen Wunschbetreib davon zu überzeugen. Es ist auch nicht unbedingt in jedem Fall nötig, dass der Betrieb bereits ausbildet. Selbst wenn dort noch kein ADA-Schein vorhanden ist, so ist dies noch kein endgültiger  Grund aufzugeben. In meinem Fall hat der IT-Teamleiter, in Absprache mit der IHK, erst zum Ende meines Praktikums seinen Ada- Schein erworben und das Institut bildet nun schon mehrere Jahre erfolgreich aus. Zusätzlich nimmt das Institut seitdem auch regelmäßig Umschüler als Praktikanten. Unternehmen, die einen Umschüler als Praktikanten aufnehmen, lassen sich, unserer Erfahrung nach, hinsichtlich Ihrer Motivation meist in 3 grobe Bereiche einteilen: In der  1. Gruppe sind die Firmen zu finden, die über die Praktikanten zukünftige Mitarbeiter suchen. Diese Firmen nutzen solche Praktika um einen potenziellen zukünftigen Mitarbeiter über eine längere Zeitspanne in der eigenen Produktivumgebung einzuarbeiten. Unternehmen dieser Gruppe übernehmen einen guten Praktikanten nach Ende seiner Umschulung für gewöhnlich. In dieser Gruppe befinden sich erfahrungsgemäß eher mehr mittelständische und große Unternehmen als kleine Firmen. Die 2. Gruppe von Unternehmen sieht es als ihre Pflicht an, ihren Teil zu Ausbildung und Weiterbildung, inklusive Umschulung, zu leisten. Diese Unternehmen wollen den Umschüler zwar möglich gut ausbilden, haben aber keine Intention diesen später zu übernehmen. Hier finden sich besonders häufig Institutionen wieder, die sowieso bereits im Bereich Lehre sowie der Vermittlung und Schaffung von Wissen tätig sind, wie z.B. Universitäten, Hochschulen und wissenschaftliche Institute. Die 3. Gruppe setzt sich aus Firmen zusammen, die in dem Praktikanten nur eine billige Arbeitskraft sehen und diesen auch so einsetzen. Diese Unternehmen sind meist kleine, inhabergeführte Firmen, die u.a. dadurch auffallen, dass sie versuchen mehrere Praktikanten auf einmal zu nehmen und die Praktikanten ohne Einarbeitungszeit oder Ansprechpartner produktiv eingesetzt werden. Diese Unternehmen haben weder ein Interesse daran den Umschüler später einzustellen, noch diesen aktiv auszubilden.  Da die Umschüler aber zu diesem Zeitpunkt noch keine ausgebildeten Fachkräfte sind und eigentlich in solch einem Praktikum das praktische Handwerkszeug erlernen sollen, kommt es oft irgendwann innerhalb der Praktikumszeiten zu Vorwürfen, der Praktikant würde nicht die nötigen Fachkenntnisse besitzen und sich nicht genug einbringen. Gelegentlich landen diese Firmen und der Umschüler dann im Streit um Arbeitszeugnisse oder Verleumdung gar vor Gericht. Mir ist übrigens bisher noch kein Fall zu Ohren gekommen, bei dem die Firma in solch einem Fall gewonnen hat. Soweit zu Teil 1 des Themas Praktikumssuche. Im 2. Teil werde ich mich mit der Suche nach passenden Betrieben beschäftigen und einige kleinere Anmerkungen zu eigentlichen Bewerbung machen.

Sullidor

 

docker Windows Server Container und Docker I

Einleitung Die grundlegende Frage gleich vornweg: Warum sollte man Docker auf einem Windows Server betreiben? Nunja, weil man es kann. Außerdem besteht die Infrastruktur bei den meisten unserer Kunden aus MS SQL-Server und Windows Servern auf denen unsere Software installiert wird. Hier könnte man nun argumentieren, dass unsere Software "nur" PHP und Apache benötigt und das zusammen mit PostGreSQL oder ORACLE durchaus auf Linux laufen könnte. Ja, ist richtig, wir möchten aber nicht auch noch irgendwelche Linux Installationen bei unseren Kunden pflegen. Sucht man, naiv wie man ist, einfach mal nach "docker windows", landet man früher oder später bei "Docker CE for Window". Hat man das installiert und den ersten Container gestartet, wird einem auffallen das die Container nicht beim Booten starten. Da ist auch nichts falsch konfiguriert, das soll so sein. Dafür gibt es sicherlich Gründe. Diese Version ist für Entwickler gedacht, die Docker auf ihrem Windows 10 PC betreiben wollen. Wollen wir aber gar nicht … Installation Also installieren wir mal das richtige PS> Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force PS> Install-Module -Name DockerMsftProvider -Force PS> Install-Package -Name docker -ProviderName DockerMsftProvider -Force Danach möchte der Server einmal neu starten und wir können mit docker version schauen ob das funktioniert hat. PS C:\> docker version Client: Version: 18.09.0 API version: 1.39 Go version: go1.10.3 Git commit: 33a45cd0a2 Built: unknown-buildtime OS/Arch: windows/amd64 Experimental: false Server: Engine: Version: 18.09.0 API version: 1.39 (minimum version 1.24) Go version: go1.10.3 Git commit: 33a45cd0a2 Built: 11/07/2018 00:24:12 OS/Arch: windows/amd64 Experimental: true An der Stelle konfigurieren wir den Dienst erstmal ein wenig. Das kann man prinzipiell auch über eine json-Datei erledigen. Anleitungen dazu findet man genug. Man kann die Parameter aber auch direkt dem Dienst übergeben. PS E:\> Stop-Service Docker PS E:\> Remove-Service Docker PS E:\> New-Service -Name Docker -DisplayName "Docker Engine" -StartupType Boot -BinaryPathName "C:\Program Files\Docker\dockerd.exe --run-service -H npipe:// -H 0.0.0.0:2375 --data-root=E:\docker --experimental" PS E:\> Start-Service Docker Für Remove-Service benötigt man allerdings PowerShell Version 6. Die gibt es zwar seit August 2018, ist dennoch nicht im Server 2019 enthalten. Nach dem Neustart des Dienstes legt Docker nun seine benötigte Verzeichnisstruktur unter E:\docker an. Und durch –experimental können wir später –plattform=linux nutzen. Nun ist es endlich soweit, wir holen unser erstes Image. Normalerweise würde man das einfach mit PS> docker pull microsoft/nanoserver erledigen. Das funktioniert zwar, aber ... Das was man dann bekommt ist ein Server 2016 SAC Image. Was per se zwar nicht verkehrt ist, aber im ersten Moment auf einem Server 2019 nicht funktioniert. Hier müsste man dem docker run noch ein --isolation=hyperv mitgeben oder man holt ein neues Image. Für Images die zum Server 2019 passen benötigt man spezifische Tags und kann sich nicht auf den Standard :latest verlassen. Images vom Nanoserver und Windows Server Core holen wir mit. PS> docker pull mcr.microsoft.com/windows/nanoserver:1809 PS> docker pull mcr.microsoft.com/windows/servercore:ltsc2019 Anschließend verpassen wir den Images noch neue Tags PS> docker image tag mcr.microsoft.com/windows/nanoserver:1809 nanoserver:1809 An dieser Stelle können wir auch schon mal einen Container mit einem der Images starten. PS> docker run -it --name testdings microsoft/nanoserver powershell Damit bekommen wir eine PowerShell Instanz in dem laufenden Container und können Dinge tun. Updates installieren, wäre eines dieser Dinge. Das erledigt man normalerweise mit sconfig auf der geöffneten PowerShell. In den nächsten Teilen bereiten wir die Build-Umgebung vor, basteln uns ein Dockerfile und bewundern das Ergebnis

_n4p_

docker Windows Server Container und Docker II

Vorbereitung Als nächstes bereiten wir die Build-Umgebung vor. Wir laden Apache, PHP, passende vc_redist (17 und 13), Microsoft ODBC Treiber 13 und 17, SQLSRV5.3, und einen Oracle Instantclient herunter. Ich überspringe an dieser Stelle einige Schritte und zeige nur die endgültige Version. Ihr verpasst aber nichts Dramatisches, der Buildprozess wurde nur einige Male verändert und die Verzeichnisstruktur entsprechend angepasst. Der Sinn oder Unsinn wird dann vermutlich klar, wenn wir uns die Dockerfiles ansehen. Also legen wir erstmal folgende Struktur an: Build ├───install ├───instantclient ├───webapp │   ├───Apache24 │   └───docroot └───php     └───php In install legen wir die VC Redist Installer und die ODBC Treiber MSI-Pakete ab. Ich habe die umbenannt um sie leichter unterscheiden zu können. Den Instantclient kann man einfach entpacken und den Inhalt des instantclient_18_3-Verzeichnisses in instantclient ablegen. In php/php wird das heruntergeladene PHP entpackt und in webapp/Apache24 der Webserver. Die httpd.conf nach Belieben anpassen, darauf achten das das DocumentRoot webapp/docroot sein soll und noch eine webapp/Apache/conf/extra/php.conf includieren. Die gibt es zwar nicht, das erledigt dann der Buildprozess. Die php.conf kommt nach /php und sieht etwa so aus: LoadModule php7_module "C:\webapp\php\php7apache2_4.dll" AddType application/x-httpd-php .php PHPIniDir "C:\webapp\php" DirectoryIndex index.php Nun noch PHP konfigurieren und dann sind die Vorbereitungen abgeschlossen. Eigentlich ... also quasi schon ... Aus irgendeinem Grund werden die Registry-Einträge für die ODBC-Treiber nicht geschrieben. Weder beim Build noch im laufenden Container. Also erstellen wir noch eine odbc.reg und legen die mit nach /install. Die Datei kann man erzeugen, indem man den Schlüssel exportiert. Dazu kann man kurzzeitig die ODBC Treiber auf dem Host installieren.

_n4p_

docker Windows Server Container und Docker III

Dockerfile Damit man nicht mit jedem Container alles neu machen muss, kann man sich über Dockerfiles eigene Images erzeugen. Die hier gezeigte Version ist mehr oder weniger die finale Version. Davor gab es natürlich diverse Fehlversuche sei es wegen eigener Fehler oder weil man manche Dinge auch einfach nicht vermutet hätte. Unter Windows Nanoserver gibt es beispielsweise gar kein msiexec und das msiexec vom Server Core schreibt die Registryeinträge gar nicht oder irgendwohin wo sie später nicht gefunden werden. Mit setx kann man zwar globale Umgebungsvariablen setzen, startet man den Apache aber als Dienst, wird die Pfadeinstellung dennoch nicht genutzt. # Wir benutzen unser schon gepulltes Windows Servercore Image FROM servercore:ltsc2019 COPY install /install # Installiert die ODBC Treiber im Image # Wer hier eine Ausgabe zum Debuggen will kann noch "/l! out13.log" anhängen RUN ["msiexec", "/a C:\\install\\msodbcsql_13.msi", "/qn"] RUN ["msiexec", "/a C:\\install\\msodbcsql_17.msi", "/qn"] # Installation von VC Redist - 15 wird bei Server 2019 nicht benötigt RUN ["C:\\install\\vc_17.exe", "/quiet", "/install"] RUN ["C:\\install\\vc_13.exe", "/quiet", "/install"] # Die Registry-Datei für die ODBC Treiber importieren RUN "reg import C:\\install\\odbc.reg" # install brauchen wir nicht mehr RUN "RMDIR /S /Q C:\\install" # /instantclient entspricht dann C:\instantclient im Image COPY instantclient /instantclient # einfach großartig - wenn jemand eine Idee hat wie ich Apache als Service erklären kann wo der instantclient liegt ... ENV PATH="C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\ContainerAdministrator\AppData\Local\Microsoft\WindowsApps;C:\instantclient" # Apache usw. kopieren - *1 COPY webapp /webapp WORKDIR /webapp # wir möchten mit dem Container reden EXPOSE 80 # kopieren von php und der php.conf ins Apache config Verzeichnis - *2 COPY php/php /webapp/php COPY php/php.conf /webapp/Apache24/conf/extra # zum Testen/Debuggen #ENTRYPOINT ["cmd.exe"] # und los geht’s ENTRYPOINT ["C:\\webapp\\Apache24\\bin\\httpd.exe"] Das Dockerfile kommt dann mit in das Build-Verzeichnis und das neue Image kann mit folgendem Befehl erzeugt werden. PS E:\build\>docker build -t test . Mit PS E:\build\>docker run -it -p 80:80 --name test_container test starten wir den Container und prüfen das alles wie gewünscht funktioniert. Ist das der Fall teilen wir das Dockerfile in 3 Dateien. Das Dockerfile wird dann bei *1 und *2 aufgeteilt. Der erste Teil bleibt wie er ist und wir nennen das Dockerfile core2019. Und bauen ein Image daraus. PS E:\build\>docker image build -t core2019 -f .\core2019 . Das zweite Dockerfile sieht dann so aus FROM core2019:latest COPY webapp /webapp EXPOSE 80 und das dritte so FROM apache_core2019:latest COPY php/php /webapp/php COPY php/php.conf /webapp/Apache24/conf/extra WORKDIR /logodata ENTRYPOINT ["C:\\webapp\\Apache24\\bin\\httpd.exe"]
Ich habe die Dockerfiles nach dem Image benannt das sie erzeugen. Die weiteren Images baue ich also mit PS E:\build\>docker image build -t apache_core2019 -f .\apache_core2019 . PS E:\build\>docker image build -t php_apache_core2019 -f .\php_apache_core2019 . Damit hat man zwar etwas Overhead bei jedem Build, da jedesmal das komplette Verzeichnis zum Buildprozess übergeben wird. Allerdings können wir so sehr einfach andere PHP und/oder Apache Versionen in ein anderes Image packen ohne den Standard zu verlieren oder die grundlegende Installation wiederholen zu müssen. Lauf Docker, Lauf! Die entstandenen Images kann man nun wieder mit kürzeren Namen taggen und schließlich starten PS> docker run --restart unless-stopped -d --name flamara -p 17000:80 -v E:\share\develop:C:\webapp\docroot -v E:\share\config:C:\webapp\docroot\config\ --dns=10.0.0.20 php2019:latest Mit -p mappen wir einen Port des Hosts zu dem freigegebenen Port des Containers. Dann mappen wir mit -v zum einen die Webapplikation selbst ins docroot des Containers und auch die Konfiguration der Software. So können wir beliebige Versionen der Software mit der gleichen Konfiguration (Benutzer, Rechte, Datenbankanbindung) in der gleichen Umgebung testen. Die nächsten Schritte wären nun, das Ganze mit einem Linux Base-Image zur erstellen und danach automatisierte Builds.

_n4p_


  • Blogkommentare

    • Also ich mache die Umschulung zum Anwendungsentwickler, den Betrieb kann ich nicht nennen, da der Chef das nicht möchte. Er hat Angst das es in irgendeiner Internet Schlammschlacht dann mit reingezogen werden kann. Was ich auch nachvollziehen kann.
      Aber soviel kann ich sagen, es ist in Erkrath, nähe Düsseldorf. So ein Mitarbeiterwechsel ist grausam, wenn nicht sogar total demotivierend. Hoffentlich bleibt mir das erspart.
      Ich freue mich auf jeden Fall, dass du meinem Blog folgst und hoffe, dass du mir in einigen Beiträgen dann auch dein Feedback geben kannst. Schließlich hast du es ja schon hinter dir   Gruß Lewan
    • Hallo, in welcher Fachrichtung möchtest du deinen Abschluss machen? Aus aktuellem Anlass kann ich dir a weng was dazu sagen: Habe damals im November 16 angefangen, dieses Jahr im Januar abgeschlossen. Fachrichtung Systemintegration. Also ziemlich genau 2 Jahre, 3 Monate, wobei ich im Januar nicht mehr auf der Arbeit war (Überstunden, Urlaub) Machbar ist es definitiv in zwei Jahren. Ich hatte vorher noch nicht allzu viel Wissen in dem Bereich, hatte allerdings schon im EDV Support gearbeitet (war aber mehr Client Support und nicht allzu anspruchsvoll). Das hat mich letztlich auch dazu bewegt die Ausbildung zu machen. Man lernt einfach viel während der Ausbildung und intensiviert sein Wissen. Es kommt viel auf den Betrieb an. Ich war dazu "gezwungen" viel selbst zu lernen und wurde oft ins kalte Wasser geschmissen, was aber auch daran lag, dass wir ständigen Mitarbeiterwechsel hatten und ich nach einem halben Jahr der zweilängste Mitarbeiter war. Im Endeffekt war eben das ein Vorteil. Die Schulnoten waren immer sehr gut, im Endeffekt hatte ich in der schriftlichen Abschlussprüfung eine 2,5. Die Ergebnisse für die mündlichen Prüfung habe ich noch nicht erhalten. Es kommt wirklich viel auf dich selbst an. Viel selbst aneignen an Wissen, für die Abschlussprüfung alte Prüfungen wiederholen und man muss wissen, was die IHK hören will. Das habe ich z.B. nicht so gut gekonnt. Auch die mündliche war ziemlich ekelhaft. Aber jetzt bin ich in einem anderen Betrieb und ziemlich glücklich Bin jederzeit für Fragen offen   Beste Grüße
    • Danke für dein Feedback. Ja also Vorwissen ist bisschen da. Interesse an der IT ist seit dem 14. Lebensjahr. Deshalb auch für mich etwas leichter die Themen aufzunehmen wie für andere in meiner Klasse. Im IT Bereich sauge ich wie ein staubsauger alles wissen auf. Fragst du mich was ich letzte Woche zu essen hatte oder was ich angezogen hatte bin ich überfragt. Termine kann ich mir auch nicht merken. Da bei uns aber auch allerlei Zertifikate gemacht werden und ich mir den Betrieb durch ein drei monatigen vorkurs angeguckt habe. Fange ich die Umschulung schon mit MCSA in SQL an. Habe beide zertifikate 70-761 und 70-762 mit über 850 Punkten bestanden. Das war zwar nicht Teil des Vorkurses, aber da der Dozent gesehen hat das ich im SQL ein Einser Kandidat war, konnte ich sogar schon so ne Microsoft Zertifizierung abstauben. Nehme mit was du kannst wurde mir gesagt. Lass nur die Rechner stehen... 😂
    • Es geht auch in 18 Monaten, bzw je nach Einstellungs- und Prüfungstermin noch kürzer (offiziell natürlich 1,5 Jahre).
      Der relevante Punkt ist, ob / wie viel Vorwissen vorhanden ist, und ob / wie man mit den Themengebieten klar kommt.

      Last but not least, genau wie es später im Arbeitsalltag einen Unterschied machen kann:
      Beschäftige ich mich nur in der Arbeitszeit damit, oder auch in irgendeiner Form in meiner Freizeit.


      Bin gespannt auf deine Erfahrungen und werde bestimmt mal wieder reinschauen.
    • Einfach zu lesen und zu verstehen, hat mir geholfen, danke

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung