Jump to content

Rangliste


Beliebte Inhalte

Showing content with the highest reputation since 19.11.2018 in Blogeinträge

  1. 6 points

    In zwei Jahren zum Fachinformatiker

    In zwei Jahren zum Fachinformatiker? Geht das überhaupt? Nun, das werde ich für dich testen. Es gab schon unzählige Testkarnickel, aber geblogt, hat es hier bis jetzt noch keiner. Und genau da fängt mein Blog an. Ich werde dir in regelmäßigen Abständen, offenlegen Was ich gelernt habe Wie mir das Thema gefiel bzw. Wie verständlich das Thema in der kurzen Zeit vermittelt wurde Welche Hilfsmittel, wie Internet Seiten oder Bücher ich benutzt habe Welche Tips mir mein Dozent mit auf den Weg gegeben hat und Welche besonderen Unterschiede in meinem Betrieb zu anderen Betrieben bzw. zu der rein Schulischen Ausbildung vorliegen Wobei ich bei dem letzten Punkt, auf deine Hilfe angewiesen bin. Nutze die Kommentar Funktion, um mir zu zeigen, dass ich genug Vorwissen gesammelt habe um Die IHK-Prüfung zu bestehen Im Praktikum nicht zum Kaffe Kocher verdammt werde und Der wichtigste Punkt. Mit meinem Vorwissen, eine solide Grundlage habe um bei meinem zukünftigen Arbeitgeber, eine attraktive Hilfe zu sein und nicht nur ein Klotz am Bein. Das ganze ist natürlich für beide Seiten attraktiv zu sehen. Nicht nur ich profitiere von deinen Kommentaren, sondern auch du kannst von meinem Blog profitieren. Viele Themen werden mal kurz mal lang durchgerattert und ob es nach zwei Jahren im Kopf geblieben ist, wenn man sich nicht mehr damit beschäftigt, beantwortet sich natürlich von selbst. Je öfter wir unsere grauen Zellen an das Thema leiten, um so mehr Synapsen werden angesprochen und um so weniger gerät ein Thema in Vergessenheit. Du bist schon länger Fachinformatiker und willst uns angehenden Fachinformatikern, mit Rat und Tat bei Seite stehen? Auch du bist eine riesen Bereicherung für meinen Blog. Es gibt genug Themen, die man falsch aufgenommen hat. Dieses falsche Wissen kann in einer mündlichen Prüfung dann das Todesurteil sein. Sollte dir ein falsch formulierter Blog Eintrag auffallen, schreibe es bitte in die Kommentare. Dadurch wird das falsche Wissen nicht im Internet weiter kursieren und die Blog Leser haben dann die Möglichkeit sich durch diesen Blog mit richtigen Ansätzen dem Thema neu zu widmen. Natürlich ist das kein Lehrblog den ich führe, aber eine Zusammenfassung dessen, was mir in meiner Umschulung auf den Weg gegeben wurde. Schließlich ist das Thema ja "in zwei Jahren zum Fachinformatiker, geht das überhaupt?" Und nicht "ich bringe dir in zwei Jahren den Beruf bei" 😏 Somit verabschiede ich mich mit meinem ersten Blog bei dir und gebe dir noch die Fragen auf den Weg Hat dich der Blog angesprochen? War er gut zu lesen oder so anstrengend, dass du froh warst, endlich Licht am Ende des Tunnels gesehen zu haben? Ich freue mich über deine Geduld, deine Zeit und dein Interesse das du in den Beitrag investiert hast. Dein Kommentar wäre das gelbe vom Ei. Ich hoffe auf ein Wiedersehen und das Folgen meines Blogs. Euer Lewan
  2. 5 points
    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
  3. 4 points

    Zahlensysteme (Dec, Bin, Hex u. Oct)

    Hello world, da es unser erstes Thema in der Umschulung war, befassen wir uns heute, mit den Zahlensystemen, die in der IT Welt ihr Zuhause haben. Als kleine Themenzusammenstellung gehen wir heute auf das Duale Zahlensystem (Binär) Hexa Dezimalsystem Oktadezimal System Sowie auf die Umrechnung von Dezimal zu Binär und zurück Dezimal zu Hex und zurück Dezimal zu Okta und zurück So wie Hex zu Okta und Binär und das auch wieder zurück ein Du wirst danach, mit jedem Zahlensystem, mit einer Leichtigkeit rum hantieren können. Ich verrate dir, wie man mit einfachen Tricks, von einem zum anderen System umrechnen und welche Zahlen du dir in der IT Welt merken solltest, weil du ständig damit konfrontiert wirst. Das Dezimal System ist das was uns von klein auf beigebracht wurde, von Null bis 9, da man die Zahlen beliebig aneinander stellen kann, sind der unendlichen Zahl keine Grenzen gesetzt. Es ist das 10er Zahlen System. Für den Menschen ist dieses System naheliegend (10 Finger, 10 Zehen). Es gibt 10 Ziffern von 0 bis 9 Der größte Wert der dargestellt wird ist die 9 Stellenwerte Der Wert der 1. Stelle beträgt 100 = 1, es ist die "Einer" - Stelle Der Wert der 2. Stelle beträgt 101 = 10, es ist die "Zehner" - Stelle Der Wert der 3. Stelle beträgt 102 = 100, es ist die "Hunderter" - Stelle Der Wert der 4. Stelle beträgt 103 = 1000, es ist die "Tausender" - Stelle usw. Dadurch ergibt sich die Interpretation der Zahl 123 in einem Beispiel so. 123 = 3*100 + 2*101 + 1*102 Macht unterm Strich 123 = 3 + 20 + 100 Kommen wir zum ersten uns fremden System, dem Dualen Zahlensystem. Dual weil es nur zwei Möglichkeiten der Darstellung gibt. Es ist das Zweier System. Die 1 und die 0. Deshalb wird es in der IT und Mathematik Binär (bi = zwei) genannt. Das Binäre System ist das wohl wichtigste Zahlen System in der Welt der Computer, da es die einzige Sprache ist die dein Prozessor versteht. Das ist die so genannte Maschinensprache. Aber genug drum rum geredet, kommen wir zum ersten umrechnen. Für Zahlen des Binär Systems gilt Es gibt 2 Ziffern, die 0 und die 1 Der größte Wert den man darstellen kann ist die 1 Stellenwerte Der Wert der 1. Stelle beträgt 20 = 1 Der Wert der 2. Stelle beträgt 21 = 2 Der Wert der 3. Stelle beträgt 22 = 4 Der Wert der 4. Stelle beträgt 23 = 8 usw. Üblich für die Kennzeichnung einer Zahl eines Systems, hinter der Zahl, eine kleine Zahl oder einen Buchstaben dran zu hängen 2 oder b für das Binär System, zum Beispiel 1012 oder 100b 8 oder o für das Oktal System, zum Beispiel 458 oder 45o 16 oder h für das Hexadezimal System, zum Beispiel 2616 oder 26h 10 oder d für das Dezimal System, zum Beispiel 9910 oder 99d Interpretations Beispiel einer Binär Zahl 11012 = 1*1 + 0*2 + 1*4 + 1*8 Macht unterm Strich 11012 = 1 + 4 + 8 Das ergibt dann 13 in Dezimal oder 1310 Das 16er System ist das Hexadezimal System. Da uns bis jetzt nur Ziffern zur Verfügung standen werden wir das nach dem Binären System das meist häufigste Zahlen System der IT Welt besprechen. Dazu kommen zu den normalen 10 Ziffern 0 bis 9 noch die Buchstaben a bis f hinzu. Früher wurden die Buchstaben groß geschrieben, was aber jetzt falsch ist. Deshalb zeige ich dir sofort die richtige Schreibweise also mit kleinen Buchstaben. Für das Hexadezimal System gilt folgendes Es gibt 16 Ziffern, 0 bis 9 und a bis f (a=10, b=11, c=12, d=13, e=14, f=15) Der größte Wert den man darstellen kann ist der Wert 15 Stellenwerte Der Wert der 1. Stelle beträgt 160 = 1 Der Wert der 2. Stelle beträgt 161 = 16 Der Wert der 3. Stelle beträgt 162 = 256 Der Wert der 4. Stelle beträgt 163 = 4096 usw. Als kleines Beispiel rechnen wir c2h = 2*1 + 2*16 Macht unterm Strich 2 + 192 Das ergibt einen Dezimal Wert von 194 Jetzt fragt sich bestimmt so ziemlich jeder, "wozu erfindet man sowas blödsinniges wie das Hexadezimal System?". Die Antwort ist ganz einfach. Der Einfachheit halber um die Zahlen kürzer darstellen zu können. Als Beispiel, was ist in der Darstellung kürzer? 43727 Dezimal, 1010 1010 1100 1111 Binär oder aa cf Hexadezimal? Natürlich das Hexa. Und da es größere Zahlen gibt wie 43727 denken wir mal an 1012 als Beispiel (ergibt 1 000 000 000 000) und da jede Stelle an Ziffern quasi Ressourcen bedeutet. Man aber Ressourcen und Zeit niemals genug hat, wurde ein System entwickelt, welches noch einfach zu rechnen und trotzdem kompakter darzustellen ist. Wer sich jetzt fragt warum dann das Binär? Nun es muss halt auch ein System geben welches von Maschinen gesprochen werden kann. Da man durch Strom einer Maschine sagen kann Strom an ist 1 und Strom aus ist 0, ist das die einfachste Lösung um mit wenig Aufwand komplexe Zahlen Rechnungen und Aufgaben einer Maschine bei zu bringen. Nun das letzte Zahlensystem, das Oktale Zahlensystem. Es ist das 8er Zahlensystem (Oktopus 8 Arme). Die Zahlen 0 bis 7 werden hierbei nur benutzt. Es ist in der IT Welt nicht so oft vertreten, kommt aber hin und wieder mal vor das man es kennen sollte. Für das Oktalsystem gilt folgendes Es gibt 8 Ziffern, 0 bis 7 Der größte Wert den man darstellen kann ist der Wert 7 Stellenwerte Der Wert der 1. Stelle beträgt 80 = 1 Der Wert der 2. Stelle beträgt 81 = 8 Der Wert der 3. Stelle beträgt 82 = 64 Der Wert der 4. Stelle beträgt 83 = 512 usw. Als Beispiel berechnen wir 23o = 3*1 + 2*8 macht unterm Strich 23 = 3 + 16 Ergibt 23o = 19d Jetzt haben wir ein Beispiel, an dem der Oktal Wert größer erscheint als der Dezimal Wert, aber das ist auch normal. Das Dezimal System rechnet mit 10 Ziffern, das Oktale nur mit 8. Da man nur im Dezimalsystem "dreiundzwanzig" ausspricht und im Oktalen "zwei drei" ist es extrem wichtig, die anderen Zahlensysteme niemals dezimal aussprechen. Sondern immer Ziffer für Ziffer benennen. So nun können wir beginnen, die verschiedenen Zahlensysteme umzurechnen. Wir fangen mit vier Tabellen an, damit wir leichter umrechnen können, solltest du dir diese Werte unbedingt merken, das erleichtert ungemein die Umrechnung der Zahlensysteme. Dezimal 108 107 106 105 104 103 102 101 100 Dezimal 100.000.000 10.000.000 1.000.000 100.000 10.000 1.000 100 10 1 Binär 28 27 26 25 24 23 22 21 20 Binär 256 128 64 32 16 8 4 2 1 Hexadezimal 168 167 166 165 164 163 162 161 160 Hexadezimal 4.294.967.296 268.435.456 16.777.216 1.048.576 65.536 4.096 256 16 1 Oktal 88 87 86 85 84 83 82 81 80 Oktal 16.777.216 2.097.152 262.144 32.768 4.096 512 64 8 1 Du musst dir nicht alles davon merken, aber so bis 4096 in jedem System, solltest du schon im Kopf haben. Diese Zahlen kommen immer wieder in der IT-Welt vor und wer es am Anfang schon kennt, hat später weniger Probleme sich die Zahlen zu merken. Als Beispiel 210 ergibt 1024, 1 MiB (Mebibyte) hat 1024 KiB (Kibibyte). Du siehst also das sind ganz normale IT zahlen, die dir in deiner Laufbahn ständig über den Weg laufen werden. Dann fangen wir mal an mit dem umrechnen. Dezimal zu Binär 105d wollen wir in Binär umwandeln, zunächst guckst du in die liste bei Binär wie oft die 105 in die 256 passt, 0 mal. Da die ersten nullen nicht aufgeschrieben werden, weil die Tabelle noch kilometerweit weiter nach Links geht, guckst du das du die nächstmögliche Zahl raussuchst, in dem Fall 105 wäre es die 64 (da es in 128 ja auch eine 0 ergeben würde). Du schreibst also die erste 1 und rechnest den Rest aus. 105 - 64 = 41, du schreibst am besten in eine Tabelle 1 Rest 41, dann rechnest du mit der 41 weiter, wie oft passt die 41 in die 32? genau auch ein mal, also schreibst du wieder eine und hast als Zwischenwert jetzt 11 und den Rest, das wäre bei 41 - 32 = 9. Wir merken uns 11 Rest 9. Da die 9 unsere Zahl ist mit der wir weiter rechnen guckst du wie oft die 9 in die 16 passt, 0 mal. Also schreibst du 110 Rest auf. Rest ist wieder 9 und du gehst zu der 8 hin, wie oft passt die 9 in die 8? genau 1 mal, 9 - 8 = 1. Jetzt schreiben wir wieder in der Tabelle weiter 1101 Rest 1. Das Spielchen geht jetzt so weiter, wie oft passt die 1 in die 4? 0 mal, also 11010 Rest 1, wie oft in die 2? 0 mal, also 110100 Rest 1, wie oft in die 1? ein mal also schreibst du 1101001 auf. Da die Tabelle zum ende angekommen ist, hast du deinen ersten Binären Wert schon mit einer Leichtigkeit herausbekommen, 105 in Binär ist 1101001. War das jetzt schwer? Ich glaube kaum. Wenn du noch etwas üben möchtest dann such dir einfach mehr Zahlen aus und wenn ich sie überprüfen soll, schreib sie in die Kommentare. Als Alternative kannst du dir auch auf dem Smartphone einen IT Taschenrechner runterladen. Unter Android kann ich dir die App Six Teen Free empfehlen. Nein das ist keine Werbung, denn ich bekomme kein Geld von den Machern der App, leider … Auf jeden Fall hast du da die Möglichkeit Dezimal, Hex, Bin und Oktal werte einzugeben und er zeigt dir sofort die restlichen Werte an, am Anfang hab ich es mir schwer getan, weil ich nicht wusste, dass man auf den blauen Balken in jeder Zeile anklicken kann, in der man die Werte eingeben möchte. Nachdem man das weiß ist dieser Rechner einfach nur Super. Einfach, klein und ohne viel Schnickschnack. Es wäre gut wenn du dann erst ein Paar Zahlen in Binär umrechnest, damit du dich mit der Tabelle vertraut machst und damit du das System beherrschst. Binär zu Dezimal Die Umrechnung ist genauso Simple. Wir rechnen mal die Zahl 1001 0011 in Dezimal um. Hier nimmst du am besten auch sofort die Tabelle zur Hand Binär 28 27 26 25 24 23 22 21 20 Binär 256 128 64 32 16 8 4 2 1 machst dir unten noch zwei Zeilen hinzu damit du das hier hast Binär 28 27 26 25 24 23 22 21 20 Binär 256 128 64 32 16 8 4 2 1 Binär 0 1 0 0 1 0 0 1 1 In die vierte Zeile kannst du dann deine Zwischenrechnung reinschreiben. Dann legen wir los... Jetzt guckst du einfach wo überall die 1 ist, diese zahlen musst du einfach nur zusammen zählen, dann hast du die Dezimal Zahl raus. In unserem Fall ist das die 128+16+2+1=147 Somit ergibt der Binäre Wert 1001 0011 den Dezimalen Wert 147. Wie immer kannst du dir dann Paar zahlen ausdenken und diese dann umrechnen um eine Routine zu bekommen. Dezimal zu Hexadezimal Als erstes erstellst du dir ne Zusatz Tabelle. In dieser Tabelle steht nur ganz einfach von 0 - 15 und von 0 - 9 und die a - f, wie hier im Beispiel gezeigt Dec Hex 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 a 11 b 12 c 13 d 14 e 15 f Das dient am Anfang der Leichtigkeit und dem gewöhnen an ein 16er Zahlensystem. Du wirst merken das du am Anfang noch mit dem a-f paar mal durcheinander kommst. Das legt sich aber schnell mit der Zeit. Die Rechnung ist aber fast genauso einfach wie Dezimal zu Binär, nur das du hier mehr Kopfrechnerei hast. Aber wie sagt man so schön? damit aktivierst du natürlich deine grauen Zellen. Wir nehmen mal die Zahl 3048. Die wird wie immer geprüft, wie oft sie in die 256 passt... 11 mal und Rest ist 232 (11*256=2816 dann 3048 - 2816 = 232). 11 hat den Wert b, den notierst du dann inklusive Rest. Mit dem Rest von 232 rechnest du dann weiter, wie oft passt sie in die 16? 14 mal mit dem Rest von 8, 14 hat den Wert von e, den notierst du dann inklusive Rest. Mit dem Rest von 8 rechnest du dann weiter und guckst wie oft sie in die 1 passt, 8 mal und Rest 0, also schreiben wir auf 8. Zusammen ergibt es den Wert von be8 Somit hast du grad errechnet das der Dezimalwert von 3048, den Hex Wert von be8 ergibt. Hexadezimal zu Dezimal Das ist genau das selbe Prinzip wie bei den anderen varianten, aber wir wollen jetzt nicht faul werden und machen eine Zahl wieder ausführlich zusammen. Wir nehmen den Hex Wert fe und wandeln ihn in Dezimal um. Wie herum du jetzt anfängst ist eigentlich egal, ich fange immer links an, weil ich dann die großen Zahlen schonmal weg hab. Wir schnappen uns das f und rechnen f*16. F ist der Stellenwert von 15 und 15*16 ergibt 240. Die Zahl notieren wir uns und nehmen uns das e vor was den Stellenwert 14 hat. 14*1 ergibt 14 und jetzt brauchen wir nur noch die beiden Werte addieren 240+14 ergibt laut Adam Riese 254. Du siehst das umrechnen ist eigentlich recht simple, sobald einer einem zeigt wie es geht. Dezimal zu Oktal Nachdem wir schon die schweren Sachen errechnet haben ist Oktal ein Kinderspiel (ich halte mich mit Absicht kurz, da das ganze quasi ne Wiederholung ist). Wir müssen alles nur in dem 8er System berechnen, aber die Logik wie das funktioniert ändert sich hier auch nicht. Ich zeige dir einmal kurz eine Zahl und du versuchst es dann mit anderen Zahlen nachzumachen. Ich kopiere nochmal die Tabelle um das umrechnen leichter zu machen und du nicht ständig hin und her scrollen musst. Oktal 88 87 86 85 84 83 82 81 80 Oktal 16.777.216 2.097.152 262.144 32.768 4.096 512 64 8 1 Wir nehmen uns die Zahl 212 und wandeln diese um. Wie oft passt die 212 in die 64? 3 mal, wir merken uns die 3 und den Rest (64*3 = 192)(212-192=20) 20. Mit der 20 rechnen wir weiter, wie oft passt sie in die 8? 2 mal und Rest 4 (2*8=16) die 4 passt 4 mal in die eins, somit ergibt sich der Wert 324o . War doch nicht so schwer oder? Jetzt gehen wir mal einen Schritt weiter. Hexadezimal zu Binär und zurück Das ist im Gegensatz zu den anderen Umrechnungen ganz einfach. Nimm dir die Binärtabelle und erweitere sie um eine Zeile, wir nutzen aber nur die rechten 4 Spalten, da wir ein 16er System umwandeln, und der höchste wert 15 beträgt, brauchen wir 24 nicht mehr Binär 28 27 26 25 24 23 22 21 20 Binär 256 128 64 32 16 8 4 2 1 Binär x x x x x Wir rechnen einen kleinen Wert aus, 6bh wird erst aufgeteilt, erst rechnen wir das b um, das ist der Dezimalwert von 11, den tragen wir wie gewohnt in die Tabelle ein, 11 passt einmal in die 8, einmal in die 2 und einmal in die 1 rein, somit ergibt sich der Wert 1011. Jetzt die 6, da passt die 4 und die 2 einmal rein. Das ergibt den wert von 110. Jetzt fügen wir die beiden Zahlen zusammen und erhalten einen Binärwert von 110 1011. Zurück geht das genauso leicht. wenn du eine Binäre zahl von 110110110110 hast, trennst du sie am besten erst in 4er Blöcke auf damit du 1101 1011 0110 hast, dann schnappst du dir den ersten Block also die 1101 und wandelst den in Hex um (1*8+1*4+1*1) das ergibt dann 13, Hex ist das dann ein d, den merken wir uns und nehmen den zweiten Block um, 1011 (1*8+1*2+1*1) der Wert von 11 ergibt ein Hex b, den wieder merken und den letzten Block vornehmen 0110 ergibt (1*4+1*2) 6, damit haben wir einen Hex Wert von db6. Oktal zu Binär und zurück Da man Hex zu Oktal nicht direkt umrechnet, sondern erst eine zwischen Rechnung über Binär macht, um zum Ziel zu kommen, ist das der letzte Punkt des Blogs. Oktal ist ein 8er System, da brauchen wir von der Tabelle die wir zuletzt genutzt haben nur noch die letzten 3 Spalten Binär 28 27 26 25 24 23 22 21 20 Binär 256 128 64 32 16 8 4 2 1 Binär x x x x x x Die Umrechnung Basiert auf der selben Logik wie die von Hex zu Binär, da die Rechnung nur mit 4, 2 und 1 gerechnet wird, werde ich mir die Rechenschritte sparen. Wir haben eine Binäre zahl von 110101100010111101, diese spalten wir wieder in Blöcke, aber diesmal in 3er Blöcke dadurch entsteht dieses Muster 110 101 100 010 111 101. Fangen wir mit den Blöcken an, 110 ergibt 6, 101 ergibt 5, 100 ergibt 4, 010 ergibt 2, 111 ergibt 7 und 101 ergibt wieder 5, jetzt packen wir alles zu einer zahl und heraus kommt 6 5 4 2 7 5 was das Ergebnis auch liefert nämlich 654275o Zurück ist es genauso leicht aber damit wir das dann auch besprochen haben hier ein Beispiel 364o in Binär. Wieder splitten wir die Zahlen und nehmen und rechnen sie in Binär 3 ergibt 011, 6 ergibt 110 und 4 ergibt 100. Somit haben wir drei Binär Blöcke 011 110 100, da wir die erste null streichen können ist der Binäre Wert 11110100 der Oktalen Zahl 364. Also schwer ist was anderes oder? Ich hoffe ich war nicht all zu anstrengend und konnte dir mit dem umrechnen der Zahlensysteme helfen, falls du ein Feedback geben möchtest, nutz bitte die Kommentar Funktion, ich freue mich über jedes Feedback und beantworte es auch schnellstmöglich. Bis zum nächsten mal euer Lewan
  4. 2 points

    Abenteuer mit Linux

    Hinweise Dies wird keine Anleitung für Linuxanfänger. Es wird keine Patentrezepte zum Lösen von Problemen geben. In so gut wie jedem beschriebenem Fall wird es alternative Lösungen geben. An einigen Stellen wird etwas Vorwissen vorausgesetzt. Motivation Als begeisterter Windowsnutzer seit ca 15 Jahren mit etwas Langeweile, habe ich beschlossen mal etwas verrücktes zu versuchen. Die winzige 256 GB SSD meines Yoga 3 Pro war mal wieder übervoll, also wurde endlich mal eine neue gekauft auf die das Windows umziehen sollte. Was lag also näher als der kleinen SSD auf ihre alten Tage noch etwas Spaß zu gönnen. Nebenbei könnte ich auf die Art die Linuxkentnisse etwas vertiefen und sehen wie viel Spaß Linux auf dem Desktop beziehungsweise Laptop macht. Zum Einen ist dies nicht der erste Ausflug in die Linuxwelt. Erste Versuche wurden zu Zeiten von Debian 2/3 unternommen. Anfangs noch mit SuSE und Red Hat um dann recht schnell bei Debian zu landen und einige Jahre dabei zu bleiben. Zum Anderen habe ich auch beruflich ein paar Linuxserver, mit unterschiedlichen Distributionen, zu verwalten. Fragen vor dem Anfang Die wichtigste oder unwichtigste Frage am Anfang ist welche Distribution es werden soll. Schaut man bei Distrowatch vorbei versinkt man schnell in einer Unmenge an Varianten. Unter Hauptdistributionen findet man eine Liste der populärsten Distributionen mit einer groben Unterteilung nach Komplexität. Da schon etwas Erfahrung mit Linux vorhanden ist und ich auch nichts komplett vorgekautes benutzen wollte, hab ich mich für Arch Linux entschieden. Einige Server auf Arbeit laufen auch schon damit. Es ist also kein vollkommenes Neuland. Die Installation Zur Installation gibt es nicht viel zu sagen. Es gibt im Arch-Wiki eine ausführliche Anleitung, der man problemlos folgen kann sofern man lesen und tippen kann. Ein kleiner Stolperstein liegt in der Partitionierung. Früher hab ich beispielsweise /usr auf eine eigene Partition ausgelagert. Unter Arch funktioniert das nicht, da /bin und /sbin nur Symlinks auf /usr/bin und /lib sowie /lib64 Links auf /usr/lib sind. Danach fangen dann die Probleme an. Das erste mal booten Was zuerst auffällt ist die winzige Schrift in der Konsole, immerhin hat das Yoga 3 Pro ein QHD+ Display bei gerade mal 13 Zoll Diagonale. Zum Glück hatten schon viele ähnliche Probleme und es gibt auch dazu einen Artikel im Arch Wiki. Danach möchte man eventuell noch etwas mehr Software installieren. Das wird aber erstmal nichts. Aus Gründen wird der "falsche" Treiber für das WLan-Modul geladen. Der falsche Treiber landet also auf der Blacklist. Ohne WLan wird es allerdings schwierig den richtigen Treiber zu bekommen. Eine Lösung dafür ist einfach nochmal das Installationsmedium zu booten und in das installierte System zu "chrooten". Im Installationssystem ist auch der richtige Treiber verfügbar und kann in das Zielsystem installiert werden. Ist das alles geschafft, darf man dann noch etwas lernen. Es gibt noch "rfkill", mit dem man Bluetooth und WLan ein- beziehungsweise ausschalten kann/darf/muss. Nun kann man das WLan mit "wifi-menu" oder "wpa_supplicant" konfigurieren und weitere Software installieren.
  5. 2 points
    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.
  6. 2 points

    Hardware-RAIDs

    Hallöööchen mit 3 öchen, und willkommen zurück zum Azubi-Wissen - wie immer versucht in relativ einfachen Worten zu erklären jetzt geht alles um Hardware-RAIDs (Redundant Array of Independent Disks). Ein RAID ist ein Zusammenschluss von 2 oder mehr Festplatten mit dem Ziel bei einem Ausfall einer Platte (gerade in Server-Umgebungen) nicht gleich einen Totalausfall zu haben. Was wird dazu benötigt? Ein Hardware-RAID lässt sich nicht einfach so in jedem System erstellen. Selbst wenn ich mir 2 Festplatten an den privaten PC hänge habe ich normalerweise keine Möglichkeit daraus einen Hardware-RAID zu machen - ein Software-RAID dagegen wird mittlerweile von vielen Chipsätzen unterstützt, dabei wird allerdings die Prozessorleistung beansprucht und auch die internen Bussysteme deutlich mehr belastet. Für unseren Hardware-RAID braucht es einen sogenannten RAID-Controller. Statt also die Festplatten direkt mit dem Mainboard zu verbinden, werden sie direkt (oder indirekt mit Zwischenschritt) mit einem Controller verbunden. Der Controller bringt meist eine BIOS-ähnliche Möglichkeit beim Starten des PCs in ein Menü zu gelangen in dem der RAID dann konfiguriert werden kann. Aber jetzt an das EIngemachte. Welche RAIDs gibt es? Ich sage dem PC nicht "Ich will einen RAID" und klicke "weiter", "weiter", "weiter", "Fertig". Naja fast nicht. Als IT-ler müssen wir uns überlegen welche Art von RAID wir haben wollen, davon gibt es nämlich ein paar - und die haben Nummern, sie werden auch tatsächlich im Sprachgebrauch so benannt. RAID 0 Striping. RAID 0 ist tatsächlich ein Sonderfall und viele behaupten, dass sich diese Nummer nicht als RAID schimpfen kann - es hat nämlich nichts mit Redundanz (= Ausfallsicherheit) zu tun. Es ist sogar das Gegenteil der Fall, aber schauen wir uns mal an was es überhaupt macht. Nehmen wir mal an wir haben 2 Menschen (das sind unsere Platten^^), der ein schreibt "Hallo Welt" auf einen Zettel und braucht dafür 2 Sekunden. Verbinden wir unsere Menschen (Platten) jetzt, sagen wir dem einen er soll "Hallo" schreiben, während der andere gleichzeitig einfach nur "Welt" schreibt. Es dauert 1 Sekunden bis "Hallo Welt" auf dem Papier steht, wir waren also schneller. Bei diesem RAID werden Daten also gleichzeitig auf die verschiedenen Platten verteilt (Blockweise), wir bekommen also einen Performance-Boost und haben mehr Speicherplatz zum beschreiben. Der Nachteil natürlich: Wenn eine Platte ausfällt sind unsere Daten weg, PC ist nicht mehr bootbar (ähnlich wie wenn man bei der Programmierung einfach mal die Hälfte aller Buchstaben löscht, dann bleibt nur noch etwas stehen das das System nicht versteht). Dadurch, dass wir auch nicht eine Festplatte haben sondern 2 ist die Ausfallrate höher. Oder in einer anderen Dimension gesprochen: Wenn wir darauf warten, dass 1 Festplatte ausfällt können Jahre vergehen, aber wenn man 1000 Festplatten hat ist die Chance groß, dass hier und da mal welche ausfallen. Also je mehr Platten, desto höher die Ausfallrate. RAID 1 Mirroring. Jetzt kommen wir zum ersten 'echten' RAID - und der ist sogar noch recht einfach erklärt. Die Platten sind gespiegelt, heißt was auf die eine geschrieben wird, wird gleichzeitig auch auf die andere geschrieben - keine unterschiedlichen Daten wie beim RAID 0, sondern dieselben Daten. Würde wir unseren Menschen also hier auftragen "Hallo Welt" zu schreiben würden beide "Hallo Welt" auf ihren zettel schreiben. Vielleicht kann man das auch ohne einen RAID machen, indem man einfach eine Festplatte klont, aber hier kommt der Controller zum EInsatz: Lässt sich eine Platte nicht mehr lesen oder fällt aus (oder jemand ist so mutig und zieht eine Platte mitten im Betrieb raus - einmal gemacht, aber ich würde es natürlich nicht empfehlen), wird automatisch die andere angesprochen, es entsteht kein Ausfall. Steckt man dann eine neue Festplatte an wird der RAID 'im Hintergrund' neu aufgebaut. Nachteil ist, dass uns weniger Speicherplatz zur Verfügung steht. Wir können nur den Speicherplatz einer Platte benutzen - die andere ist schließlich nur als "Klon" da, wir können keine extra Daten auf sie schreiben. Achja, logisch ergibt sich, dass beide Festplatten hier dieselbe größe haben sollten, sonst gibt es entweder Fehler oder wir verschenken Speicherplatz. RAID 5 Block-Level Striping mit verteilter Paritätsinformation. Wer hat sich solche Wörter nur ausgedacht? Respekt an diejenigen die den Wikipedia-Eintrag verstehen. Tatsächlich ist RAID 5 komplizierter als die anderen beiden. Wir sind auch nicht mehr bei 'mindestens 2 Festplatten', sondern hier brauchen wir mindestens 3 - oft sind es aber 5 Festplatten die man hier verwendet. Ich erkläre es erst einfach, um es verständlich zu machen, dann mit etwas mehr Fachbegriffen. Also: nehmen wir an wir haben diesmal unsere 3 Menschen (Platten), aber zum Verständnis lassen wir sie diesmal Zahlen schreiben. Einer schreibt eine "1" auf seinen zettel, der nächste eine "2" und der dritte - wer hätte es gedacht - eine "3". Vorneweg: Wir haben unsere Daten wieder blockweise verteilt, haben also den Vorteil von RAID 0, dass wir mehr Geschwindigkeit sowohl beim Schreiben als auch beim Lesen haben. Allerdings werden unsere Daten nicht auf alle Festplatten aufgeteilt, sondern es wird eine frei gelassen. Wir wollten nie eine "3" schreiben, aber unser RAID macht das automatisch - das muss es auch. Ich wollte das ähnlich einer Rechenaufgabe aufbauen: 1 + 2 = 3. Fällt eine Festplatte nun aus hätten wir zum Beispiel 1 + x = 3 (x ist unsere ausgefallene Platte) - unser RAID kann die fehlenden Daten während der Laufzeit errechnen, es braucht die Platte nicht. Allerdings sollten wir sie trotzdem ersetzen, denn jetzt büßen wir massiv an Performance ein, unser PC rechnet sich zu tode - aber er funktioniert. Wir erleiden trotzdem einen kleinen Verlust an Kapazität. Gehen wir nochmal genauer darauf ein: Die Daten die wir auf unsere Platten schreiben wollen werden auf alle Platten bis auf eine verteilt. Erst wenn diese geschrieben wurden ließt unser Controller die Daten aus und auf die übrige Platte wird dann die sogenannte Parität geschrieben - eine XOR-Veknüpfung der Daten die berechnet wird. Wichtig zu wissen: Diese Parität wird nicht immer auf dieselbe Platte geschrieben sondern es 'rotiert', wird also mit jedem neuen Block auf eine andere Platte geschrieben RAID 6 Ist eher unbekannt, wird aber minimum in Baden Württemberg als Prüfungswissen vorrausgesetzt. Raid 6 wird eher seltener eingesetzt, meist von Systemen die super-mega-ultra-wichtig sind und unter keinen Umständen ausfallen dürfen. Der größte Vorteil ist, das nicht nur 1 sondern gleich 2 Festplatten gleichzeitig ausfallen dürfen ohne das System lahm zu legen. Minimum brauchen wir hier 4 Festplatten - 2 für unsere Daten und 2 die wir bei RAID 5 eine Parität schreiben. Wir haben also ein RAID 5, der einzige unterschied ist wir haben noch eine Parität. Und dadurch das wir hier wieder einen Bereich weg nehmen haben wir natürlich noch weniger frei verfügbaren Speicher als bei einem RAID 5. Wird ein RAID 6 aufgrund der Ausfallsicherheit eingesetzt wird oft dazu geraten Festplatten unterschiedlicher Hersteller oder Produktions-Daten zu nehmen um das Risiko von 2 gleichzeitig ausfallenden Festplatten weiter zu verrigern. RAID 10 ( Von Wheart, based on image File:RAID 0.svg by Cburnett - Eigenes Werk, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=6411865 ) Es wird wieder einfach. RAID 10 hat seinen Namen nicht einfach irgendwo her, es ist eine Kombination aus RAID 1 und RAID 0. Heißt wir nutzen jeweils immer 2 Platten im RAID 1 UND diese entstandenen RAIDs werden nochmal mit einem RAID 0 überbügelt. Dadurch haben wir sowohl eine Ausfallsicherheit, als auch eine höhere Geschwindigkeit. Aber: Es ist teuer. 4 Festplatten wovon ich nur die Hälfte an Speicher habe... lohnt sich eher selten. Wichtig ist hier: Man braucht immer eine gerade anzahl Festplatten (mindestens 4, vorrausgesetzt keiner geht davon aus, dass 2 Festplatten zur exakt gleichen Zeit ausfallen), weil man auf der unteren Ebene ja immer erst 2 Platten spiegelt. RAID 01 ( Von Wheart, based on image File:RAID 0.svg by Cburnett - Eigenes Werk, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=6411849 ) Man kann es vielleicht schon vermuten... hier werden die Platen erst in mehrere RAID 0's aufgeteilt und dann wird ein RAID 1 drüber gebügelt. Manch einer stellt sich nun die Frage: Was ist der Unterschied zu RAID 10? Anhand des Bildes lässt sich kaum ein unterschied feststellen und egal wie man es dreht, man hat RAID 0 und 1 und beide Vorteile davon. Der Unterschied wird sichtbar wenn wir die Anzahl der Platten verändern. Für ein RAID 10 brauchen wir nämlich mindestens 4 Festplatten (wie gesagt wir spiegeln sie ja auf der unteren Ebene erst), bei einem RAID 01 brauchen wir minimum... 3! Und anders als bei einem Raid 10 kann es hier schon Sinn machen die Raid 0 auf unterster Ebene auch mal mit 3 oder mehr Festplatten zu machen - aus Performancegründen. ( Von RAID_1.svg: en:User:C burnettderivative work: Nmoas (talk) - RAID_1.svg, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=11995780 ) Allerdings sind 3 Festplatten jetzt eine Ausnahme, ähnlich wie beim RAID 5 werden die Platten zusammengefügt und die Blöcke durchnummeriert. Jede ungerade Nummer bekommt Daten, jede gerade Block-Nummer nur eine Kopie des Blocks davor - alles wieder rotierend auf die Platten verteilt. Sonstige Es gibt noch mehr RAIDs die aber eher unbekannt sind und selten vorkommen. Da diese im Praxisgebrauch Ausnahmen bilden gehe ich hier nicht weiter auf sie ein. Die Berechnung des verfügbaren Speichers Nehmen wir an wir haben 3 Festplatten mit jeweils 1TB: RAID 0 ist einfach. Beim RAID 0 können wir alle 3 Platten benutzen, wir schreiben und lesen auf allen 3 gleichzeitig, haben nichts doppelt, können also die vollen 3 TB ausnutzen. Wir zählen also einfach alle 3 Platten zusammen. RAID 1 ist ebenfalls einfach, allerdings macht es hier keinen Sinn 3 Platten als Beispiel zu haben (das würde jemand tun der davon ausgeht das 2 Platten zur exakt gleichen Zeit ausfallen). Nehmen wir also an wir haben 2. Wir spiegeln die Platten, haben also nur die Hälfte des Gesamtspeichers zur Verfügung - also nur die Kapazität einer Platte. RAID 5 ist auch nicht sooo schwer. Mit ein wenig Hintergrundwissen und logischem Denken kriegen wir das hin. Was wir hier wissen müssen: Die Datenblöcke und die Parität haben immer dieselbe Größe. Ob ich nun (bei 5 Platten) meine Daten auf 4 verteile und die Parität auf die 5te Platte setze, oder ob ich (bei 3 Platten) meine Daten auf 2 verteile und die 3. Platte die Parität bekommt. Also trotz das die Parität immer auf einem anderen Laufwerk liegt können wir damit rechnen, dass wir immer 1 Platte als Speicherplatz für die Paritäten bei der Berechnung der Speicher-Kapaität abziehen müssen. Bei unseren 3 Festplatten macht das 2 TB, bei 5 Platten wären es 4TB. Besonders ist hier das wir prozentual mehr Speicher zur Verfügung haben, je mehr festplatten wir benutzen. Bei 3 Platten haben wir 66% Speicher frei zur Verfügung (2 von 3). Bei 4 sind es 75% (3 von 4) und bei 5 Festplatten 80% (4 von 5),... RAID 6 ist nachdem wir uns mit RAID 5 herumgeschlagen haben wieder ähnlich. Statt immer 1 Festplatte mit Parität haben wir hier immer 2 Festplattend ie Paritäten beinhalten und uns dementsprechend nicht zur Speicherung der eigentlichen Daten zur Verfügung stehen. Also immer (Anzahl Festplatten - 2). Auch hier wieder: Je mehr Festplatten desto lohnenswerter ist der zur Verfügung stehende Speicherplatz. RAID 10/01 sind ebenfalls einfach. Egal wieviele Platten wir haben, wir haben immer die Hälfte vom Gesamtspeicher - wir kopieren unsere Daten ja wieder. Schlussendlich gibt es nur noch eine Anmerkung: Viele Server bieten ein sogenanntes Hot-Spare-Laufwerk. Zusätzlich zu den Platten die ihr für euer RAID braucht (für welches auch immer ihr euch entscheidet) wird hier noch eine Platte angeschlossen. Die macht erstmal gar nichts, sie hängt da halt, ganz ohne Daten. Richtig konfiguriert sollte der Controller sobald eine Festplatte ausfällt sämtliche Daten der defekten Platte auf die spare(="ungenutzt")-Platte schreiben (deswegen haben wir ja einen RAID, die Daten lassen sich rekonstruieren, selbst wenn die ausgefallene Platte absolut kein lebenszeichen mehr von sich gibt). Fällt in dieser Zeit der 'rekonstruktion' eine der anderen Platten aus sind die Daten weg! (Ausnahme RAID 6) Hat man keine Spare-Platte muss man schnell handeln. Wird man darauf aufmerksam gemacht das eine Festplatte ausgefallen ist kann man diese entfernen (das geht meist auch im laufenden Betrieb) und eine neue Platte in den Server schieben, der Vorgang zur Rekonstruktion sollte automatisch erfolgen. Fragen, Anregungen oder Ergänzungen? Immer her damit.
  7. 1 point
    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.
  8. 1 point
    Hier geht es nun weiter mit dem Thema Praktikumssuche während der Umschulung. Diesmal geht es zuerst um die Suche nach passenden Betrieben. Mit dem richtigen Betrieb, könnt ihr bereits den Grundstein für eure spätere Karriererichtung legen. Anschließend gebe ich einige Tipps, extrahiert aus eigenen Erfahrungen, wodurch Bewerber um einen Praktikumsplatz, aber auch um einen Ausbildungsplatz negativ aufgefallen sind. Beachtet bitte auch hier: Dies stellt nur einen Leitfaden aus Erfahrungen dar, der euch keinen Erfolg garantiert, aber es euch hoffentlich ein gutes Stück leichter macht euer Praktikum und damit eure Umschulung erfolgreich zu absolvieren Die Suche nach passenden Betrieben: Viele Umschüler unterschätzen die Suche nach einem geeigneten Praktikum gewaltig, geraten unter Zeitdruck und müssen dann jedes Angebot annehmen, ob es ihnen nun zu ihnen passt oder nicht. Wer in solch eine Situation kommt, verliert den Einfluss darauf eine praktische Ausbildung zu erhalten, die zu den zukünftigen Karriereplänen passt. Ihr solltet euch daher bereits 5-8 Monate vor dem Praktikumsstart um einen Praktikumsplatz kümmern Zuerst solltet Ihr eine Liste von potenziellen Praktikumsbetrieben erstellen. Voraussetzung hierfür ist normalerweise, dass dieser Betrieb in dem Beruf bereits ausbildet und auch in der Lage ist einen Praktikanten zu beschäftigen. Solche Firmen könnt Ihr über Eure IHK, diverse Lehrstellenbörsen oder Praktikumssuchmaschinen finden. Universitäten, Hochschulen und wissenschaftliche Institute bilden inzwischen auch oft aus und nehmen auch immer mal wieder Praktikanten aller Fachrichtungen. Einer der sichersten und besten Möglichkeiten solche Firmen zu finden ist übrigens ein guter Umgang mit euren Mitumschülern der vorangegangenen Semester. Diese haben entweder bereits ein Praktikum hinter sich gebracht und können euch auch eine gute Einschätzung der dortigen Verhältnisse geben oder starten demnächst in ein Praktikum und haben dort dann bereits eine Zusage. Es lohnt sich hier eine weitere Liste anzulegen und alle diese Firmen separat zu sammeln. Eventuell mit einer kurzen Einschätzung der bisherigen Praktikanten. Frag doch auch einmal bei euren Dozenten nach, in welchen Firmen eure Vorgänger so waren. Gerade der Dozent, der für die Vorbereitung auf die Präsentationen zuständig ist, wird in den Übungen wohl den Namen des jeweiligen Praktikumsbetriebs mehrfach hören und sehen. Beim Anlegen Eurer Adressenliste solltet ihr darauf achten, wenn möglich, E-Mail-Adressen und Ansprechpartner mit zu erfassen. Wenn ihr so vorgeht, könnt ihr in wenigen Stunden eine beachtliche Liste von 50 – 500 Adressen zusammentragen. Ich rate euch zudem die Adressen an den Anfang zu stellen, von denen ihr wisst, dass sie bereits Praktikanten genommen haben. Auch solltet ihr hier bedenken, dass die meisten Firmen einfach keine Ressourcen für einen Umschüler haben, selbst wenn sie ausbilden. Hier kann bereits die zuständige IHK eine Grenze gesetzt haben. Die hiesige IHK sagt hierzu es sollte mindestens eine ausgebildete Fachkraft pro Azubi oder Umschüler vorhanden sein und einer der Fachkräfte muss zusätzlich Ausbilder im Betrieb sein. Ausnahmen bestätigen hier, wie immer, die Regel und letztendlich entscheidet eure IHK. Es kann daher sehr wohl vorkommen, dass ihr 40 Bewerbungen fertigmacht und 40 Absagen bekommt die nur der einfachen Tatsache geschuldet sind, dass es keine solche Stelle im Unternehmen gibt. Davon erfahrt ihr natürlich nichts und der Frust ist groß, da man sich die Mühe gemacht hat 40 Bewerbungen und Anschreiben anzupassen. Um euch eine Menge Arbeit und Frust zu ersparen, rate ich euch die Bewerbungen in 2 Schritten anzugehen. Statt jeder Adresse eine angepasste Bewerbung zukommen zu lassen, könnt ihr im 1. Schritt einen kleinen Text verfassen, indem ihr erklärt für welchen Zeitraum, warum und für welchen Beruf ihr einen Praktikumsplatz sucht. Und bei Interesse werdet ihr ihnen gerne eure kompletten Bewerbungsunterlagen zusenden. In dem Text könntet ihr beispielsweise ebenfalls unterbringen, dass ihr während des Praktikums über den Bildungsträger versichert seid, dieses Praktikum als Ausbildungspraktikum gilt und daher auch nicht unter das Mindestlohngesetz fällt und die Firma aufgrund anderweitiger Förderung auch ansonsten zu keinem finanziellen Ausgleich verpflichtet wäre. Diesen Text sendet ihr dann an alle Empfänger aus eurer Adressliste. Ihr könnt dies übrigens auch gleich als Übung für eure Skriptkünste nutzen und ein kleines Skript schreiben, mit dem aus eurer Liste die Ansprechpartner und Mailadressen ausgelesen und passend in der Mail eingetragen werden. Es gibt auch eine einfache Möglichkeit über Thunderbird mithilfe von Addons Mails zu personalisieren. Alternativ könnt ihr die Liste natürlich auch einfach telefonisch durchgehen. Ihr erhaltet in so einem Fall die Antwort schneller und der Ansprechpartner bekommt einen ersten persönlichen Eindruck von euch. Andererseits kommt es auch sehr oft vor, dass ihr den Anprechpartner telefonisch nicht erreichen werdet. Dies kann ziemlich schnell frustrieren. Wenn nun eine positive Antwort eintrifft, verfasst ihr im 2. Schritt eine persönliche und auf das Unternehmen zurechtgeschnittene Bewerbungen Die Bewerbung Als Ausbilder habe ich eine Menge Bewerbungen von Azubis und später von Umschülern auf der Suche nach einem Praktikum gelesen. Daher hier ein paar Ratschläge daraus: Achtet darauf eine vernünftige E-Mailadresse zu verwenden. Mailadressen ohne Namensbezug oder Mails von der Domain einer anderen Firma machen oft einen schlechten ersten Eindruck. Legt euch lieber eine kostenlose Adresse an, die ihr nur für Bewerbungen benutzt. Signaturen mit witzigen Sprüchen oder der eigenen Firma haben in solchen Mails nichts zu suchen. Einige kostenlose E-Mailanbietern binden nach dem Versenden ihre eigene Werbesignatur in die Mail ein. Dies könnt ihr meist verhindern, indem ihr einen E-Mail-Client wie z.B. Thunderbird oder Outlook benutzt, anstatt der Weboberfläche. Ihr solltet euch erst einmal selber eine Mail senden, um zu sehen wie die Mail beim Empfänger ankommt. Bitte legt euch auf einem Dateityp fest. Es hinterlässt einen schlechten Nachgeschmack beim Empfänger, wenn ihr ein Sammelsurium an diversen Dateiformaten versendet, für die er mehrere Programme benötigt oder die er eventuell gar nicht lesen kann ohne ein weiteres Programm zu installieren. Bedenkt dabei, ein Personaler hat eventuell nur ein modernes Microsoft Word installiert und kann im schlimmsten Fall eure Bewerbung als .doc oder .odt überhaupt nicht öffnen. Vorzugsweise schickt ihr eine einzelne Pfd. Dies wird jeder Ansprechpartner öffnen können und es sieht immer gleich aus. Danach heißt es warten auf eine positive Antwort und auf den Start des Praktikums.
  9. 1 point

    Die Windows Registry

    Windows-Registry Da dies mein erster Blog ist möchte ich mich kurz vorstellen: Ich bin Tician, 26 Jahre jung und im 2. Ausbildungsjahr zur Systemintegration (Stand 2017). Privat bin ich im Malware-Bereich aktiv - ich helfe Menschen bei der Bereinigung - und ich zocke gerne Mein Ziel ist es alles so anfängerfreundlich wie möglich zu schreiben. Es soll also auch jemand verstehen der sich am Anfang der Ausbildung befindet und noch keine bis wenig Erfahrungenen hat. Legen wir los! Was ist die Registry? Die Meisten haben vermutlich schon davon gehört, aber vielleicht noch nie damit zu tun gehabt - und genau so sollte es auch sein, denn die Registry ist seit Windows NT ein fester, sehr wichtiger und empfindlicher Bestandteil von Windows. Sämtliche Einstellungen von Windows (und den meisten installierten Programmen) werden dort gespeichert. Einstellungen? Welche Einstellungen denn zum Beispiel? Welche Dienste sind auf auto-start gestellt? Welches Hintergrundbild benutze ich für meinen Desktop? Ist die Firewall an oder aus? Werden die Windows-Updates automatisch gemacht oder sind sie deaktiviert? Welches Programm soll benutzt werden wenn ich eine *.txt Datei öffnen möchte (Editor, Notepad++ oder doch etwas ganz anderes)? Das und vieles mehr sind Beispiele die in der Registry zu finden sind. Kommen wir auch kurz zu einem anderen Beispiel: Gruppenrichtlinien! Was passiert wenn wir auf vielen PCs Einstellungen setzen möchten ohne an jeden PC einzeln zu rennen (z.B. wollen wir nicht das Benutzer die Registry verändern dürfen )? Wir benutzen Gruppenrichtlinien und die (meisten) machen auch nichts anderes als Registry-Einträge zu verändern. Wo ist die Registry? Jetzt wird es interessant. Die Registry lässt sich durch ein Windows-eigenes Tool öffnen. In unserem Fall die Regedit.exe die sich (wie manch andere Windows-Tools) standardmäßig unter C:\Windows befindet. Jetzt ist uns das aber zu mühselig jedesmal dort hin zu navigieren (das machen wir ja mit dem Editor oder der Kommandozeile auch nicht) und diese exe-Datei anzuklicken. Wir drücken einmal gekonnt die Windows-Taste+R (r für das englische 'run' also 'ausführen') und haben ein kleines Fensterchen offen mit dem wir die Windows-Tools aufrufen können. Wir geben 'regedit' ein und drücken einmal auf OK. Und woher weiß Windows jetzt wo es nach der Regedit.exe suchen soll wenn ich das da eingebe? Ich gebe euch einen Tipp: Das steht auch in der Registry (* siehe Bonus-Wissen ganz unten!) Bis hierhin kann man nichts falsch machen, reinschauen kostet also nichts! Was wir links sehen sollte einem Windows-Benutzer doch recht vertraut sein. Wir haben 'Ordner' die wir auf und zu klappen können und davon (meistens) ganze 5 Stück! 'Ordner'? Vom aussehen her könnte man sie als 'Ordner' bezeichnen, aber wir lernen es gleich richtig. Alles was hier als 'Ordner' dargestellt wird nennt sich Schlüssel. Und wenn wir schon bei Begrifflichkeiten sind erkläre ich euch gleich auch was ein 'Hive' ist. Aber gehen wir mal kurz einen Schritt zurück. Habt ihr euch schonmal gefragt wo man das ganze Zeug auf der Festplatte überhaupt findet? Da ist eine rießengroße Struktur mit vielen, vielen Schlüsseln ('Ordnern'), das kann ja nicht einfach so aus dem nichts auftauchen. Und genau darum findet man die Registry in folgenden Dateien: C:\Windows\system32\config\System (HKEY_CURRENT_CONFIG) C:\Windows\system32\config\SAM (HKEY_LOCAL_MACHINE\SAM) C:\Windows\system32\config\Security (HKEY_LOCAL_MACHINE\Security) C:\Windows\system32\config\Software (HKEY_LOCAL_MACHINE\Software) C:\Windows\system32\config\System (HKEY_LOCAL_MACHINE\System) C:\Windows\system32\config\Default (HKEY_USERS\.DEFAULT) C:\Users\Benutzername\ntuser.dat (HKEY_CURRENT_USER) Hier mal ein Bild: Diese 7 oben genannten Schlüssel nennen sich Hives und sind alles woraus die Registry besteht. Moment mal, ich sehe doch noch andere Schlüssel! Wo ist denn zum Beispiel HKEY_CLASSES_ROOT? Die simple (und vermutlich erstmal verwirrende) Antwort ist: Den Schlüssel selbst gibt es nicht. ... ? Wir schauen uns das natürlich an: Der Aufbau der Registry Was wir sehen wenn wir die Registry öffnen (also diese 5 großen Schlüssel) ist eine von Windows benutzerfreundlich gemachte Ansicht. Nehmen wir mal an wir haben ein x-beliebiges Stück Software. Dessen Standard-Einstellungen werden unter diesem Schlüssel gespeichert: HKEY_LOCAL_MACHINE \ Software\Classes und gelten erstmal für alle Benutzer des PCs. Wenn ich mich nun am PC anmelde, die Software öffne und irgendwelche Einstellungen mache (die natürlich nur mich betreffen sollen und nicht alle anderen user, z.B. einen blauen Hintergrund haben möchte), dann befinden sich diese Einstellungen hier: HKEY_CURRENT_USER \Software\Classes Der Schlüssel HKEY_CLASSES_ROOT führt diese 2 oben genannten Schlüssel visuell zusammen, damit wir nicht rumsuchen müssen. Nach demselben Schema bilden sich auch die übrigen Schlüssel die nicht zu den Hives gehören. Ich zeig euch das mal anhand dieses Beispiels: Ich habe hier einen Schlüssel (den Pfad könnt ihr im unteren Bereich des Bildes sehen) und einen x-beliebigen Eintrag erstellt: Ich habe nochmal einen gleichnamigen Schlüssel für den Benutzer erstellt und dem ebenfalls einen Eintrag verpasst: Ich habe die oben genannten Schlüssel benutzt. Ohne mein weiteres Zutun sieht es in dem HKEY_CLASSES_ROOT Schlüssel nun so aus: Seht ihr wie beide Einträge angezeigt werden? Windows hat die 2 gleich benannten Schlüssel (in HKLM und HKCU - die Kurzschreibweise) zusammen gelegt. Und das war schon das ganze Hexenwerk für heute! Ich wollte es kurz halten, es würde so viel mehr zu erzählen geben! Ich wollte euch aber nicht mit der Entstehungsgeschichte langweilen, es sollte wirklich nur mal ein leichtes Kratzen der Oberfläche sein, da die Meisten vermutlich eh nie direkt in die Registry gehen müssen. Wenn ihr also Fragen, Anmerkungen, Lob und Kritik habt immer her damit - am Besten in die Kommentare. _____________________________________________________ Bonus-Wissen: (*)Hier geht es um die sogenannte Path-Umgebungsvariable. Bitte was? Ja, das 'Ding' schimpft sich so, ist aber auch wichtig und vorallem nützlich! Folgendes Szenario: Ich öffne ein Konsolenfenster (ganz ohne Administrator-Rechte) und befinde mich standardmäßig in meinem Benutzer-Verzeichnis (C:\Users\Tician). Gebe ich jetzt ein 'notepad.exe' und drücke die Eingabe-taste öffnet sich ein Editor. Das läuft für viele schon automatisch. Aber denkt mal über folgendes: Muss man nicht eigentlich erst in das Verzeichnis navigieren oder den ganzen Pfad angeben um eine Datei darin auszuführen? Ja... Aber dabei befindet sich die 'notepad.exe' doch gar nicht in meinem Verzeichnis! Jupp, richtig und trotzdem öffnet es sich. Zum Verständnis müssen wir etwas weiter gehen. Geben wir also mal 'putty.exe' ein. Wir werden mit der Meldung "Der Befehl 'putty.exe' ist entweder falsch geschrieben oder konnte nicht gefunden werden" begrüßt. 'Konnte nicht gefunden werden' trifft es in unserem Fall auf den Punkt. Aber ich hab putty! Liegt doch direkt auf meinem Desktop! Auch korrekt. Was ist also passiert? Windows (und übrigens auch Linux) haben diese Path-Variable. Wir finden sie unter Windows in der Registry in diesem Schlüssel: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment Hier gibt es den Eintrag 'Path'. Wenn ich nun also einen Befehl oder eine Datei zum öffnen/ausführen in die Kommandozeile eingebe sucht Windows erstmal in dem Verzeichnis in dem ich mich befinde danach. In unserem Beispiel das Benutzerverzeichnis (keine Unterordner!). Wenn Windows den Befehl dort nicht findet greift es auf diese PATH-Variable zu. Da stehen einige Pfade durch Semikolon getrennt drin und Windows geht sie alle nacheinander von links nach rechts durch und sucht in den Ordnern nach meinem Befehl, also 'putty.exe'. Das heißt also...? Wenn ich jetzt diesen Path-Eintrag veränder und ';C:\Users\Tician\Desktop\' anhänge kann ich auch mein Putty jederzeit - und unabhängig davon in welchem Pfad ich mich in der Konsole befinde - aufrufen!
Diese Rangliste ist auf Berlin/GMT+01:00 eingestellt
  • Newsletter

    Möchtest du immer über unsere Neuigkeiten und Informationen auf dem Laufenden gehalten werden?
    Anmelden

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

×
×
  • Neu erstellen...

Wichtige Information

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