Hands-on eine praktische Einführung in die Konstruktion von Machine auf AWS | David Cohen | Skillshare

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Hands-on eine praktische Einführung in die Konstruktion von Machine auf AWS

teacher avatar David Cohen, Linux, Programming, DevOps, etc.

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      KURSEINFÜHRUNG

      1:20

    • 2.

      Warum Packer? Warum Infrastruktur als Code (IaC)?

      6:29

    • 3.

      Project Übersicht

      4:54

    • 4.

      Packer Primitives und Terminologie

      7:05

    • 5.

      Packer

      3:35

    • 6.

      WordPress Projektcode Tour

      5:38

    • 7.

      Packerized Project

      5:28

    • 8.

      Packer installieren

      1:32

    • 9.

      SSH-Schlüssel in AWS EC2 erstellen

      4:01

    • 10.

      AWS IAM Benutzer für Packer erstellen

      3:57

    • 11.

      Der Packer

      6:18

    • 12.

      Mit dem AMI für die Gastgeber einer WordPress-Site

      6:53

    • 13.

      Packer Dokumentation und Development

      3:19

    • 14.

      Nützliche Packer

      6:39

    • 15.

      Kursprojekt Anleitung

      5:52

    • 16.

      Schlussbemerkung

      2:09

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

49

Teilnehmer:innen

--

Projekt

Über diesen Kurs

In diesem Kurs lernst du, wie du vorhandene server in ein Packer umwandelst, das ein vollständig konfiguriertes Maschinenbild erstellt, das du in der Amazon Cloud verwenden kannst. Es ist ein einfaches, reales Projekt, das dir zeigt, wie Packer WIRKLICH in der Cloud-Infrastruktur und real-life verwendet wird.

Wenn du fertig bist, hast du ein Bildaufbau für einen Server automatisiert, auf dem eine WordPress-Website hostet.

Du lernst:

  • So installieren Sie Packer
  • So erstellen und strukturieren einer einfachen Packer zum Erstellen eines Maschinenbildes auf AWS
  • So überlegen Sie sich daran, bestehende Befehle/Prozeduren in Skripte zu verwandeln und wie Sie diese Skripte in Ihrem Packer verwenden.
  • So erstellen Sie VMs VMs aus dem Maschinenbild, das Sie mit Packer erstellt haben.

Wer bist du?

  • Du bist Linux, DevOps, Cloud-Infrastruktur oder Software-Engineer, der die image automatisieren möchte.
  • Du hast einige grundlegende command-line (Linux, Windows oder OS X).
  • Du weißt, wie du ein Projekt von GitHub klonen und Code in einem Texteditor bearbeiten kannst.
  • Du willst mehr praktische DevOps lernen.
  • Sie möchten image als einen ersten Schritt automatisieren, um die Infrastructure Teil einer CI/CD zu machen.
  • Du bist gerade gespannt, wie ein kleines, aber reales real-world aussieht.

Wer bin ich?

  • Ich mache seit fast 15 Jahren Linux, Cloud-Infrastruktur, Softwareentwicklung und DevOps/SRE.
  • Ich habe Hunderttausende Menschen Techniker auf meinem YouTube-Kanal gelehrt.
  • Ich möchte wichtige Fähigkeiten in einer nützlichen, no-BS vermitteln, die dir praktische Fähigkeiten gibt, die du sofort bei realen Projekten anwenden kannst, in Vorstellungsgesprächen oder in der Vermittlung beworben werden kannst.

Sieh mal an! Ich freue mich darauf, dich drin zu sehen.

Triff deine:n Kursleiter:in

Teacher Profile Image

David Cohen

Linux, Programming, DevOps, etc.

Kursleiter:in

I love helping people who are early in their tech careers, and I've had the pleasure of teaching hundreds of thousands of you on YouTube (tutorialinux) over the last 10 years.

I'm currently an engineer at Hashicorp -- I've been there a while and have bounced around between between Site Reliability Engineering, Reference Architecture, and Software Development.

I've been in tech for about 15 years and I'm still loving it. I hope my courses help you get where you're trying to go!

Vollständiges Profil ansehen

Skills dieses Kurses

Entwicklung Webentwicklung
Level: Intermediate

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. KURSEINFÜHRUNG: Mein Name ist Dave Cowen. Ich bin seit 15 Jahren in der Infrastruktur- und DevOps- und Softwareentwicklungswelt tätig. Und ich habe für alle möglichen interessanten Firmen Pack gearbeitet oder etwas, an das ich wirklich glaube , dass ich für das Unternehmen gearbeitet habe, das es macht. Ich arbeite übrigens nicht an Packer. Ich denke, es ist klein und leicht zu erlernen. Mein Versprechen an Sie, was dieser Kurs ist, dass ich nicht erschöpfend Folien lesen werde , die Sie langsam durch jeden Teil des Lesens führen, wie die offiziellen Dokumente. Sie können die offiziellen Dokumente selbst lesen , um Dinge auszufüllen. Mein Versprechen an Sie ist, dass ich Ihnen ein absolut realistisches Projekt geben werde, das Ihnen die reale Nutzung zeigt , worüber Sie nachdenken müssen. Und Sie werden die Vorteile , die es Ihnen bietet , intuitiv spüren können. Und ich habe versprochen, das in ziemlich kurzer Zeit zu tun . Ich möchte diesen Kurs kurz, süß, praktisch halten. Also nochmal, wenn du nach einem erschöpfenden Kurs suchst , der dir alles gibt und du ihn wahrscheinlich nie anschauen wirst. Das ist es nicht. Wenn Sie möchten, geben Sie mir einfach die Sache, die ich brauche, um damit in einem realistischen Projekt zu beginnen , das ich klonen, kopieren und wiederverwenden kann. Dies ist der Kurs für dich. Wenn das also zu dir spricht, hoffe ich, dich drinnen zu sehen und ja, lass uns anfangen. 2. Warum Packer? Warum Infrastruktur als Code (IaC)?: Also für diejenigen unter Ihnen , die nicht wirklich wissen, warum Sie Packer wollen, lassen Sie mich Ihnen einfach ein sehr schnelles Wertangebot geben, vielleicht nicht nur für Packer weil Sie es bereits gegoogelt haben und hier sind. Aber für Infrastruktur als Code im Allgemeinen ist das der Anfang dessen, was Packer Ihnen gibt. Also vor dem Packer oder etwas, das sich wie eine manuelle Konfiguration in ein Maschinenabbild verwandelt. Lassen Sie uns darüber nachdenken, wie wir, sagen wir, ein echtes Problem lösen würden . Nehmen wir an, es gibt eine seltsame Sicherheitslücke. Sie hören an einem Montag davon und stellen fest: Oh nein, unser WordPress-Hosting-Server muss die Webserver-Konfiguration ändern, um eine bestimmte Version von TLS nicht zuzulassen , damit wir nicht verwundbar sind. Sie würden also in Ihre Dokumentation gehen, oder? Weil das wie Ihre manuelle Dokumentation ist. Du machst alles manuell. Alles ist schlecht. Du weinst dich jeden Tag in den Schlaf , nachdem du von diesem Job nach Hause gekommen bist. Bei Ihrer Arbeit müssten Sie im Grunde herausfinden, wo sich diese Datei befindet, wo in der Anleitung, okay, sie ist in der Haupt-NGINX-Konfigurationsdatei. Mach dir keine Sorgen, wenn du nichts von diesem Zeug weißt. Das ist für diesen Kurs nicht wirklich wichtig. Sorgen Sie sich nur um den Packer-Teil. Aber du müsstest hier manuell reingehen. Ich meine, du meldest dich bei einem Produktionsserver an. Sie spielen jetzt mit der Konfiguration herum. Nehmen wir an, es ist wie ein SSL-Protokoll, das Sie auskommentieren müssen. Nehmen wir an, 1.2 ist raus, also hältst du den Kommentar von hier nach hier. Und was jetzt? Du musst NGINX neu starten. Ich schätze, du musst hoffen, dass dies dein einziger Produktionsserver ist . Wenn du zehn Produktionsserver hast, ja, irgendwie kaputt. Niemand ist glücklich. Das ist schlecht. Das ist eine schlechte Art, Dinge zu tun. Es gibt keine gute Möglichkeit, dies in zwei Monaten zu testen dies in zwei Monaten wenn Sie sich bei Ihrem Produktionsserver anmelden. Es gibt keine Aufzeichnungen darüber, warum die NGINX-Konfiguration so ist. Vielleicht hast du vergessen, die Dokumentation, die du benutzt hast, zu ändern . Neue Server werden also immer noch falsch eingerichtet. Wir machen die Dinge nicht manuell. Das machen wir nicht. Wir sind Profis. Packer ist also die Art und Weise, wie Sie dies von einer vollständigen manuellen zur Automatisierung überführen. Und natürlich, ja, ich werde Ihnen alle Details in diesem Kurs zeigen. Sie werden es Schritt für Schritt sehen. Aber das Wichtigste im Moment ist, dass sich der Gesamtprozess von der traurigen, traurigen Welt, in der man sich in die Produktion einloggt und die Dinge ändert , zu dieser viel glücklicheren Welt man in Holen Sie sich Ihr Packer-Projekt für Ihre WordPress-Server, gehen Sie in die Konfiguration. Sie sehen, dass es hier eine Engine X-Conf gibt, die Hauptkonfiguration für Engine X scheint mir cool zu sein. Hier finden Sie Ihre SSL-Protokollzeile, die Änderung nehmen Sie hier vor. Und anstatt sich in die Produktion einzuloggen, erstellen Sie einfach einen neuen Packer-Build Sie im Wesentlichen festlegen. Vermutlich sind Sie eine Art Automatisierungs-CI-System , das diese Änderung aufnimmt und Packer erneut ausführt, um ein neues Image zu erstellen. Und dann bam, Sie haben ein neues Bild, auf das Sie sich im Rest Ihrer Infrastruktur beziehen können. Und dann können Sie alles tun, was Sie tun, um Ihre Server in der Produktion auf diese neuen Server zu übertragen, bei denen sich genau diese eine Sache geändert hat. Und Sie denken sich vielleicht, das scheint eine Menge zusätzlicher Schritte für eine wirklich einzeilige Änderung in einer Datei zu sein. Aber sobald Sie die Realität der Produktionsabläufe kennenlernen und vielleicht mehr als einen Server wie Hunderte haben. Dies ist der einzig vernünftige Weg, um mit Veränderungen umzugehen. Anstatt manuelle Änderungen vorzunehmen , bei denen sich Menschen an Dinge erinnern müssen , befolgen Sie bestimmte Anweisungen. Dinge können vergessen werden, Dinge können irgendwie verschwinden. Sie können sich nicht erinnern , wer etwas geändert oder dass etwas geändert wurde. Auf dieser Welt. Mit jeder Änderung ist ein Git-Commit verbunden, oder? Also änderst du diese Datei, du musst sie festschreiben. Sie geben den Namen des Tickets oder den Grund, warum Sie es geändert haben oder was auch immer, in dieses Commit ein, das einen neuen Build startet. Und dann ist das eine brandneue Build ID, obwohl es fast dieselbe Maschine ist. Und wenn jemand sagt: Oh, warum stimmt etwas mit dieser Maschine nicht? Werden sie jede Konfigurationsänderung sehen können, die darin enthalten ist. Zurück zum Anfang unseres ersten Laufs dieses Paketskripts, das ein Image für uns erstellt hat. Ich hoffe, das erklärt einige der Gründe für Packer und insbesondere, dass es Ihnen ein Gefühl dafür gibt , wie der dadurch ermöglichte Arbeitsablauf viel, viel, viel besser und viel professioneller ist . Dann ist der Workflow, mit dem die meisten Menschen und sogar Unternehmen beginnen, was richtig ist, Es ist wie eine Anleitung. Sie googeln eine Sache, die sich wie Login anfühlt, und tun dies manuell. Es ist wie nein, nein, nein, nein, nein, nein. Das machen wir nicht. Es ist nicht das, was Profis tun. Sie sind nicht reingegangen. Sie könnten etwas manuell testen wie Sie dies lokal tun würden , um nur zu überprüfen, ob es funktioniert. Aber dann schnappen Sie sich all das, stecken es in ein Skript oder einen Sticky, in irgendeiner Weise automatisiert, und automatisieren das dann wieder mit Infrastruktur als Code, um sicherzustellen, dass jeder In get findet eine Änderung statt. Stellen Sie sicher, dass Sie sich ein Bild ansehen und genau wissen , was sich darin befindet, ohne sich anzumelden. Das ergibt Sinn. Okay. Also für diejenigen unter Ihnen , die sich nicht sicher waren , warum sie Packer verwenden, Das ist es. Ich würde sagen, das ist der Hauptunterschied. Es ermöglicht auch all diese anderen Dinge, über die wir während des gesamten Kurses sprechen werden . Was wirklich der Fall ist, wenn Sie so etwas in die Automatisierung eingewickelt haben und von einem manuellen zu einem automatisierten Prozess übergehen , können Sie es jetzt in die vorhandene Automatisierung für alle Arten von anderen integrieren Sachen. Jetzt wissen Sie, wenn Ihre Sicherheitsabteilung, Ihr Unternehmen wächst, kommt Ihre Sicherheitsabteilung zu Ihnen und sagt: So wie wir die IT automatisieren müssen, Sicherheitstests für alles das macht es in die Produktion. Nun, man kann sagen, ja, wir melden uns nicht in der Produktion an, um Dinge wie während des Builds zu machen . Sobald Like Packer einen Build in Ihrem CI-System abgeschlossen hat, Sie nach einem Commit können Sie nach einem Commit einfach Ihr Leg-Security-Tool ausführen und sicherstellen, dass das Image aus Sicherheitsgründen auf dem neuesten Stand ist . Und dann können Sie es mit einer genehmigten Sicherheit oder was auch immer kennzeichnen . Und dann wissen wir, dass das in der Produktion in Ordnung ist. Es ist also im Grunde genommen keine zusätzliche Arbeit für Sie als Betriebs - oder Infrastrukturperson. Wie auch immer. Es dreht sich also alles um Automatisierung und genau darum gehen wir und deshalb machen wir diese Sachen. 3. Project Übersicht: Lassen Sie uns darüber sprechen, was Sie als Erstes tun, nachdem ein Packer-Projekt geklont oder eines gestartet haben. Das Erste, was du immer tun wirst ist Packer darin laufen zu lassen. Und dann dieses Verzeichnis, vorausgesetzt, Sie befinden sich in dem Verzeichnis, in dem sich eine Packer-Datei befindet. Jetzt, da ich das schon einmal ausgeführt habe, ist keine Änderung erforderlich und es wird nichts bewirken. Aber wenn Sie dies zum ersten Mal ausführen, werden sicherlich einige Dinge installiert, nämlich die Plugins, die Sie für Ihre Codebasis benötigt haben. Lassen Sie uns also ohne weiteres durchgehen, wie das funktioniert. Ich werde dir einen kleinen Rundgang durch das hier geben. Diese Quelle ist das Quellbild, das wir verwenden werden. Das heißt, der Image-Typ wird ein Amazon EBS-Image sein . War schon bei. Und die Art und Weise, wie wir unsere Quellbilder mit diesem Filter finden , wo wir nach etwas suchen , das dieses Namensmuster hat. Sie können also sehen, dass wir 2204 verwenden, derzeit die neueste LTS- oder Langzeit-Support-Version von Ubuntu. Und dieser Stern ist ein Platzhalter, wenn Sie mit regulären Ausdrücken überhaupt vertraut sind mit regulären Ausdrücken überhaupt vertraut , Stern bedeutet alles. Und speziell der neueste, der diesem Alles-Star passt. Dadurch wird ein Datum ersetzt. Das wird also wie das April-Bild sein, wie April was auch immer, 2022 im Juni wird es ein Juni-Bild auf non geben. Das bedeutet, dass wir unseren Code nicht jedes Mal ändern müssen , wenn das Bild aktualisiert wird, sondern dass wir immer die neueste Version von 2204 verwenden werden . Immer wenn Sie diesen Code ausführen. Der Besitzerfilter, das ist der kanonische Benutzer. Sie erhalten garantiert ein offizielles Image, nicht einige wie böse Hacker wie ein vorgerootetes Bild. Der SSH-Benutzername sagt im Grunde nur, okay, wenn wir das konfigurieren, ist der Umgang mit diesem Bild von B12 der Standard-Benutzername , den wir verwenden werden, um mit SSH zu verbinden. Und das temporäre Schlüsselpaar , das Packer erstellen soll. Packer erstellt unter anderem ein Schlüsselpaar nur für meinen Packer-Lauf. Es wird diese Kurve benutzen. Wenn Sie SSH Dash Key Gen verwendet haben, erstellen Sie mit diesem Tool einen neuen SSH-Schlüssel. Das ist buchstäblich das, was das tut. Das ist also im Grunde das, was es ausfüllt, der Dash T-Teil. Das ist also im Grunde so, als würde man SSH key gin type dd to 19 ausführen . Das ergibt Sinn. Okay, also lasst uns hier zu den eigentlichen Bauanleitungen kommen. Das werde ich übrigens nicht, das ist keine vollständige Erklärung von Packer. Das ist nicht absolut wie in den Schützengräben. Praktischer Straßenkampf-Packer. Packer hat mehr zu bieten als das. Ich zeige Ihnen hier nur das Minimum, das Sie wissen müssen, um ein funktionierendes Amazon-Image zu erhalten. Was werden wir also tun, wenn wir dieses Image erstellen? Nun, wir werden Packer sagen , dass wir dem Ding einen Namen geben werden. Wir werden es mit einer Reihe von Provisionern versorgen. Du kannst dir das fast wie die Schritte zu unserem Build vorstellen . Wir werden es mit diesem ersten Skript füttern, damit es auf die Maschine hochgeladen und dann darauf ausgeführt wird . Dann fügen wir hier einige Konfigurationsdateien hinzu. Es handelt sich also im Wesentlichen um Kopiervorgänge von Dateien. Das alles passiert über SSH, wo nach etwas gesucht wird, das in dieser Verzeichniskonfiguration beginnt. Sie können sehen, dass dies hier ist, WordPress-NGINX-Konfiguration. Nun, das ist diese Datei, die auf den Computer im BUN für Benutzer kopiert wird . Denken Sie daran, wir verwenden den SSH-Benutzernamen ubuntu. So werden wir uns hier anmelden. Der erste Schritt besteht darin, all diese Dinge im Home-Verzeichnis der urbanen zwei Benutzer zu deponieren , da wir dort tatsächlich den richtigen Zugriff haben können. Ohne das hässlich und kompliziert zu machen. Wir machen das in zwei Schritten. Schicken Sie alle Dateien dort oben zu einer Gruppe von Benutzern. Und am Ende bringen wir alle dahin, wo sie mit Sudo sein werden. Jetzt, wo wir die Datei in sein Home-Verzeichnis geschrieben haben , werden wir sie tatsächlich an ihr endgültiges Ziel schreiben , nämlich Engine X und Gen X.com und so weiter. Das Letzte, was wir tun werden, ähnlich wie im Kurs. Es ist so, als würden wir all diese Konfigurationsdateien bearbeiten, all diese Dienste installieren, all diese anderen Dinge mit dem Basiskonfigurationsskript machen. Schließlich habe ich das in ein separates Skript aufgeteilt , nur weil es eine nettere Art ist, dies zu tun. Wir können darauf vertrauen, dass wir diese gesamte Plattform eingerichtet haben. Und genau wie der letzte Abschnitt sieben, Abschnitt sieben des Kurses spiegelt dieses Skript wider, dass gerade die WordPress-Anwendung, die WordPress-spezifischen Konfigurationsdateien usw. eingerichtet wurden gerade die WordPress-Anwendung, die WordPress-spezifischen Konfigurationsdateien usw. eingerichtet . Das ist also das Ende dieses Abschnitts. Im nächsten Abschnitt werde ich Ihnen kurz erklären, was eigentlich in all dem enthalten ist. Schauen wir uns den Code tatsächlich an. 4. Packer Primitives und Terminologie: Lassen Sie uns über die wesentlichen Packer-Primitiven und die Terminologie sprechen , die Sie tatsächlich kennen müssen, um sie zu verwenden. Diese Primitive sind also Bausteine , aus denen Packer besteht. Sie müssen verstehen, um zu wissen, wie Packer funktioniert und wie Sie wirklich über die Image-Erstellung nachdenken sollen. Ich behandle das in der umgekehrten Reihenfolge wie die Dokumentation, weil ich denke, dass es auf diese Weise einfacher zu verstehen ist. Wir werden vom allgemeineren zum Spezifischeren übergehen. Die Terminologie-Seite in den Dokumenten ist die, über die wir hier sprechen. Wenn Sie sich also eine Packer-Vorlagendatei ansehen , ist das das erste bisschen Terminologie hier. Das beschreibt irgendwie den gesamten Prozess. Dies ist also der eine Ort, an dem alles mit all diesen verschiedenen Keywords, Provision oder Quelle zusammenkommt . Möglicherweise sehen Sie den Build einer Datenquelle oder eines Postprozessors. Du willst irgendwie wissen, was das ist. Also werde ich alles in einem verrückten Absatz erklären und dann werden wir irgendwie alles in einem verrückten Absatz erklären , der das beschreibt. Und dann gehen wir jeden Begriff Stück für Stück durch. Wenn wir diesen R-Befehl ausführen, wird Packer angewiesen die Anweisungen zu lesen und auszuführen, die er in einer Packer-Vorlage findet , die die Datei enthält, die wir uns gerade angesehen haben. Diese Vorlage enthält einen oder mehrere Builder , die wissen, wie man ein Image auf einer Plattform wie AWS erstellt . Packer findet den Build , den wir dort definiert haben Dies ist eine Aufgabe, die ein Image erstellt. Dieser Build ist wirklich nur ein netter Name um eine Reihe von Provisionern gewickelt ist, die die eigentliche harte Arbeit bei der Konfiguration Ihres Images erledigen . Wenn all das gelingt, erhalten Sie am Ende ein Artefakt, das normalerweise wie ein Maschinenimage ist, wie ein AMI bei Amazon. Das ist der Kernprozess. gibt es einen optionalen Teil An jedem Ende dieses Kernprozesses gibt es einen optionalen Teil , wenn Sie Dinge am Anfang ändern möchten, z. B. wenn Sie bereits vorhandene externe Daten für einen Teil dieses Prozesses einbeziehen möchten . Wie ein vorhandenes Maschinenimage , das Sie bereits erstellt haben oder Secrets, die Sie in Ihrem Cloud Secret Store gespeichert haben . Sie können das tun und verwenden Datenquellen, um diese Aufgabe zu erfüllen. Wenn Sie am Ende Dinge modifizieren möchten, wenn Sie bereits ein Artefakt gebaut haben, verwenden Sie dafür sogenannte Postprozessoren. Lassen Sie uns also jedes dieser Primitive eingehend definieren. Templates sind im Wesentlichen Packer-Konfigurationsdateien in HCl oder Jason, die einen oder mehrere Builds definiert, indem alle anderen Packer-Primitive zusammengebunden werden. Es ist der zentrale Ort für die Packer-Konfiguration. Und das können Sie in unserer Vorlage sehen, den Builds, den geschweiften Klammern, die in Zeile 27 beginnen, in der wir den Build definieren. Sie verpacken alles, lassen alles andere, was wir tun, vollständig umfassen. All diese anderen Primitive hier drin, sie sind alle innerhalb eines Build-Befehls, ist ein Unterbefehl für Packer , der ihm sagt, dass er Dinge wie Packer darin machen soll. Laden Sie bitte alle meine externen Abhängigkeiten und Plug-Ins herunter. Packer, funct FMT richtig formatieren Sie meinen Code, Packer, inspizieren Sie Packer, validieren Sie die Packer-Konsole. Und jeder ist Favorit, der, den wir verwenden werden , der Packer Build ist , also bitte erstellen Sie ein Image basierend auf dieser Vorlage. Ein Builder ist eine Packer-Komponente, entweder eingebaut oder ein Plugin. Es wird meistens ein Plugin sein, das weiß, wie man Bilder auf einer bestimmten Plattform erstellt. Also wie ein Google Cloud-Bild und Azure-Bild bei Digital Ocean Image, Amazon, die wir verwenden. Ein Builder ist das, was all diese Art von API-Aufrufkomplexität und Code abschließt API-Aufrufkomplexität und Code , die für jede Plattform spezifisch sind. Sie tätigen zum Beispiel ganz andere API-Aufrufe an Google Cloud als an Amazon, obwohl Sie das Gleiche tun. Die Builder sind also die Module oder Plugins, die all diese Komplexität zusammenfassen. Sie müssen sich also nur darum kümmern wie heißt der Baumeister, den ich brauche? Und welche Parameter braucht es? Eine DataSource ist eine optionale Sache , die Daten abruft , die Sie möglicherweise benötigen. Dies ist eines der Dinge , die Sie am Anfang definierten ausführen würden . Dies könnte ein alternatives Basis-AMI sein, das Sie ein Maschinenimage verwenden möchten, das Sie verwenden möchten. Ein Geheimnis, das in Ihren Clouds Secret Manager gespeichert ist , wenn so etwas. Und dann kommen wir zum Build. Und das ist die einzige Aufgabe , die ein Artefakt hervorbringt. Und wie Sie zuvor gesehen haben , schließt es alles ein. Eine Konsequenz hier unten, die so ist, als würde man prozedurale Sachen machen und Dinge modifizieren und bauen, liegt in der Konfiguration unseres Images. Interessant ist, dass Sie mehrere davon parallel laufen lassen können. Das ist also eine Sache , die du tun kannst. Wenn Sie Bilder für mehrere Wolken produzieren, vielleicht. Dann könnten Sie eine Build-Aufgabe für jeden einzelnen haben, eine Bestimmung oder das, was Sie in diesem Build gesehen haben. Es ist das Primitiv, das Sie tatsächlich verwenden, um Konfigurationsänderungen an Ihren Images vorzunehmen . Builds benötigen eine Art Quelle. Sie wenden Provisioner auf diese Quelle an, um sie zu ändern. Das sind Dinge wie das Kopieren von Dateien, Installieren von Paketen, das Mutieren des Zustands in etwas anderes. Und dann erstellt Packer daraus ein Artefakt. Das Bild, das ich immer wieder sage Bild oder Artefakt austauschbar. Das Artefakt ist genau das, was Ihr Build produziert. Und das ist in unserem Fall einfach ein AMI. Es könnte ein Docker-Container-Image sein, es kann ein VMware-Image sein. Es könnten so viele verschiedene Dinge sein. Und wir werden alle Baumeister durchgehen, die verschiedene Arten von Artefakten herstellen. Wir werden sie nicht alle durchgehen. Ich zeige es dir, ich zeige dir die, die ich am häufigsten benutze. Von da an kannst du es irgendwie übernehmen. Der Postprozessor oder die andere Sache, über die wir gesprochen haben, denen man Dinge machen kann mit denen man Dinge machen kann, nachdem ein Artefakt erstellt wurde. Ich verwende normalerweise nicht viele davon im wirklichen Leben, aber sie machen es wirklich einfach, sich in jeden Prozess zu integrieren , den Sie oder Ihr Unternehmen haben. Wie das Komprimieren, Erstellen einer komprimierten Version Ihres Images oder das Erstellen einer Manifestdatei, oder das Erstellen einer Manifestdatei die jeden Build im Grunde zum Zeitpunkt jedes Builds oder was auch immer verfolgt , kann dies auch sein Dinge wie das Hochladen Ihres Bildes an einen Ort , an dem Sie es benötigen. Um dieses Video zu überprüfen, werde ich den verrückten Satz, den ich zuvor gelesen habe , noch einmal lesen. Und jetzt weißt du genau, was alles bedeutet. Sie führen Packer erneut mit einem Befehl aus , der Packer anweist, im Fall des Build-Befehls, zu lesen und auszuführen die Anweisungen in einer Packer-Vorlage zu lesen und auszuführen. Diese Vorlage enthält einen oder mehrere Builder , die wissen, wie man ein Image auf einer Plattform wie AWS erstellt. Lassen Sie uns zum Code wechseln, um eine noch größere emotionale Wirkung auf Sie zu erzielen. Hier findet Packer die Builds, die wir in diesem Template-Image definiert haben. Dies ist eine Aufgabe, die ein Image erstellt, dessen Build wirklich nur ein netter Name ist , der um eine Reihe von Provisionern gewickelt ist wie Sie hier sehen, die die eigentliche harte Arbeit bei der Konfiguration Ihres Images leisten. Wenn all das gelingt, erhalten Sie am Ende ein Artefakt. Das ist der Kernprozess. 5. Packer: Lassen Sie uns über die Dinge in dieser Konfigurationsdatei sprechen , die nicht von den Primitiven abgedeckt werden , die ich gerade erklärt habe. Der erste ist dieser Packer-Block, zweite ist der Quellblock, und dann ist der dritte der Baustein , auf den ich bereits angespielt habe weil er sich auf das Build-Primitiv bezieht. Du wirst feststellen, dass ich von Blöcken spreche. Das ist eine der Möglichkeiten , wie Packer funktioniert. Es verbraucht diese Vorlagendatei, indem es nach diesen Blöcken sucht , die wir in HCl oder json definiert haben. Der Packer-Block enthält Packer-Einstellungen einschließlich einer Versionsnummer, und die erforderlichen Plug-ins. Du wirst fast immer mögen, das werden fast immer die Builder sein , die du benutzt. In unserem Fall ist es das Amazon-Plugin. Und wir definieren eine bestimmte Version und die Art , wo das ist, falls es sich außerhalb von, ich sollte sagen, HashiCorp Hosted Place befindet. Wenn es also eine Open-Source-Sache auf GitHub ist , wird sie dort sein. Der Quellblock hat diese interessante Syntax , an die Sie sich vielleicht von Terraform erinnern , wenn Sie sie schon einmal verwendet haben. Aber im Grunde ist es das Keyword, das eine Quelle ist. Dann hat es den Builder-Typ, in unserem Fall Amazon EBS, und einen Namen dafür , der lokal für diese Packer-Vorlage sein wird. Das heißt, es weiß, was hier oben zu suchen ist und welcher Form dies mehr oder weniger entsprechen wird. So werden wir es in diesem Build referenzieren . Jeder Builder kann sich eine Funktion in der Programmierung vorstellen wie verschiedene Builder unterschiedliche Parameter benötigen. Packer nennt sie im Wesentlichen Konfigurationsattribute, das ist all das Zeug darin. So wie Amazon benötigt EBS einige dieser Dinge und andere sind optional. Es wird anders sein, ob das ein GCP Builder oder ein Digital Ocean Builder oder ein Docker Container Builder ist . Also die Konfigurationsattribute oder nur die Dinge, die optional erforderlich sind, die Informationen, die Sie übergeben können um die genaue Quelle, das Quellbild oder was auch immer Sie arbeiten möchten, zu erhalten Quellbild oder was auch immer Sie arbeiten möchten, zu oder nur die Dinge, die optional erforderlich sind, die Informationen, die Sie übergeben können, um die genaue Quelle, das Quellbild oder was auch immer Sie arbeiten möchten, zu erhalten während des Builds. Dann wird das alles endlich in den Rechnungsblock übertragen. Aber der spezifische Teil davon , auf den Sie sich konzentrieren sollen, ist dieser. Sie können diese religiösen Bindungen zusammen sehen, die Namenskonvention oben mit Punkten. Also sagen wir, okay, jetzt wollen wir einen Build machen. Wir geben dem einen netten kleinen Namen. Und die Quellen, wir werden diese Rechnungen auf unsere Quelle, Amazon EBS, anwenden , ein Segen für und wenn wir den Namen hier ändern und wir dieses Bein eins zu eins nennen dieses Bein eins zu eins weil wir 27 verschiedene haben ein Segen, ich weiß nicht, LTS-Versionen zu mögen, auf die wir das anwenden. Das ist in Ordnung. Wir müssen es auch hier unten ändern. Okay, jetzt verstehen Sie auf hoher Ebene tatsächlich jeden einzelnen Block aus einer Konfigurationsperspektive , der sich in dieser Konfigurationsdatei befindet. Und du verstehst auch die Primitiven. Also wirklich nur darauf basierend, sollten Sie an dieser Stelle in der Lage sein, fast jede Packer-Vorlagendatei zu lesen , auf die Sie stoßen. Manchmal machen Leute ziemlich verrückte Dinge und sind Packer-Vorlagendateien, aber es ist so, als ob dies die Primitive sind , von denen Packer weiß. Und so wird alles auf diese zurückkommen. 6. WordPress Project: In diesem Video gebe ich Ihnen einen sehr kurzen Überblick den Startstatus des Projekts. Also das ist irgendwie das, was ich dir für dieses Projekt geben werde . Sie finden es hier. Es ist Open Source, es ist aus einem früheren Kurs von mir. Und was ich bereits gesagt habe, ich werde es noch einmal sagen, dass Sie nicht jeden Teil davon verstehen müssen . Dies ist kein Linux-Kurs, es ist kein WordPress-Kurs, es ist kein Kurs für Webhosting auf Unix-Systemen. Aber ich möchte nur, dass du dir die rohen manuellen Dinge ansiehst , die du in diesem Kurs mit mir automatisieren wirst . Also werde ich dich irgendwie auf hohem Niveau durchgehen lassen. Ich sage dir nur irgendwie, was alles macht. Wenn Sie neugierig sind und mehr erfahren möchten, dann schauen Sie sich natürlich an. Aber ich werde dir hier irgendwie sagen, ich sage dir, in Ordnung, wir aktualisieren das Paket-Repository das wir auf B12 haben. Und wir werden einige Pakete installieren, all die Sachen, die wir für WordPress, Datenbank, MySQL benötigen , in diesem Fall ist es eigentlich MariaDB, aber das ist egal. Eine Web Server Engine X, eine Art von VM Runtime, PHP, das wir verwenden, und ein zusätzliches Paket, das bei der Integration in die Datenbank hilft. Ein kleines Überwachungstool, nicht wichtig. Dann zeige ich ein bisschen manuelles Zeug über Dienste. Es ist nicht so wichtig, dass wir sie unbedingt starten, aber wir werden diese aktivieren , denn wenn die Maschine hochkommt, möchten wir, dass sie bereit ist, eine Website ohne weitere manuelle Schritte zu hosten. Daher müssen einige Dienste aktiviert werden. Das ist cool. Es muss konfiguriert werden. Es gibt also einen Teil dieses anderen Kurses, in dem wir eine Konfigurationsdatei erstellen. Und das ist die Hauptkonfiguration des Webservers. Nur als Datei gespeichert ist für Linux hier sehr traditionell, nur reine Textdateien. Wir machen genau dasselbe für PHP, also für die Sprachlaufzeit, und das können Sie hier sehen, ein bisschen mehr Zeug. All diese Befehle sind wirklich genauso wie das Verschieben Dateien, das Bearbeiten von Dateien. Das Letzte, was wir tun, ist, einen Website-Benutzer zu erstellen , den die Website ausführen soll , da meine Schüler aus dem anderen Kurs tatsächlich mehrere Websites auf einem einzigen Server ausführen mehrere Websites auf einem einzigen Server was die normale Art war, das zu tun. Es ist, als würde man einen Benutzer erstellen, ein zufälliges Passwort Dinge sicher einrichten. Dann wird das Fleisch dieses Projekts wirklich in dieser Datei hier sein. Und das ist der eigentliche Prozess der Einrichtung der WordPress-Anwendung , nachdem diese Art von Hosting-Plattform konfiguriert wurde. Das ist also irgendwie die Anwendung, die über allem läuft , was Sie gerade gesehen haben. Sie können sehen, wo ich Dokumente dafür geschrieben habe. Sie können dies eingehend durchlesen, wenn Sie möchten. Aber wir erstellen einen Systembenutzer, welche Art von Verbindung alles, Erstellen eines Verzeichnisses, in das diese Website gehen soll. Wir erstellen eine spezielle Webserver-Konfigurationsdatei nur für diese Site, die über die grundlegende Konfiguration hinausgeht. Und dann machen wir noch mehr assistierte viele ähnliche Dinge. Verschiebe eine Datei, lösche ein Ding, füge etwas hinzu, erstelle eine zufällige Zeichenfolge. Für ein Passwort. Set, führen Sie einige Befehle in einer SQL-Shell aus. Laden Sie etwas herunter wie eine andere Sache löschen oder, wissen Sie, etwas dekomprimieren und dearchivieren, starten Sie neu und spielen Sie mit einigen Diensten herum, ändern Sie eine Datei, so etwas. Dies sind alles Dinge , die Packer automatisch für Sie tun kann oder die Sie mit einem Shell-Skript oder etwas anderem tun können. Hier gibt es nichts, was nicht automatisierbar ist. Das ist also die allgemeine Ansicht für den Fall, dass Sie neugierig sind , was dieses Projekt, das Sie pasteurisieren, tatsächlich unter der Decke macht. Jetzt wieder, zum 20. Mal, wollte ich einfach absolut sicher sein, dass das so ist. Fühl dich nicht komisch, wenn du nicht alles verstehst , was ich dir gerade gezeigt habe, du musst es nicht. Eines der wunderbaren und erstaunlichen Dinge an Packer, gerade an der Automatisierung , die wir in diesem Kurs durchführen , ist, dass dies einer der Vorteile ist. Es ist so, dass, sobald etwas in eine Automatisierungsebene eingeschlossen ist, nicht jeder, der diese Automatisierung verwendet oder das konsumiert, was wir zusammenfassen, vollständig verstehen muss , was es verpackt. In diesem Fall müssen Sie all diese manuellen Dinge und all diese Konfigurationsdateien und jede Anweisung und jede Datei nicht verstehen. Alles was Sie wissen müssen ist, dass es sich um eine Datei handelt und dass sie irgendwohin geht. Und wenn es irgendwohin geht und dann alles richtig konfiguriert ist, wird dieses Ding einfach funktionieren. Das ist alles was Sie darüber wissen müssen. Natürlich, wenn du neugierig bist und dich vertiefen willst, ist das wunderbar. Aber ich denke, das ist einer der großen Vorteile was Sie in diesem Kurs tun, ist , dass Sie sehen , dass Sie nicht die Details jeder einzelnen Sache vollständig verstehen müssen , weil Sie gerade eine Automatisierungsschicht, die eine Art Abstraktionsschicht um diese herum ist. Okay? Sie sind also sehr, sehr gut, ich kann die Packer-Sache verstehen , die wir damit machen, aber Sie müssen das nicht perfekt verstehen. Okay, also ich hoffe, das hat deine Ängste beseitigt und dir ein besseres Gefühl gegeben nicht jeden einzelnen Befehl hier drin vollständig verstanden hast. Und wenn du das tust, großartig, Es ist kein besonders kompliziertes Setup wir hier haben, aber es ist sehr verbreitet. Sie werden sehen, dass dies die Art von Sachen ist , die im wirklichen Leben auf der ganzen Welt produziert werden. Es ist also sehr, es ist sehr ähnlich wie das was Sie sehen werden, wenn Sie Packer verwenden. 7. Packerized Project: Lassen Sie uns also in den Code einsteigen. Wenn wir hier zum Build-Abschnitt gehen, gehen wir ihn einfach durch. Das erste, was passiert, ist eine Shell-Bereitstellung oder die das AMI-Konfigurationsskript für das Skriptverzeichnis ausführt. Okay, lass uns in das Verzeichnis scripts gehen, AMI-Konfigurationsskripte. Schauen wir uns das an. Vielleicht erinnern Sie sich an einige dieser Dinge aus dem Bash-Skripting-Bereich. Aber ich habe im Grunde nur die Kernteile des Hosting-Plattform-Setups übernommen die Kernteile des , wie ich es in dem Kurs mache , in dem ich Sie an dieser Stelle durchführe und Linux irgendwie erkläre. Nun weißt du schon, wie Linux funktioniert und wir können das alles irgendwie in einem Skript machen. Also habe ich wirklich alle diese Befehle in ein Skript transponiert. Dies ist ein Bash-Skript und Sie können sehen, wie Sie meine, meine SQL Server Engine X PHP, MySQL, PHP, NPM installieren meine, meine SQL Server Engine X PHP, MySQL, PHP, , diese Dienste starten und aktivieren , damit sie beim Booten starten. In der Tat glaube ich nicht, dass ich sie wirklich starten muss, weil ich nur, ich werde mir diese Maschine vorstellen, aber es ist nicht wirklich wichtig. Dann installiere ich ein paar PHP-Erweiterungen. Das sind die, die du für 2204 brauchst. Dies sind einige Erweiterungen , die ich irgendwie baumeln lasse , bis weitere Nachforschungen anstehen. Aber die Dinge funktionieren ohne sie. Es ist völlig in Ordnung. Diese existieren 2204 nicht oder wurden subsumiert. Andere Paketnamen, wir führen einige NGINX-Konfigurationen durch, also einige der Dinge, von denen unsere NGINX-Konfiguration abhängt, wie das Erstellen dieses Verzeichnisses usw. Wir standardisieren auf etwas Älterem was läuft PHP F P, M. Ich kann mich verpflichten , das zu ändern. Sie müssen sich darüber nicht zu viele Sorgen machen. Cool Das ist also das Ende des Drehbuchs. Sie können also sehen, dass uns das so ziemlich am Ende der Verwaltung von Diensten bringt . Also haben wir angefangen, die Dienste zu installieren, zu starten und zu aktivieren, die wir benötigen. Schauen wir uns an, was die nächsten Provisioner tun. Sie können also sehen, dass wir jetzt Dateien verschieben. Dies ist die Haupt-Engine-x-Konfigurationsdatei , mit der Sie zu diesem Zeitpunkt sicherlich vertraut sind. Wir werden, das ist wie die WordPress-Site-Konfigurationsdatei, die den Datenverkehr für Ihren Anwendungsserver, Ihren PHP-Server, irgendwie vorantreiben wird . Die PHP FEM-Konfiguration für Ihre Site kommt hier vorbei. Schauen wir uns die mal kurz an. Das ist also die Haupt-Engine x-Konfiguration. Sie kennen sich damit sehr gut aus. Das macht dein P aus, deshalb machen wir es. Erstellen Sie das Cache-Verzeichnis. Die Site-Konfigurationsdatei für Engine X hier, du bist total, sollte aus dem Kurs total daran gewöhnt sein. Nun, in den Anweisungen, die ich habe, habe ich das wie eine Shell-Variable und du kannst das ändern, während du mit diesem Zeug arbeitest. Natürlich, wenn du das für dich selbst einrichtest, würdest du es einfach klonen und dann das Tutorial Linux für die Domäne lösen Tutorial Linux für , auf der du die Seite einrichten willst, egal welchen Benutzer du verwenden wirst und so weiter. Also, wenn Sie buchstäblich nur im Paketverzeichnis Tutorial Linux finden und ersetzen Paketverzeichnis Tutorial Linux was auch immer Ihr Site-Name ist oder welcher Domainname auch immer ist, dann sollten Sie ziemlich glücklich sein. Braucht nicht viel. Gleiche gilt für PHP-SPM. Das kümmert sich eigentlich überhaupt nicht um die Domain. Nur das Home-Verzeichnis Ihres Benutzers, so etwas. Wir bringen diese an ihren Platz, ziemlich selbsterklärend. Und dann unsere endgültige Bestimmung oder installiert tatsächlich WordPress. Und du wirst sehen, WordPress-Seite einrichten. Das ist wie dieser ganze Prozess , den wir hier in den ursprünglichen GitHub-Anweisungen ausführen , durch die ich dich im Kursvideo führe. Lovely ist auch ein Haufen Inline-Konfigurationsdateien. Jetzt machen wir das, das sind einige der Konfigurationsdateien, die wir gerade geschrieben haben und über die wir gerade gesprochen haben. Jetzt machen wir das alles einfach in einem Drehbuch. Und dieses Skript ist das WordPress-Site-Setup-Skript. Und das ist eine Art angepasste Version dessen, was ich in dieser Markdown-Datei mache. Es gibt ein paar Probleme, die ich lösen musste, nämlich wie stellen wir fest, dass Sie in meinem SQL Pass eine interaktive Sache sind. Also wiederhole ich das einfach , damit du es während des Build-Prozesses siehst. Sie können es während des Build-Prozesses kopieren. Das ist nicht perfekt. Wenn Sie das professionell machen würden, würden Sie das wahrscheinlich nicht wie in Ihren Build-Systemprotokollen oder was auch immer wollen . Aber wie bei diesem Kurs ist es völlig in Ordnung. Wenn du das für dich selbst tust. Für ein kleines Unternehmen werden Sie diese Protokolle nicht für immer aufbewahren. Sie werden buchstäblich in einer Muschel wiedergegeben. Etwas wie dieses, wo Sie sehen werden ein Packer-Setup-Skript etwas protokolliert , das Sie als mein SQL-Pass angesehen haben, ist das , wissen Sie, kein großes Problem. Du rettest das nicht für immer. Also steckst du das in deinen Passwort-Manager und dann bist du ziemlich startklar. Abgesehen davon folgt dies den Anweisungen wirklich sehr, sehr , sehr, sehr genau. Über das einfache Herunterladen der WordPress-Anwendung beim Zippen, Archivieren, Dekomprimieren und Einstellungen und Berechtigungen für dieses Home-Verzeichnis und Beenden. Und zu diesem Zeitpunkt sollte so ziemlich alles eingerichtet sein. Was Packer dann tut, ist, wenn es im letzten Build-Schritt zum letzten Ding kommt, ist es okay, cool. Wenn dieses Ding immer noch reagiert, gehe ich davon aus, dass es erfolgreich war. Und ich werde mir diese Maschine vorstellen. Und was es tun wird, ist ein AMI, ein Amazon Machine Image, zu erstellen . Wo auch immer der Zustand dieser Maschine ist. 8. Packer installieren: Reden wir also über die Installation von Packer. Sie können eine Binärdatei beschreiben, wenn Sie möchten. Und ich denke, das ist völlig in Ordnung. Und das ist von der Download-Seite. Habe mir gerade die neueste Version für die Plattform geholt , auf der du dich befindest. Und übrigens, kann ich einfach sagen, dass ich es geliebt habe, dass diese Typen hier sind, macht mich einfach glücklich. Wenn du OSX verwendest, kannst du Homebrew mit diesen beiden Befehlen verwenden. Unter Windows haben Sie hier Binärdateien. Unter Linux können Sie die HashiCorp-Versionen hinzufügen, repo, und dann einfach alle Hace-Tools von dort aus installieren. Ich wollte nur zeigen, dass die schokoladige Option unter Windows wahrscheinlich die coolste ist. Wenn Sie den schokoladigen Paketmanager verwenden weil Sie Teil der coolen Feature-Paket-Management-Welt sein möchten der coolen Feature-Paket-Management-Welt die schon lange überall sonst passiert . Schokolade ist wahrscheinlich was du willst. Und wie Sie sehen können, können Sie das. Es wird von Drittanbietern verwaltet, aber es ist immer noch möglich, es auf diese Weise zu installieren. Also für mich selbst habe ich Packer bereits installiert und Sie können einfach sehen , dass Sie in jeder UNIX-ähnlichen Umgebung wahrscheinlich in der Lage sein werden, welchen Packer auszuführen. Und das zeigt dir , wo es installiert ist. Und du kannst sehen, dass ich das über Homebrew installiert habe. Wenn Sie die Binärdatei auf ein Unix-ähnliches System herunterladen, sollten Sie sie wahrscheinlich in die lokale Benutzerumgebung einbinden. Und das braucht ein Pseudo. Aber das ist so ziemlich alles was du tun musst. Und dann hast du Packer installiert und wir können von dort aus weitermachen. Wir sehen uns im nächsten Video. 9. Erstellen eines SSH in AWS EC2: In Ordnung, lassen Sie uns schnell über das Erstellen eines Schlüsselpaars sprechen. Wenn Sie noch keine haben , können Sie dieses Video überspringen, wenn Sie noch eines haben, bei dem Sie ein SSH-Schlüsselpaar für EC2 verwenden können. Aber für diejenigen, die dies nicht tun, können Sie im Haupt-Dashboard entweder auf Schlüsselpaare klicken , hier sind wirklich von überall in EC2, Sie können links nach unten zu Netzwerk und Sicherheit scrollen, auf Schlüsselpaare klicken und dann eine erstellen neues Schlüsselpaar. Ich nenne meinen 2022, Cohen. Wir werden es in EDA zum 5519-Schlüssel im PEM-Format schaffen und dieses Schlüsselpaar erstellen. Und Sie können sehen, dass die Datei einfach automatisch heruntergeladen wird. Lassen Sie uns eine lange Liste unseres Download-Verzeichnisses mit unserem Schlüssel 2022 d Cohen erstellen. Sie werden eine Sache bemerken , die viele neue Benutzer verwirrt, nämlich dass diese Berechtigungen 644 es ermöglichen, dass dies für die Welt lesbar ist , was SSH tatsächlich überprüft n, nicht so bei alle. Und lass dich einfach nicht verbinden. Viele, viele Neulinge hängen hier auf und das ist völlig okay. Es ist wie eine komische Sache. Sie werden so geschaffen. Aber alles was wir tun werden ist im Grunde unser SSH-Verzeichnis mit unserem SSH-Zeug nur ein Schlüsselpaar. Also legen wir die Berechtigungen richtig fest und verschieben sie dann einfach in das SSH-Verzeichnis. Wir sagen CH, meins, gib ihm einfach 600. Heruntergeladen. 2022, Strich d Cohen. Jetzt können Sie sehen, dass wir all diese Gruppen- und anderen Berechtigungen in drei Schritten entfernt haben . Entschuldigung, ich markiere das nicht richtig. Das ist also jemand anderes im System, das ist Gruppe. Die Gruppe des Besitzers kann also nicht lesen und jeder andere im System kann auch nicht lesen. Es ist nur der Besitzer , der gelesen und schreiben hat, und der Besitzer ist Dave. Jetzt können wir die Datei tatsächlich verschieben. Ich meine, du hättest es auch vorher verschieben können, aber in unser SSH-Verzeichnis wird das SSH-Verzeichnis mit einer langen Liste aufgelistet und das wird dir nur zeigen , dass diese alle nett und sauber sind. Sie haben dieselben Berechtigungen. Nun, das letzte, was ich Ihnen mit Schlüsseln zeigen werde und ich denke, das ist einfach eine wunderbare Komfortfunktion. Ist SSH-Anzeige Ihr SSH-Agent, als wäre es ein Dämon, der rennt. Und was Sie tun können, ist im Grunde genommen, wenn Sie Verbindung zu Ihren EC2-Instances oder was auch immer herstellen, eine Verbindung zu Ihren EC2-Instances oder was auch immer herstellen, insbesondere wenn Sie viele Schlüssel in Ihrem SSH-Verzeichnis haben , werden nur die ersten drei ausprobiert, die es findet. Und dann haben Sie vielleicht keine Versuche mehr. Also fangen die Leute an, SSH, Dash, ich, wie einen Schlüssel zu machen, und tun es dann aus der Ferne oder was auch immer. Das ist sehr häufig zu sehen. Eine Möglichkeit, dies zu vermeiden, besteht darin einfach die zu verwendende zu Ihrem SSH-Agenten hinzuzufügen . Und das geht so mit SSH 2022 d. Cohen. Wenn es ein Passwort gibt, werden Sie einmal nach diesem Passwort gefragt und es dann entschlüsselt im Speicher aufbewahrt. Und was wirklich schön daran ist, ist, dass Sie, wenn Sie das dann für alle Ihre öffentlichen IP-Instances verwenden , jetzt eine Verbindung zu all diesen herstellen können , ohne erneut aufgefordert zu wenn Sie das dann für alle Ihre öffentlichen IP-Instances verwenden, jetzt eine Verbindung zu all diesen herstellen können, ohne erneut aufgefordert zu werden passwort jedes Mal oder wie für jeden Befehl oder ähnliches, zeige, dass du es erneut hinzufügst, SSH ist dort aufgeführt. Und wenn Sie es löschen möchten, können Sie es löschen. Cool. Das ist also irgendwie der Lebenszyklus. Wenn Sie Ihren Computer neu starten, ist SSH add beim Neustart wieder leer. Das ist also wie eine einmalige Sache pro Start. Es ist ziemlich rot. Da hast du's. Das müssen Sie über Schlüssel bei Amazon wissen . Und wir sehen uns im nächsten. 10. Erstellen eines AWS IAM für Packer: Ordnung, in diesem Video werden wir uns die Erstellung eines programmatischen Zugriffs für Packer in Amazon ansehen . Wir tun das, indem wir etwas namens IAM verwenden. Es ist ein ganz anderes wie Dashboard und Service in Amazon. Identitäts- und Zugriffsmanagement. Was wir dort tun werden, ist einen Benutzer zu erstellen , der API-Zugriff hat, programmatischen Zugriff, wie sie es nennen. Und was das für dich ausspuckt, ist wirklich nur ein Schlüssel und ein Geheimnis. Das ist die Art der automatisierten Anmeldung die die Packer verwenden werden, um sich zu identifizieren, hey, ich darf das auf Daves oder Ihrem AWS-Konto tun. Und dann verwenden Packer diese um Ihre Instance hochzufahren, eine Sicherheitsgruppe zu erstellen, damit sie sich mit dieser Instance verbinden kann, und einen SSH-Schlüssel erstellen, damit sie sich bei dieser Instance anmelden kann. Es braucht, es braucht die Berechtigung, ein AMI tatsächlich zu backen, um ein AMI aus einer laufenden Instance zu erstellen. All diese Berechtigungen, da es sich einen Packer-Kurs und nicht um einen AWS-Kurs handelt. Eine vollständige Ausführung von AWS und Produktionskosten würden 600 Stunden betragen. Ich würde von dir verlangen, dass du ein dreimonatiges Praktikum bei mir machst. Bevor ich es erledigt nenne. Dies ist in erster Linie ein Packer-Kurs, daher werden wir dies auf vereinfachte Weise tun. Das bedeutet, dass wir diesem Kontoadministrator einfach viel zu viel Zugriff gewähren, was für Produktionszwecke ist. Das alles braucht es nicht. Im wirklichen Leben würde man das auf etwas reduzieren, das genau das ist, was der Packer braucht. Okay, davon abgesehen, lasst uns einsteigen und uns einfach ein wenig anmelden. Im Dienst. Gehen wir zu IAM. Schauen wir uns die Benutzer an und fügen einen Benutzer hinzu. Was wir jetzt wirklich wollen, ist API-Zugriff. Also nennen wir das d Cohen May, und wir wollen programmatischen Zugriff. Das wird also API-Zugriff sein. Wir brauchen dies nicht, um ein neuer Konsolenbenutzer zu sein , der sich anmelden und diese GUI verwenden kann, die wir verwenden. Dafür ist das nicht da. Benennen Sie es und stellen Sie sicher, dass es sich um einen Zugriffsschlüssel für den programmatischen Zugriff handelt. Wir werden das in einem vielleicht, vielleicht dem meisten Kurzurlaub tun, der nur Tag-Administratorzugriff hat . Dies ist nichts, was Sie in der Produktion tun möchten. In der Produktion möchten Sie beispielsweise für Packer eine Packer-Rolle erstellen, die einfach nur über die erforderlichen Berechtigungen verfügt. Also wie EC2 dot star, wenn Sie ziemlich grob sein wollen, aber eher wie Instance erstellen, wie AMI erstellen, Schlüssel erstellen, EC2-Schlüssel erstellen, EC2-Schlüssel löschen. Siehst du was ich sage? Es ist, als würde ich Ihnen den allgemeinen Überblick darüber zeigen, wie das funktioniert. Also verwenden wir einfach den Admin-Zugang , der dir irgendwie alles gibt. Aber auch hier keine gute Idee für irgendetwas Produktion. Dies ist der CH Mod 777 von AWS. Jetzt sehen Sie den geheimen Zugriffsschlüssel nur noch einmal. Du wirst das kopieren und irgendwo speichern wollen, ich speichere das in einem Puffer und meinem Editor, die Zugriffsschlüssel-ID. Zeig das. Es ist okay für dich, das zu sehen, denn ich werde diesen Schlüssel löschen, bevor ich überhaupt daran denke, diese Videos hochzuladen. Aber auch dies geht sofort wie in einem Passwort-Manager wenn Sie es für längere Zeit verwenden. Okay. Jetzt haben wir also den gesamten Zugriff, den wir benötigen, eingerichtet. Kann ich einfach sagen, dass dies ein bizarrer Rechtschreib-, Grammatik Grammatikfehler wenn der Benutzername des Benutzers erstellt wurde. Es ist so seltsam. Es sollte sein wer ist, wer schreibt dieses Zeug? Amazon, verdient ihr nicht 70 Billionen Dollar im Jahr? kannst du nicht überprüfen. 11. Der Packer: Okay, Sie haben Packer installiert, Sie haben einen SSH-Schlüssel in Ihrer AWS-Konsole erstellt , den Sie damit verwenden können, Sie haben ein IAM-Konto erstellt, sodass Sie tatsächlich programmatischen Zugriff für Packer in AWS haben . Und jetzt willst du das einfach laufen lassen und sehen, was passiert. Ich denke, das ist eine großartige Art zu lernen. Lassen Sie uns das ausführen und sehen, was passiert. Hier sind die Schritte, die du machen musst, um dorthin zu gelangen. Du hast Schritt eins gemacht. Und Sie können das Demo-Projekt hier verwenden das Demo-Projekt hier ohne etwas zu schreiben, nur um zu sehen wie der Prozess abläuft, bevor Sie Ihr eigenes Projekt starten, in dem Sie vielleicht etwas konvertieren , das Sie möchten. um an einem Packer-Projekt zu arbeiten. Sie haben also API-Zugriff. Dies sind nur die manuellen Schritte , die wir in diesem Video gesehen haben. Hier ist der Moment der Wahrheit. Sie müssen dies jetzt in Ihre Shell exportieren. Also habe ich diese Schlüssel hier. Du kannst gerne versuchen, sie zu benutzen, aber sie funktionieren nicht, weil ich sie direkt nach der Erstellung dieses Videos deaktiviere . Ich kopiere diese und exportiere sie in eine Shell. Wenn Sie mit Linux nicht besonders vertraut sind, ist das in Ordnung. Ich bin im Grunde nur in meinem Pack oder Verzeichnis hier, dem Projektverzeichnis. Und ich werde diese beiden Zeilen buchstäblich einfügen. Und das bedeutet, dass in meiner Shell-Umgebung diese Umgebungsvariablen auf meinen tatsächlichen Zugriffsschlüssel, meine ID und mein Geheimnis gesetzt werden . Und das bedeutet, dass wenn Packer ausgeführt wird, es automatisch in meiner Shell-Umgebung nachschaut meiner Shell-Umgebung nachschaut ob diese Dinge auf etwas eingestellt sind , das nicht leer ist. Das ist nur um zu sehen, ob sie existieren. Und dann wird es versuchen, diese zu verwenden, um sich bei Amazon anzumelden und all die Packer-Magie zu entfalten, die es tut. Jetzt, wo das erledigt ist, können wir einen der Packer-Befehle ausführen, nämlich init, alle erforderlichen Plug-Ins für Builder herunterlädt , die er benötigt, wie den Amazon EBS-Builder. Und initialisiere einfach Packer. Und dann machen wir von dort aus weiter. Packer ist mit der Initialisierung fertig und das liegt nur daran, dass ich bereits auf dieser Maschine entwickelt habe. So wie diese sind diese Dinge bereits installiert. Aber auf Ihrem Bildschirm sehen Sie vielleicht, als würde Hafer den Amazon Builder herunterladen, so etwas. Ich werde ein bisschen später ein Video darüber machen, aber ich habe einige kleine Änderungen vorgenommen die das Packer-Format vornehmen würde. Nichts funktionales oder großes. Aber diese Befehle sind cool auszuführen, also können wir Packer validate ausprobieren. Ich zeige dir den Rudelspaß später. Aber Sie können sehen, dass Packer im Grunde nur nach Formatierungsproblemen sucht , die der Konvention entsprechen. Geh es legen. Hcl-Konventionen und Packer-Validierung prüfen tatsächlich, ob Sie alle Teile haben , nach denen Packer in Ihrer Vorlage suchen wird . Jetzt können wir also weitermachen und das aufbauen. Und die Art und Weise, wie wir das tun, befindet sich in dem Verzeichnis, in dem sich diese Datei befindet. Natürlich können wir Packer den Build-Befehl geben und wieder davon ausgehen , dass wir diese Shell-Variablen exportiert haben , als ob Sie einen gültigen Satz von Zugriffsschlüsseln von Amazon haben, im Wesentlichen hier anmelden. Dann wird das funktionieren. Wenn Sie danach Ihr eigenes Projekt machen und es in Azure machen, sagen wir, das ist in Ordnung. Es ist nur so, dass Sie brauchen der Azure Builder dort andere Anmeldeinformationen und Ihre Shell-Umgebung benötigt andere Anmeldeinformationen dort andere Anmeldeinformationen und Ihre , nach der er suchen wird. Einige Anbieter benötigen eine Konfigurationsdatei , die es gibt oder von der Sie ihr mitteilen, wo sie sich befindet. Wir sprechen hier nur über AWS. Lassen Sie uns Packer ausführen, WordPress, AWS Ubuntu erstellen und sehen, was passiert. Es durchläuft den gesamten Prozess. Sie können sehen, dass dort ein temporäres Schlüsselpaar erstellt wird. Und das ist eigentlich ein separates Schlüsselpaar, nicht das, das wir erstellt haben. Das ist also eigentlich nur für Packer, um sich anzumelden und Provisioner auszuführen , wobei das Schlüsselpaar Sie zuvor erstellt haben, verwendet wird. Diese Instanz wird mit diesem Schlüsselpaar versehen. Es wird hochgeladen und Sie können es für ein SSH-Protokoll verwenden. Das wird also eine Weile dauern. Und Sie können sehen, dass wir in der Zwischenzeit eine Instanz sehen können , die hochgefahren wurde. Es läuft jetzt. Es sieht so aus, als ob es sich noch im Initialisierungszustand befindet, aber tatsächlich ist es bereits verbunden, da Sie sehen können, dass wir nur ein Paket mit einem Update ausführen. Das ist also wie apt-get update und apt-get upgrade von unseren Skripten. Und es sieht irgendwie so aus, wie wir es erwarten. Nur wenn Sie neugierig sind, erstellt Packer im Rahmen des Amazon EBS-Builders alle möglichen anderen Ressourcen . Es ist also so, als würde man definitiv die Amazon API treffen. Es wird eine Instanz erstellt. Es wird eine benutzerdefinierte einmalige Sicherheitsgruppe nur für diesen Packer-Build erstellt. Und das alles wird einfach so weitergehen und ich lasse es hier. Ich könnte das beschleunigen , weil es eine Weile dauern wird. Du wirst einfach zusehen, wie dieser Build losgeht. Sie können sehen, dass hier ein paar Schritte richtig sind, die Engine-X-Dateien hochzuladen. Dies ist also eine weitere Bestimmung oder das Hochladen dieser NGINX-Konfigurationsdatei, und dies befindet sich nur in das B12-Home-Verzeichnis. Vorerst. Es wird das Packer-Setup-Skript ausgeführt. All das Zeug ist passiert. Es erscheint ein My Sequel, ein zufällig generiertes MYSQL-Passwort. können wir behalten. Das wirf ich in die Schlüssel. Und jetzt backen wir einfach ein AMI. Das heißt, wir können uns AMIs ansehen und sehen, dass es sich um ein ausstehendes AMI handelt. Es wird gerade aus unserer Instance gebacken oder die Instanz wird gestoppt. Es erstellt daraus ein AMI. Wenn dieses AMI tatsächlich abgeschlossen ist, wird unsere Instance beendet. In Ordnung, und Sie können sehen, dass wir fertig sind und alles erledigt ist sobald es sieht, dass das AMI nicht mehr aussteht, sondern bereit ist. Es weiß, dass es alles bereinigen kann , was es für diesen Lauf erstellt hat, einschließlich der Sicherheitsgruppe, die wir zuvor gesehen haben, des Schlüsselpaars, das Sie am Anfang erstellt haben. Und die meiste Zeit ist es wirklich so. Ich meine, du hast gesehen, dass es nur die AMI-Erstellung war. Wenn ich das jetzt aktualisiere, sollte der Status verfügbar sein. Die Instanz wurde bereinigt. 12. Mit dem AMI für die Moderation einer WordPress-Site: Nachdem wir unser Image erstellt haben, können Sie sehen, dass wir hier fertig sind. Dieses Ding wird aus dem MYSQL-Passwort wiedergegeben. Es wird hier ein AMI erstellt das den Namen wiedergibt , den es gegeben hat. Sobald das Image fertig ist, beendet es die Quellinstanz. Die ursprüngliche Instanz wurde also vorübergehend hochgefahren, um Skripte zu konfigurieren oder ihnen geht das Glück aus. Das wurde wieder kaputt gemacht. Die Sicherheitsgruppe, mit der sie sich selbst auf die Instanz mit dem von ihr erstellten temporären Schlüsselpaar zugreifen ließ . All das Zeug hat zwei bekommen. Das ist also ein netter sauberer Prozess. Und Sie können sehen, dass wir nur noch dieses Bild bei ihnen haben. Wenn Sie Terraform oder so verwenden, können Sie dieses Bild jetzt nicht unbedingt durch eine MID referenzieren , sondern durch die Quelle, in der es wie dieses Format ist , im Grunde wie Konto-ID, Name. Wenn Sie Packer gesagt haben, dass er das so etwas wie dash date nennen soll, Es ist eine nette Möglichkeit, sie zu organisieren, aber genau wie wir in diesem Paket gesehen haben oder konfigurieren würde dasselbe tun und terraform mit einer Datenquelle wo du sagst einfach, okay, der Besitzer wird ich sein, mein Konto. Der Name wird so sein, wie ich es zuletzt genannt habe , es wird wahr sein. Das ist eine weitere Möglichkeit, den neuesten Build oder Produktions-Build zu erhalten . Wenn Sie etwas wie Terraform verwendet haben, würde das den Rahmen dieses Kurses etwas sprengen, aber nur um zu sagen, wie sieht der Prozess eigentlich aus, wenn wir eine Instance von diesem aus starten? Nun, da dies der Fall ist, nennen wir dieses Tutorial einfach Linux Web. Und Sie können sehen, dass es dieses AMI verwendet. Sie können dies über das Menü „Neue Instanz“ aufrufen , um das AMI hier auszuwählen. Wählen Sie aus, was auch immer Sie sagen möchten, dass ich Gastgeber sein werde. Ich weiß es nicht. Ich werde eine mittelgroße Website hosten. Ein paar, ich weiß nicht, ein paar 100 Benutzer. Vielleicht ist es ein Geschäft, braucht ein paar Erinnerungen. Vielleicht sage ich zwei oder vier vCPUs und vielleicht acht Gigs Speicher für eine größere WordPress-Site, du würdest nur ein Tastatur-Tastenpaar auswählen, das du hast. Https, HTP, es wird ein Webserver. Erlauben Sie, wissen Sie, vielleicht nur von Ihrer IP oder nur von Ihrem privaten Netzwerk, von der VPC, was auch immer. Und ich würde tatsächlich GPT-3 gehen. Und vielleicht, ich weiß nicht, nenne es für eine größere WordPress-Seite. Möglicherweise haben Sie viele Bilder, die wie vom Benutzer hochgeladene Daten sind, unabhängig davon, welcher Speicherplatz billig ist. Also 5000 Gigs, dieses Zeug ist wie, weißt du, das ist nicht wirklich das, was du dafür bezahlst. Also ja, das scheint cool. Wir starten diese Instanz und ich zeige es Ihnen, wenn wir uns anmelden. Also das läuft jetzt. Es wird wahrscheinlich immer noch hochgefahren, aber ich werde ins Netzwerk gehen und die öffentliche IP-Adresse kopieren. Ich werde zu SSH diese Adresse hinzugefügt haben. Ich gehe davon aus. Ja. Okay. Mein SSH-Agent hatte bereits die Schlüssel. Es ist so, als ob Sie im Grunde Ihren Standard-SSH-Schlüssel auf diesem Computer verwenden , und das war Ihr SSH-Schlüsselpaar , dass dieser Computer diese Instanz entwickelt, dann wird das einfach funktionieren. Sonst musst du vielleicht so etwas tun. Sie können sehen, dass dies nur ein Beispielschlüssel ist , den ich erstellt habe. Es ist ein PIM-Schlüssel, den ich in AWS erstellt und heruntergeladen habe. Wenn du verwirrt bist wie die Schlüssel und die Regeln und alles, wie das alles funktioniert. Dann werden Sie sich mein vorheriges Amazon-Video ansehen wollen mein vorheriges Amazon-Video um zu erfahren, wie das bei Amazon im Allgemeinen geht, denn wenn Sie es bei Amazon noch nicht manuell tun können, wird es schwierig sein, dies auf automatisierte Weise zu tun irgendwie alles wie Magie aussehen wird . Wie auch immer. Sie können sehen, dass wir jetzt auf diesem Host sitzen , private IP. Ja, du kannst so etwas machen wie eine Axt läuft. Ich weiß, es liegt daran, dass der immer noch Kriminelle diesen Teil des Dienstnamens macht. Denke ich. Du kannst sehen. So wie es hochgefahren wird, können Sie sehen, dass der PHP-f-Pm-Pool namens Tutorial Linux konfiguriert ist. Das funktioniert also im Grunde. Wir können die WordPress-Seite sehen, wenn wir ETC bearbeitet haben. Hosts mögen, eigentlich glaube ich nicht, dass es funktionieren wird, weil Tutorial Linux.com hs ts verwendet, also wird es sowieso auf HTTPS bestehen, lange Rede kurzer Sinn. Dies wäre jetzt buchstäblich nur eine frische WordPress-Installation, auf der all die Dinge ausgeführt werden, die wir eingerichtet haben, bereit zu konfigurieren und loszulegen. Das ist also wirklich die, die, alle manuellen Befehle, die während des Kurses durchlaufen werden durchlaufen , wenn Sie es lernen. Mit einer schönen, süßen WordPress-Instanz, auf der du deine Website einrichten kannst, während sie einen WordPress-Server ausführt, aber auf der du die WordPress-Site tatsächlich konfigurieren kannst. Und ja, es ist eine nette Art, das einfach aufrecht zu verpacken. Und wann immer du willst, ich weiß nicht, du willst dich nicht mehr damit auseinandersetzen. Sie beenden einfach die Instance und alles geht weg. Sobald Sie Websites haben, die darauf eingerichtet sind, möchten Sie natürlich so sein, als würden Sie die Instanz fotografieren und nicht nur beenden, oder? Weil das Ihre Websites sind, die darauf laufen. Aber ja, es ist ein netter Entwicklungs-Workflow. Und die Tatsache, dass Sie Packer innerhalb weniger 100 Zeilen so schnell verwenden können , um alle Setup-Skripte einzubeziehen, um ein cooles kleines Image erhalten, das einfach immer für Sie verfügbar ist. Ich behalte das nur zum Testen. Ich behalte es bei, um zu überprüfen, ob jemand wie meldet, dass es einen Fehler gibt. Normalerweise ist es kein Bug und es ist so, als ob sie bei einigen Anweisungen verwirrt waren . Also werde ich einfach das neueste Bild oder was auch immer verwenden . Ich ändere einfach das Quellbild , dass es das ist, was sie verwenden. Mal sehen, ob es nur eines ist, nur ein Bildproblem oder normalerweise ein großes Problem. Also ich hoffe das macht Spaß. Und ich hoffe, das gibt Ihnen eine Vorstellung davon , wie Sie dies erweitern, vergrößern, professioneller und automatisierter gestalten können? Ja. Wenn Sie Dinge wie Terraform oder CloudFormation kennen oder einen DevOps-Workflow bei der Arbeit haben . Ich hoffe, das hilft Ihnen zu sehen, wie Sie von einem Handbuch ausgehen. Oh, ich schreibe das nur aus, während ich es herausfinde und Befehl für Befehl daran arbeite. Wie Sie von diesem zu einem wiederholbaren Build wie über Packer zu einem Teil einer größeren Pipeline übergehen einem wiederholbaren Build wie über Packer zu einem Teil einer , wo Sie nur auf eine AMI-ID verweisen müssen, ist wirklich das neueste Image, das eine bestimmte Sache benannt hat. Wenn das so ist, ist es eine nette Art, das alles weg zu abstrahieren. Ich hoffe also, dass das nützlich ist und wir sehen uns im nächsten Stück. 13. Packer Dokumentation und Development: Lassen Sie uns darüber sprechen, wie Sie auf den Packer-Websites navigieren, insbesondere in der Dokumentation, damit Sie nach diesem Kurs selbst das Fischen beibringen können. Jetzt habe ich Ihnen eine ganz bestimmte Art von Einführung gezeigt , und es geht speziell um AWS. Es ist sehr spezifisch für gut, nicht so spezifisch, aber es ist spezifisch für das Projekt, das wir gemacht haben, nämlich diese WordPress-Hosting-Sache , was Sie für sie benötigen. Es gibt viele andere Dinge , die Sie mit Packer machen können. Die allgemeine Form wird immer so sein. Und das ist es, was ich an HashiCorp-Tools wirklich mag : Sie sind scharfe Tools, so wie viele Linux- und Unix-Tools scharfe Tools sind. Sie machen eine Sache, sie machen es wirklich gut. Sie sind flexibel, sodass Sie Zeit mit anderen Tools zusammen haben können , wie Sie es benötigen. Und ich denke, auf der HashiCorp Lauren-Website ist es ein guter Ort, um einen Blick auf die reale Nutzung von Packer zu werfen. Wir haben also viele Dinge im AWS-Track behandelt. Aber wenn Sie Docker-Images wie Packer erstellen möchten, können Sie das tun. Wenn Sie auf einer anderen Cloud aufbauen möchten, GCP, Azure, so etwas. Vielleicht möchten Sie das tun , indem Sie Packer mit anderen Tools verwenden, und so weiter. Aber das können Sie selbst durchsuchen. Was ich Ihnen zeigen werde, ist Packard io Slash Docs. Das ist, glaube ich, der Ort, an dem ich Zeit verbringe, wenn ich gerade ein Packer-Projekt baue . Alles was du brauchst ist hier. Diese Dokumente sind fantastisch. Wie möchten Sie eine Verbindung zu Ihrem Gerät herstellen? Datenquellen? Sie werden viel Zeit mit Provisionern verbringen. Ich will nur, dass du weißt , dass dieses Zeug hier ist. Und wenn Sie verloren sind, sagen wir mal, Oh, Sie haben vergessen, wie man Dateien überträgt. Etwas, das wir in diesem Kurs ein paar Mal machen. Gehen Sie einfach zur Provisioner-Datei und Sie erhalten einige Beispiele. Jetzt verwenden wir HCL, nur weil es viel sauberer ist. Aber Jason, vielleicht möchtest du das aus Gründen der Kompatibilität mit etwas anderem, anderen Teil deiner Pipeline oder was auch immer. Dies gibt Ihnen ein Beispiel für die tatsächliche Verwendung und die erforderlichen Dokumente. Ein optionaler Parameter, der alles im Detail erklärt, gibt viele Beispiele für spezifische Anwendungsfälle. Ich will nur, dass du es weißt. Ich gebe sehr kurze Erklärungen , damit Sie verstehen, wie eine Sache im Kontext dieses Projekts, das wir hier durchführen, funktioniert . Aber die Docks haben offensichtlich noch mehr zu bieten und du verbringst deine Zeit nicht damit , zu hören, wie ich dir die Dokumente vorlese. Ich möchte nur , dass du weißt, dass sie hier sind und dass du das benutzen solltest. Es ist völlig normal, dass Ihr Workflow, während Sie Ihr eigenes Packer-Projekt erstellen, dies in einer Registerkarte geöffnet hat und Ihr Packer-Projekt dann auf einer anderen Registerkarte geöffnet wird. Und so arbeitest du irgendwie daran. Du meinst, in Ordnung, also habe ich die Sache mit den Akten nachgeschlagen. Nun kann ich meine Aktenvorschrift schreiben oder hier, und los geht's. Basierend auf, basierend auf dem, was Sie aus den Dokumenten gelernt haben. Das werden wir weit über das Material in diesem Kurs hinaus verwenden . Und ich hoffe, dass Sie damit anfangen können für die zukünftige Verwendung, die Sie haben werden wenn ich nicht hier bin, um Ihre Hand durch ein Projekt zu halten. 14. Nützliche Packer: Lass uns über Packer-Plugins sprechen. Bisher haben Sie in diesem Projekt Packer-Plugins verwendet , die Builder sind, aber es gibt auch andere Arten von Plug-Ins wie Datenquellen und häufig Postprozessoren. Und die Idee ist, dass ein Plugin wirklich eine Möglichkeit ist, eine separate Mini-Anwendung zu kapseln , die weiß, wie man etwas macht. Normalerweise ist die Kommunikation mit einer Plattform, um ein Image zu erstellen , die Sache zu tun. Also im Fall des Amazon-Beispielprojekts, im Fall des Amazon-Plug-ins und Builders. Was Sie also darin sehen, diese Quellsperre in unserem Code, die den Amazon EBS-Builder verwendet den Amazon EBS-Builder und die Ihnen vom Amazon-Plug-in zur Verfügung gestellt wird. Und warum schauen wir uns das nicht einfach an. Und dann schauen wir uns auch einige andere an, die ich für interessant oder allgemein halte , die beliebt sind und die Sie entweder verwenden möchten, und sie geben Ihnen nur eine Vorstellung davon, wie das funktioniert. Also ich bin auf der Art von Plugins, ich kenne die Docs-Verzeichnisseite auf Packer.io nicht. Und wenn wir uns nur die Übersicht der Builder im Amazon EC2-Plugin ansehen, können Sie sehen, dass wir diese Version verwenden, oder? Von diesem Plugin aus ist dies das, das wir verwenden, aber wir haben andere Dinge zur Verfügung, wie wir einfach einen Instanzspeicher haben könnten, AMI, diese Verwendung, jedes davon zeige ich Ihnen einfach das Format will, was so ist, es wird dir ein Beispiel dafür geben , wie man es benutzt. Es wird Dinge beschreiben und dann geht es die Art von Argumenten, die dies erwartet, Umgebungsvariablen, nach denen es sucht, solche Dinge. Also für Amazon denke ich, die interessanten Dinge, die man sich ansehen sollte, offensichtlich den EBS-Builder , den wir verwenden. Amazon-Import für einen Postprozessor ist eine andere Sache. Damit kommst du irgendwie umsonst. Wenn Sie vielleicht einen anderen Build verwenden oder etwas erstellen möchten , das eine OVA erzeugt. Sie können dies in Amazon einbringen, indem es von diesem Postprozessor in ein AMI konvertieren lassen, was manchmal auf jeden Fall nützlich ist. Secrets Manager, ich denke, eines dieser Dinge, die sich ergeben, wenn Sie von unserem Beispiel ausgehen, unserem einfachen Beispielprojekt für diesen Kurs. Und dann passt man das an die reale Welt an. Eines der ersten Dinge, die sich ändern, sind die Arten von externen Datenquellen, die Sie benötigen. Die Tatsache, dass Sie das nicht können, können Sie nicht einfach so sein , als würden Sie ein paar einfache Texte mischen, wie Schlüsselmaterial und es in Repositorys übertragen. So passieren schlimme Dinge, und so verdient Ihr Sicherheitsteam auch Ihren Lebensunterhalt. Sie werden also im Grunde eine Möglichkeit haben wollen , Geheimnisse in Ihre Packer-Vorlage zu integrieren. Im Wesentlichen baut Ihr Packer, und dies ist ein Mechanismus bei Amazon. Offensichtlich gibt es analoge in der Google Cloud, ich denke sogar Digital Ocean hat jetzt eine geheime Sache. Offensichtlich Azure und so weiter. Sie werden alle einen Mechanismus wie diesen haben. Und natürlich werden sie alle leicht unterschiedlich sein, aber weitgehend ähnlich. Und so würdest du sie benutzen. Ich denke, es ist interessant, sich andere Cloud-Anbieter anzusehen , im Wesentlichen AMI-Builder oder Image-Builder. Also würde ich immer beim High-Level-Konzept in der Übersicht anfangen , irgendwie herausfinden, was du tust. Und dann weiter, so wie wir möchten, dass Azure Resource Manager ein Image erstellt und dann aufnimmt. Jetzt wo du weißt was du willst, gehst du hier rein siehst dir an, okay, wie authentifiziert sich dieses Ding ? Was brauche ich? Wie geht es uns, wie gefällt Ihnen Identitätsmanagement und Zugriffsmanagement außerhalb des Managements. Was für Sachen braucht es? Erforderliche und optionale Parameter oder Attribute. Sandwich ECP nochmal, Sie sehen, es ist wie eine sehr ähnliche Art von Invokation wird auf der nächsten ein bisschen höher bleiben , ich möchte nicht, dass das zu lang wird, aber ich mag Digital Ocean, also rufe ich sie hier draußen an. Eine andere interessante Sache, die ich hier sehe, ist dunkler. Ich denke, das ist eines, von dem Sie viel Gebrauch machen werden, weil ich denke, dass dies zeigt , wie flexibel diese Plugins Packer machen , weil all das Packer-Zeug Sie gelernt haben, immer noch gut ist. Wenn also Ihre Unternehmen eines Tages mögen, in Ordnung, keine VMs mehr wie wir voll werden, ich weiß nicht, Nomad Kubernetes, wird jetzt alles ein Container-Image sein. Das ist in Ordnung. Sie können, Sie können eine Menge Ihrer Sachen wiederverwenden und die Ausgabe stattdessen einfach als Docker-Image verwenden. Ich meine, du wirst das Bild offensichtlich verkleinern wollen . Niemand mag 600 Mega, wie ein B12-Basisbild. Aber selbst wenn Sie auf Alpine oder etwas Schlankeres gehen, können Sie immer noch denselben Prozess und denselben Workflow verwenden und er passt genauso zusammen. Und es ist so, als ob du es nicht bist, es ist kein riesiges Greenfield-Projekt, das immer noch 100 Bugs hat , die du überwinden musst, bevor es funktioniert. Es wird nur ein etwas anderer Builder sein ein etwas anderer Builder , der leicht unterschiedliche Eingaben erwartet, leicht unterschiedliche Ausgaben für diejenigen unter Ihnen hat , die Chef Ansible Config Management verwenden, irgendwie traditionellere Software. Dafür gibt es Plugins. Wenn Sie also bereits eine Menge Ansible geschrieben haben, können Sie all das wiederverwenden. Ansible. Da Sie nichts konvertieren müssen, verwenden Sie einfach Ihre vorhandenen Playbooks. Bringen Sie sie vorbei und binden Sie dies in diesen Workflow ein. Auch hier ist es so, als ob Ihr Workflow erhalten bleibt, Ihr Workflow ist konsistent. Und dann können Sie Packer verschiedene Tools aufrufen lassen , die tatsächlich die Art von generieren, dass nicht alle Bash-Skripte sein müssen , wie in unserem Beispiel hier. Machen Sie alles mit Ansible und konvertieren Sie es einfach, wickeln Sie es in Packer ein und nutzen Sie dann die Kraft, die Packer Ihnen gibt, um Ihnen eine Reihe verschiedener Ausgaben zu bieten, die Artefakte davon sind. Eine weitere, die ich für cool halte, ist Get als Datenquelle. Die Datenquelle ermöglicht es Ihnen, im Grunde genommen von einem Repo abzuholen und dann eine gewisse Granularität zu haben wie Sie das zu dem navigieren, was Sie benötigen. Ich hoffe, das ist eine nützliche schnelle Einführung in Packer-Plugins. Ich hoffe, dass Sie verstehen, dass das ganze Zeug dieses Plugin tatsächlich für Sie zusammengeschlossen und abstrakt ist für Sie zusammengeschlossen , sodass Sie sich nicht damit befassen müssen. Hier drin. In diesen Plugins. Es ist alles wie rohe API-Aufrufe gegen diese Cloud-Anbieter, mach dieses Ding und dann mach diese andere Sache. Okay, wenn das fehlschlägt, behandle den Fehler irgendwie. Es ist wie Millionen von Codezeilen hier drin, die Sie nicht schreiben müssen. Behandeln Sie dieses linke Menü hier genauso wie ein Menü. Sie schauen nach unten, sehen, was lecker aussieht, auch immer Sie tun müssen, was auch immer Sie versuchen, und verwenden diese, um die Art von Build oder Artefakt zusammenzustellen , die Sie benötigen. 15. Course: Alle zusammen, ein kurzes Wort zu Projekten. Ich denke, natürlich habe ich Sie durch ein Projekt geführt, aber ich denke, der nächste Schritt, jetzt wo Sie die Grundlagen von Packer haben , besteht darin, ein eigenes Projekt von Grund auf neu zu erstellen, ohne das Tutorial zu befolgen Ich schaue nicht auf den Code einer anderen Person. Das ist in Ordnung, um die Grundlagen von etwas zu lernen, aber das hast du jetzt getan. Also wo gehst du von hier aus hin? Ich schlage vor, dass Sie ein reales Projekt durchführen , um diese Fähigkeit und dieses Wissen wirklich in Ihrem Kopf zu festigen und es für Interviews im wirklichen Leben bereit zu machen , um Ihr eigenes Leben zu gestalten. einfacher, dein Job. Ich werde das in zwei Kategorien unterteilen. Wenn Sie ein Anfänger im Allgemeinen sind, sind Sie im Allgemeinen eher Junior Engineer. Und wenn Sie ein fortgeschrittener technischer General sind. Und dieser lernende Packer war wie das Sahnehäubchen auf einem Kuchen. Das ist schon ziemlich nett. gerade die Ingenieurausbildung mit einer Torte verglichen , ich glaube, ich habe Hunger. Wenn Sie also ein Anfänger sind, würde ich Ihnen als Erstes vorschlagen, wenn Sie sich nicht sicher fühlen, dass Sie das , was ich Ihnen in diesem Kurs gezeigt habe, von Grund auf neu tun können . Dann würde ich vorschlagen, weiterzumachen, tut mir leid, anstatt mitzumachen, würde ich vorschlagen, dass Sie im Grunde das Packer-Verzeichnis löschen und dann versuchen , dieses Packer-Projekt neu zu erstellen scratch, angesichts des Inhalts im Rest des Repositorys, das aus dem praktischen Linux-Kurs stammt, wenn das Sinn macht. Also lösche das Packer-Verzeichnis, erstelle im Grunde ein neues und fange dann an , alles Stück für Stück zu portieren . Schauen Sie sich alle manuell ausgeführten Befehle verwandeln Sie sie in Skripte. Nehmen Sie diese Skripte und verwenden Sie sie in Ihrem Packer-Projekt. heraus, wie Sie sie in Flaschen füllen, finden Sie heraus, wie Sie sie verpacken und auf Ihre VM hochladen können, und gehen Sie dann von dort aus. Erstellen Sie dieses Projekt also irgendwie aus dem Speicher neu. Und dann haben Sie den Inhalt direkt vor sich, aber verwandeln Sie ihn wieder in ein Packer-Projekt. Das würde ich absoluten Anfängern empfehlen. Ich denke, du wirst viel lernen denn oft, nachdem du das Tutorial durchgearbeitet , sagst du: Oh, ich verstehe es total. Aber dann, wenn jemand so ist, großartig, zeig mir das nicht, ohne auf das Tutorial zu schauen , und die Leute können es nicht tun. Es ist so, als ob man oft nur etwas im Moment versteht, ist nicht dasselbe , als es wirklich tief zu kennen und es praktisch anwenden zu können. Also mach dich als Anfänger dort hin. Sobald Sie das getan haben oder wenn Sie bereits von einem fortgeschritteneren technischen Ort ausgehen. Und was wir gemacht haben , hat eine neue Fähigkeit hinzugefügt, aber dieser neue Skill Packer entspricht 1% dessen, was Sie über Technik wissen. Großartig. Ich denke, Sie brauchen immer noch ein praktisches Solo-Projekt , das Sie nicht anhand einer Vorlage oder Arbeit einer anderen Person durchführen, die Sie selbst herausfinden und die Sie selbst beheben. Wenn Sie weiter fortgeschritten sind, würde ich ein paar Dinge empfehlen. Wenn Sie in einer VM-basierten Welt leben und das fortsetzen möchten , was wir in diesem Kurs gemacht haben , wie Maschinenimages auf, haben wir Amazon gemacht, aber Sie könnten Azure, Google, machen. Wissen Sie, der Prozess ist mehr oder weniger der gleiche. Erstellen Sie sich ein Maschinenimage aus anderen Open-Source-Projekt, das Ihnen Spaß macht. In diesem Kurs sprechen wir über WordPress als eine Art Open-Source-Projekt, das wir verpacken und mit dem wir Sachen machen. Aber es gibt eine Million Open-Source-Projekte , die interessant sind alle möglichen Dinge tun. Webanwendungen haben in der Regel die Komplexität einer Menge Dinge, die in einem Bild konfiguriert werden. Aber du könntest auch andere Sachen machen. Sie könnten Dinge wie Murmeln tun , wenn Sie ein wiederverwendbares Team-Chat-Server-Image haben möchten , es gibt ein paar. Wählen Sie einfach aus, ob Sie einigermaßen fortgeschritten sind. Ich gehe davon aus, dass Sie eine Vorstellung davon haben , welche Open-Source-Tools und Projekte es gibt. Was könnte Spaß machen, einfach zu hosten und dann ein Maschinenimage darauf zu erstellen. Wenn Sie bereits in einer Welt mit dunkleren Augen leben, finden Sie bei Ihrer Arbeit oder sogar in einem Open-Source-Projekt etwas, das keine dunkleren Augen sogar in einem Open-Source-Projekt sind, und verwandeln Sie es in ein Docker-Bild, ? Also containerisieren Sie es. Ja, Sie können Ihr eigenes Ding erstellen und es in einem eigenen Projekt zu einer dunklen Docker-Datei machen und dann die Docker-Build-Tools und all das ausführen. Aber so wie Packer all das und noch eine ganze Menge mehr kann . Das Schöne an Packer ist , dass es die Brücke wirklich einfach macht , oder? Wenn ja, wenn Sie bereits eine Art Automatisierung oder Dokumentation zu manuellen Schritten haben und bla, bla, bla. Sie können all das einfach wiederverwenden , in Packer schieben und Packer einfach sagen, dass Ihre Ausgabe ein Docker-Image sein sollte. Das würde ich fortgeschrittenen Leuten empfehlen , finde wieder etwas Open Source oder bei deiner Arbeit und nutze einige dieser anderen Funktionen. Es könnte dunkler sein, es könnte etwas anderes sein, aber entdecken Sie einfach, was Packer tun kann, das für Sie praktisch ist. Das ist eigentlich interessant für dich. Und tun Sie dies mit einer Anwendung , an der Sie leicht interessiert sind oder an der Sie sowieso arbeiten müssen. Ja, ich hoffe, das gibt dir einige Ideen für Projekte , die du machen kannst. Das verstehe ich. Das bedeutet, dass Sie möglicherweise nicht zeigen können , ob Sie an Ihren eigenen Unternehmen wie Closed Source arbeiten Ihren eigenen Unternehmen wie Closed Source und dafür ein Paketprojekt erstellen. Laden Sie es nicht hoch und zeigen Sie mir, dass Sie die Vertraulichkeit respektieren. Aber wenn du es für ein Open-Source-Projekt tust, dann erstelle einfach ein Projekt, lade es auf dein eigenes GitHub-Konto und teile es gerne. Ich denke, jeder würde sich ziemlich freuen, das zu sehen. Nur um mehr Beispiele für den mehrfachen Einsatz von Packer zu sehen . Und vielleicht können Sie sogar positives und konstruktives Feedback von anderen erhalten positives und konstruktives Feedback von , wie Sie es noch weiter verbessern können. Das war's für alle da draußen. Wenn du die Projekte anderer Leute siehst, sei nett, sei konstruktiv. Sie müssen keinen Kommentar abgeben, Sie müssen keine Ratschläge geben. Wir lernen alle noch, also sei nett. In Ordnung, damit ist es abgeschlossen für b, was ich denke, Sie sollten als praktisches Projekt tun , das durchsickern lassen, das in Ihrem Gehirn versinken lassen und einfach anfangen, in Ihrem Gehirn versinken lassen und einfach anfangen Open-Source-Projekte zu durchsuchen und zu sehen wenn einer von denen kitzelt, deine Lust. 16. Schlussbemerkung: Herzlichen Glückwunsch. Sie haben jetzt gesehen, wie ein echtes Packer-Projekt aussieht. Und ich habe Sie durch den Prozess geführt, den ich unternommen habe, um ein reales Problem in ein Packer-Projekt zu zerlegen, insbesondere eine Packer-Vorlage, und wie Sie davon ausgehen, nur ein paar Handbücher zu haben oder Automatisierungskomponenten wie Skripts. Nehmen Sie diese und bringen Sie sie in die Welt der Packer und denken Sie über Dinge nach. Ich hoffe, dass Sie dieses neu gewonnene Verständnis und Wissen sofort dieses neu gewonnene Verständnis und in Ihr eigenes Projekt umsetzen, ein Projekt, das ich nicht für Sie geplant habe. Ich denke, das ist der Weg, dieses Wissen zu festigen und es auf die nächste Stufe zu heben und es wirklich dauerhaft in Ihrem Gehirn zu haben , damit, Sie wissen schon, wenn ein Problem auftaucht oder wenn ein Vorstellungsgespräch stattfindet, ist das alles im Kopf und Sie haben einfach dieses intuitive Wissen über den Prozess und wie Sie ihn durchlaufen und wie Sie das Problem analysieren und aufschlüsseln und tatsächlich die technischen Artefakte zu erstellen, die ein Packer-Projekt sind . Dieser Kurs hat Spaß gemacht. Bitte. Wenn es Ihnen gefallen hat, hinterlassen Sie bitte eine Bewertung. Wenn nicht, senden Sie mir einfach eine Nachricht oder hinterlassen Sie einen Kommentar zur Qualitätssicherung und fragen nach Verbesserungen, die Sie daran vornehmen möchten. Ich habe definitiv vor, noch mehr an diesem Kurs zu arbeiten, wenn es einen Empfang gibt und wenn Sie das Gefühl haben, dass etwas fehlt oder Sie möchten, dass ein Abschnitt hinzugefügt oder etwas geklärt wird, bitte einfach sag es mir. Ich freue mich, die Videos durch Videos zu ersetzen, die für Sie klarer sind , und vielleicht auch einige neue hinzuzufügen. Wenn Sie neugierig auf etwas das ich nicht näher eingegangen bin. Es war mir wieder eine Freude, das zu machen. Ich hoffe du bekommst was raus. Und ich hoffe, Sie auf YouTube-Kanälen zu sehen , Tutorial Linux. Und ich mache solche Sachen, aber kostenlos, oder ich nehme an, auf Udemy und meinem anderen Kurs, praktisches Linux, wo ich dein WordPress-Hosting-Projekt durchgehe , um dir die Grundlagen von Linux beizubringen, speziell in der Linux-Systemadministration, viel Spaß auf Ihrer Reise. Ich sehe dich da draußen.