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.