Transcription
1. INTRODUCTION DU COURS: Je m'appelle Dave Cowen. Je suis dans le monde de l'
infrastructure , du
DevOps et du
développement de logiciels depuis
quelque 15 ans. Et j'ai travaillé pour toutes sortes d' entreprises
intéressantes
ou quelque chose en quoi je crois
vraiment que j'ai travaillé pour l'
entreprise qui le fabrique. je ne travaille pas sur
Packer. Je pense que c'est petit
et facile à apprendre. Ma promesse que
ce cours est que je
ne vais pas aimer
exhaustivement lire des diapositives qui
vous emmèneront lentement à travers chaque partie de la lecture
comme les documents officiels. Vous pouvez lire
vous-même les documents officiels pour remplir les choses. Je vous promets que
je vais vous donner un projet absolument réaliste qui
vous montre l'utilisation réelle du monde,
un vous montre l'utilisation réelle du monde, peu ce
à quoi vous devez penser. Et vous serez en mesure
de
ressentir intuitivement les avantages
qu'il vous offre. Et j'ai promis de le
faire en
peu de temps. Je veux que ce parcours soit
court, doux et pratique. Encore une fois, si vous êtes à
la
recherche d'un cours exhaustif
qui vous donnera tout et que vous
ne finirez probablement jamais par le regarder. Ce n'est pas ça. Si vous voulez,
donnez-moi simplement ce dont j'ai besoin
pour commencer dans un
projet réaliste que je peux cloner, copier, réutiliser. C'est le cours qu'il vous faut. Donc, si cela vous parle, j'espère vous voir à l'intérieur et
oui, commençons.
2. Pourquoi Packer ? Pourquoi Infrastructure comme code (IaC) ?: Donc, pour ceux d'entre vous qui ne savent pas vraiment pourquoi
vous voulez Packer, laissez-moi vous faire une proposition de valeur très
rapide, peut-être pas seulement pour Packer parce que vous l'avez déjà recherché sur Google et
que vous êtes ici. Mais pour l'infrastructure en
tant que code en général, ce qui est en quelque sorte le début
de ce que Packer vous propose. Donc avant d'emballer ou
d'avoir quelque chose qui transforme une configuration manuelle en image machine. Réfléchissons à la
façon dont nous pourrions résoudre, disons, un problème
réel. Supposons qu'il existe une faille
de sécurité étrange. Vous en entendez parler un lundi
et vous vous rendez compte, Oh non, notre serveur d'hébergement WordPress a besoin d'une modification de la configuration du serveur
Web pour interdire une version spécifique de TLS afin que nous ne soyons pas
vulnérables, très bien. Donc vous pouvez aller dans votre
documentation, n'est-ce pas ? Parce que c'est comme la documentation de votre
manuel. Tu fais tout manuellement. Tout va mal. Tu pleures pour t'endormir tous les jours après être
rentré de ce travail. Au travail, vous devriez essentiellement
déterminer où se trouve ce fichier,
où dans les instructions, d'
accord, il se trouve dans le fichier de configuration principal de
NGINX. Ne t'inquiète pas si tu n'es pas au
courant de tout ça. Ce n'est pas vraiment important
pour ce cours. Inquiète-toi juste de la mèche d'emballage. Mais tu dois y aller
manuellement. Je veux dire, vous vous
connectez à un serveur de production. Vous êtes en train de vous
occuper de la configuration. Supposons que c'est comme un protocole
SSL que vous
devez commenter. Disons que 1.2 est sorti, donc vous collez le commentaire
d'ici à ici. Et puis maintenant ? Vous devez redémarrer NGINX. J'imagine que vous devez
espérer que c'est votre seul serveur de production. Si vous avez dix
serveurs de production, oui, c'est un peu foutu. Personne n'est content. C'est mauvais. C'est une mauvaise façon
de faire les choses. n'y a aucun bon moyen de tester cela en deux mois lorsque vous vous connectez à votre serveur de
production, il n'y a aucune trace de la raison pour laquelle la configuration
NGINX est ainsi. Vous avez peut-être oublié de modifier la
documentation que vous avez utilisée. nouveaux serveurs ne sont donc
toujours pas correctement configurés. Nous ne faisons pas les choses manuellement. Ce n'est pas ce que nous faisons. Nous sommes des professionnels. Donc, packer est en quelque sorte la façon dont vous passez du
mode totalement manuel à l'automatisation. Et bien sûr, oui, je vais vous montrer tous
les détails de ce cours. Vous le verrez étape par étape. Mais ce qui est important en ce
moment, c'est que processus
global
passe du monde triste, triste où vous vous
connectez à la production et changez les choses à ce monde
beaucoup plus heureux où votre projet Packer pour
vos serveurs WordPress, vous allez dans config. Vous voyez qu'il y a une configuration
engine X ici, semble que la configuration principale pour
Engine X me semble cool. Vous trouverez ici votre ligne de protocoles
SSL, vous pouvez effectuer le changement ici. Et puis au lieu de vous
connecter à la production, vous créez simplement une
nouvelle version de packer essentiellement, vous le validez. Je suppose que vous êtes une sorte de système
d'automatisation CI
qui récupère ce changement et fait réexécuter
Packer pour créer une nouvelle image. Et puis boum, vous avez une nouvelle image à référencer dans le reste de votre
infrastructure. Ensuite, vous pouvez effectuer n'importe quel
processus pour transférer
vos serveurs en production vers ces nouveaux serveurs qui ont
simplement changé cette seule chose. Et vous pourriez vous dire
que cela ressemble
à beaucoup d' étapes
supplémentaires pour un changement d'une
seule ligne dans un fichier. Mais dès que vous vous rendez
compte de la réalité des opérations de
production
et que vous avez peut-être plus d'
un serveur, comme des centaines. Cela devient la seule
façon saine de gérer le changement. Au lieu d'avoir un changement manuel
où les gens ont besoin de se souvenir de certaines choses, suivez
des instructions spécifiques. Les choses peuvent être oubliées, elles peuvent en quelque sorte disparaître. Vous ne vous souvenez pas
qui a changé quelque chose ou si quelque chose a changé. Dans ce monde. Chaque changement est
associé à un git commit, n'est-ce pas ? Donc si vous modifiez ce fichier,
vous devez le valider. Vous mettez le nom
du ticket ou
la raison pour laquelle vous l'avez modifié
ou quoi que ce soit d'autre dans ce commit, qui lance une nouvelle version. Et puis il s'agit d'un
tout nouvel identifiant de build, même s'il s'agit presque de
la même machine. Et si quelqu'un dit : « Oh, pourquoi est-ce que quelque chose ne va pas
avec cette machine ? Vont-ils voir tous les
changements de configuration qui y sont entrés ? En remontant
jusqu'au début de notre première exécution de ce script de package qui
a créé une image pour nous. J'espère donc que cela explique en
partie pourquoi Packer et particulier que cela vous
donne une idée
de la façon dont le flux de travail que
cela permet est
beaucoup, beaucoup, bien meilleur et
beaucoup plus professionnel. Ensuite, le flux de travail avec lequel plupart des gens et même
des entreprises commencent, ce qui est juste, C'est
comme des instructions. Vous recherchez sur Google quelque chose qui ressemble à une connexion et faites-le manuellement. C'est comme si non,
non, non, non, non. Ce n'est pas ce que nous faisons. Ce n'est pas ce que font
les professionnels. Ils ne sont pas entrés. Ils peuvent
tester quelque chose manuellement comme vous pouvez le
faire localement pour vérifier si cela fonctionne. Mais ensuite, vous récupérez tout cela, vous l' insérez dans un
script ou un sticky, automatisez d'une manière ou d'une autre, puis vous
automatisez à nouveau avec l'infrastructure en tant que code, en vous assurant que chaque
un changement est en cours dans get , ce qui vous permet de
regarder une image et de savoir exactement ce qu'elle contient
sans vous y connecter. C'est logique. Ok. Donc pour ceux d'entre vous
qui n'étaient pas sûrs pourquoi utiliser
packer, c'est tout. Je dirais que c'est
la principale différence. Il permet également toutes ces
autres choses dont nous
parlerons tout au long
du cours. fait, une fois que vous avez
intégré quelque chose comme ça dans l'
automatisation et que vous passez d'un processus manuel à un processus
automatisé, vous pouvez désormais l'intégrer automatisation
existante pour
toutes sortes d'autres trucs. Donc maintenant, vous savez, si votre service de sécurité,
votre entreprise grandit, votre service de sécurité
vient vous voir et vous dit « Donc, comme nous devons
automatiser l'informatique, tests de
sécurité les tests de
sécurité pour tout qui passe
en production. Eh bien, vous pouvez dire, oui, eh bien, nous ne nous connectons pas à
la production pour faire des choses comme pendant la compilation. Dès que comme packer termine une compilation
dans votre système de CI, après avoir effectué un commit, vous pouvez simplement exécuter votre outil de sécurité des jambes
et vous assurer
que cette image est à la
hauteur pour la sécurité . Ensuite, vous pouvez l'étiqueter avec un code de sécurité
approuvé ou autre. Ensuite, nous savons que cela
peut être utilisé en production. En
tant que responsable des opérations
ou de l'infrastructure, c'est donc comme s'il n'y avait pas de travail
supplémentaire . Bref. Il s'agit donc d'automatisation et c'est là
que nous allons et
c'est pourquoi nous faisons ce genre de choses.
3. Aperçu du projet Packerfile: Parlons de la
première chose que vous pouvez faire après avoir
cloné un projet de packer
ou en démarrer un. La première chose que tu feras
toujours est de lancer Packer dedans. Et puis ce répertoire, supposant que vous vous trouvez dans
le répertoire contenant
un fichier packer. Maintenant que je l'ai
déjà fait auparavant, aucun changement n'est nécessaire
et il ne fera rien. Mais la toute première fois
que vous l'exécuterez, il
installera certainement certaines choses, à savoir les plugins dont vous avez besoin pour votre base de code. Alors, sans plus tarder
, voyons comment cela fonctionne. Je vais vous faire un
petit tour d'horizon. Cette source est l'
image source que nous allons utiliser. En d'autres termes, le
type d'image sera une image Amazon EBS. J'ai été à. Et la façon dont
nous allons trouver nos images sources
avec ce filtre, où nous recherchons quelque chose
qui a ce motif de nom. Vous pouvez donc voir que nous
utilisons 2204 actuellement la dernière version LTS ou
support à long terme d'Ubuntu. Et cette étoile est un
joker. Si vous êtes familier avec
les
expressions régulières , star signifie tout. Et plus précisément
le plus récent
qui correspond à cette étoile de
tout. Cela remplacera une date. Ce sera donc comme
l'image d'avril, comme avril peu importe, 2022 en juin, il y
aura une image de juin sur non. Cela signifie que nous n'avons pas
besoin de changer notre code chaque fois que
l'image est mise à jour, nous utiliserons toujours la version la plus récente de 2204. Chaque fois que vous exécutez ce code. Le filtre des propriétaires,
c'est-à-dire l'utilisateur canonique. Vous êtes assuré d'
obtenir une image officielle, pas certains comme des pirates informatiques maléfiques
comme une image pré-enracinée. Le nom d'utilisateur SSH dit
simplement, ok, quand nous
configurons cela, traiter cette
image de B12 est le nom d'utilisateur par défaut
que nous allons utiliser
pour nous connecter avec SSH. Et la paire de clés temporaire
que je veux que Packer crée. L'une des choses que fait
Packer est de créer une paire de clés juste
pour ma course de packer. Il va utiliser cette courbe. Si vous utilisiez
SSH dash key gen, cet outil permet de créer
une nouvelle clé SSH. C'est littéralement
ce que cela fait. Donc c'est essentiellement
ce qu'il remplit,
la partie en tiret en T. C'est donc essentiellement
comme exécuter type de gin de clé
SSH dd à 19. C'est logique. D'accord, passons aux instructions de
compilation réelles ici. Au fait, je ne vais pas le faire, ce n'est pas une
explication complète de Packer. Ce n'est pas tout à fait
comme dans les tranchées. Packer de
combat de rue pratique. Packer est
plus que ça. Je suis juste en train de
vous montrer le minimum que vous devez savoir pour obtenir une image Amazon
fonctionnelle ici. Alors, qu'allons-nous faire
lorsque nous construirons cette image ? Eh bien, nous allons dire à Packer que nous allons
donner un nom à ce truc. Nous allons le
doter d'une série
de fournisseurs. Vous pouvez voir cela presque
comme les étapes de notre Build. Nous allons
lui envoyer ce premier script, afin qu'il soit téléchargé la machine
puis exécuté dessus. Ensuite, nous allons ajouter
quelques fichiers de configuration ici. Il s'agit donc essentiellement d'opérations
de copie de fichiers. Tout cela se passe via SSH, où il va
chercher quelque chose commence dans cette configuration de
répertoire, vous pouvez voir que c'est ici,
WordPress NGINX config. Eh bien, c'est ce fichier qui
va être copié sur la machine dans le BUN pour les utilisateurs. Parce que rappelez-vous, nous
utilisons le nom d'utilisateur SSH ubuntu. C'est comme ça que nous allons nous
connecter ici. La première étape consiste à
déposer tous ces éléments dans
le
répertoire personnel des deux utilisateurs urbains parce que c'est là
que nous pouvons
avoir un accès direct. Sans rendre ça
moche et compliqué. Nous procédons en deux étapes. Naviguez tous les
fichiers vers le groupe d'utilisateurs. Et à la fin, nous
les déplaçons là où
ils seront avec sudo. Maintenant que le fichier écrit dans son répertoire personnel, nous allons l'écrire dans sa
destination finale, c' sa
destination finale, est-à-dire Engine
X et Gen X.com et ainsi de suite. La dernière chose que
nous allons faire, peu comme dans le cours. C'est comme si nous éditions tous
ces fichiers de configuration, installons tous ces services, faisons toutes ces choses avec
le script de configuration de base. Enfin, j'ai séparé cela
en scripts séparés simplement parce que c'est
une meilleure façon de le faire. Nous pouvons être sûrs que nous avons toute la configuration de
cette plateforme. Et tout comme la
dernière section sept, section sept du cours, ce script reflète
ceux qui
ne faisaient que configurer l'application
WordPress, les fichiers de
configuration spécifiques à WordPress, etc. C'est donc la fin
de cette section. Dans la section suivante, je
vais vous
expliquer rapidement ce qu'il y a réellement
dans tout cela. Regardons le code.
4. Primitives et terminologie Packer: Parlons des primitives Packer
essentielles et de la terminologie
que vous devez connaître pour les utiliser. Donc, ces primitives sont des
blocs de construction qui composent
Packer sont ceux que vous devez comprendre pour savoir
comment Packer fonctionne et comment il veut vraiment vous pensiez à la construction
d'images. Je traite cela dans
l'ordre inverse de celui la documentation parce que je pense que c'est plus facile
à comprendre de cette façon. Nous
allons passer du plus général au plus précis. La page de terminologie la documentation est celle dont
nous parlons ici. Donc, lorsque vous regardez un fichier
modèle
Packer c'est la
première terminologie ici. Cela décrit en quelque sorte
l'ensemble du processus. C'est donc le seul endroit où
tout est réuni avec tous ces différents mots-clés,
provision ou source. Vous pouvez voir une source de données
ou une génération de post-processeur. Tu veux
savoir ce que c'est. Je vais donc tout
expliquer dans un paragraphe fou et ensuite nous allons un peu
tout expliquer dans un paragraphe fou
qui décrit cela. Ensuite, nous passerons en revue
chaque terme pièce par pièce. Ainsi, lorsque nous exécutons cette
commande R, Packer lire et exécuter les
instructions qu'il trouve dans un modèle Packer doit lire et exécuter les
instructions qu'il
trouve dans un modèle Packer
contenant le fichier que
nous venons de consulter. Ce modèle contient
un ou plusieurs créateurs qui savent comment créer une image sur une
plateforme telle qu'AWS. Packer trouve la version
que nous avons définie ici, qui est une tâche qui
crée une image. Cette version est
vraiment un joli nom enroulé autour d'un tas de provisioners qui font
le dur travail de configuration de votre image. Si tout cela réussit, vous obtenez
un artefact qui ressemble généralement à une
image machine,
comme une AMI sur Amazon. C'est le processus de base. Il y a une partie facultative à chaque fin de
ce processus principal, c'
est-à-dire si vous souhaitez
modifier des éléments au début, par exemple si vous souhaitez
intégrer des données
externes préexistantes pour
une partie de ce processus. Comme une image machine existante
que vous avez déjà créée ou des secrets que vous
avez stockés dans votre
Cloud Secret Store. Vous pouvez le faire et vous utilisez des sources de données pour
accomplir cette tâche. Si vous voulez modifier
des éléments à la fin, lorsque vous avez déjà
créé un artefact, vous utilisez ce que l'on appelle des
post-processeurs pour le faire. Nous allons donc définir chacune de
ces primitives en profondeur. Les modèles sont essentiellement un fichier de configuration
Packer dans HCl ou Jason, qui définit une ou
plusieurs versions en
liant toutes les autres primitives
Packer. C'est l'endroit central pour la configuration de
Packer. Et vous pouvez le voir dans
notre modèle, les versions, ces accolades qui commencent à la ligne 27 où
nous définissons la construction. Ils enveloppent tout, englobent totalement tout ce que nous faisons
d'autre. Toutes ces autres
primitives ici, elles sont toutes à l'intérieur d' une commande de construction est une
sous-commande pour packer, qui lui dit de faire
des choses comme Packer dedans. Comme s'il vous plaît télécharger toutes mes
dépendances externes et plug-ins. Packer, funct FMT
correct formater mon code, Packer, inspecter Packer,
valider la console Packer. Et le préféré de tout le monde,
celui que nous allons utiliser, qui est packer build, c'est-à-dire créer une image basée
sur ce modèle. Un générateur est un composant d'empaquetage,
qu'il soit intégré ou plug-in. Il s'agira principalement d'un
plugin qui saura
créer des images sur une plateforme
spécifique. Par exemple, une image Google Cloud et image
Azure sur
Digital Ocean image, Amazon, que nous utilisons. Un générateur est ce qui
résume tout ce type de complexité d'
appel d'API et
de code spécifique
à chaque plateforme. Par exemple, vous passez des appels d'API
à Google Cloud très
différents de ceux que
vous faites à Amazon, même si vous faites en quelque sorte
la même chose. Les constructeurs
sont donc les modules ou plugins qui
encapsulent toute cette complexité. Donc, tout ce
dont tu as besoin c'
est de savoir comment
s'appelle le constructeur dont j'ai besoin ? Et quels paramètres
cela prend-il ? Une source de données est
un élément facultatif qui récupère les données
dont vous pourriez avoir besoin. C'est l'une des choses
que vous devez exécuter
au début défini. Il peut s'agir d'une AMI de base
alternative, que vous souhaitez utiliser
l'image de la machine que vous souhaitez utiliser. Un secret qui est stocké dans votre cloud Secret Manager
si ce genre de chose. Et puis nous arrivons à la construction. Et c'est cette seule tâche
qui produit un artefact. Et comme vous l'avez déjà vu, il enveloppe tout. Une sorte de conséquence
ici qui est comme faire choses
procédurales, modifier des choses et construire sont
dans la configuration de notre image. Il est intéressant de noter que vous pouvez avoir plusieurs d'entre eux
fonctionnant en parallèle. C'est donc une chose
que tu peux faire. Si vous produisez des images
pour plusieurs nuages, peut-être. Ensuite, vous pouvez avoir une tâche de
build pour chacun,
une provision ou c'est ce que vous avez
vu à l'intérieur de ce build. Il s'agit de la primitive que
vous utilisez réellement pour modifier la configuration
de vos images. compilations prennent une sorte de source. Ils appliquent des approvisionneurs à
cette source pour la modifier. Il s'agit de choses comme
la copie de fichiers, l'installation de paquets, la
mutation de l'état
en autre chose. Puis Packer crée
un artefact à partir de ça. L'image Je n'arrête pas de dire image ou artefact de
manière interchangeable. L'artefact est exactement ce que produit
votre build. Et il s'agit simplement,
dans notre cas, d'une AMI. Il peut s'agir d'une image de
conteneur Docker ou d'une image VMware. Cela peut être tellement de choses
différentes. Et nous passerons en revue
tous les constructeurs qui produisent différents
types d'artefacts. Eh bien, nous ne les passerons
pas tous en revue. Je vais vous montrer, je vais vous
montrer ceux que j'utilise le plus. Tu peux en quelque sorte le
prendre à partir de là. Le post-processeur ou l'autre chose dont
nous avons parlé, qui sont des choses que vous pouvez utiliser après la création d'un
artefact. Je n'en utilise pas une tonne
habituellement dans la vraie vie, mais ils
facilitent vraiment l'intégration
dans n' importe quel processus que vous
ou votre entreprise avez. Comme la compression, création d'une
version compressée de votre image ou la création d'un fichier manifeste qui suit chaque build au moment de
chaque build ou autre, peut également être des choses
comme le téléchargement votre image vers un endroit où
vous en avez besoin. Donc, pour revoir cette vidéo, je vais relire cette phrase folle
que j'ai déjà lue auparavant. Et maintenant, vous saurez exactement
ce que tout signifie. Encore une fois, vous exécutez Packer
avec une commande qui indique à Packer, dans le
cas de la commande build, de lire et d'exécuter les instructions dans
un modèle Packer. Ce modèle contient un ou plusieurs créateurs
qui savent comment
créer une image sur une
plateforme telle qu'AWS. Passons au code pour un
effet encore plus grand sur vous sur le
plan émotionnel. Ici, Packer trouve les versions que nous avons définies dans
cette image de modèle, qui est une tâche qui crée une image qui n'est qu'un joli nom enveloppé autour d'un tas de provisioners
comme vous le voyez ici, qui font le dur travail
de configuration de votre image. Si tout cela réussit, vous vous retrouvez avec un artefact. C'est le processus de base.
5. Blocs de modèles Packer: Parlons des éléments de
ce fichier de configuration qui ne sont pas couverts par les primitives
que je viens d'expliquer. Le premier est ce bloc Packer, second est le bloc source, puis le troisième est
le bloc de construction, auquel j'ai déjà
fait allusion parce qu'il se rapporte à
la primitive de construction. Vous remarquerez que je
parle de blocs. C'est l'une des méthodes
utilisées par Packer. Il utilise ce
fichier modèle en recherchant ces blocs que nous avons
définis dans HCl ou JSON. Le bloc Packer
contient les paramètres du Packer ,
y compris un numéro de version et les plug-ins requis. Vous
allez presque toujours aimer, sont presque toujours
les constructeurs que vous utiliserez. Dans notre cas, il s'agit
du plugin Amazon. Et nous définissons une
version spécifique et un type d'endroit où se trouve au cas où elle se trouverait en dehors,
devrais-je dire, du lieu
hébergé par HashiCorp. Donc, s'il s'agit d'un élément
open source sur GitHub, c'est là
que ça va se trouver. Le bloc source possède
cette syntaxe intéressante que vous pouvez vous rappeler de Terraform si
vous l'avez déjà utilisé. Mais c'est essentiellement le
mot clé qui est une source. Ensuite, il a le type de constructeur, dans notre cas Amazon EBS, et un nom pour celui-ci, qui sera local
pour ce modèle Packer. Donc c'est ça, il sait
ce qu'il faut regarder ici et à quelle forme cela va
se conformer plus ou moins. C'est ce que nous
allons faire
référence dans cette version. Chaque constructeur, vous pouvez penser
à une fonction dans la programmation car différents constructeurs
nécessitent des paramètres différents. Essentiellement, Packer les appelle attributs
de configuration, c'est tout ce
qui se trouve à l'intérieur. Ainsi, comme Amazon, EBS
nécessite certaines de ces fonctionnalités et
d'autres sont facultatives. sera différent s'il
s'agit d'un constructeur GCP, d'un constructeur océanique numérique ou
d'un constructeur de conteneurs Docker. Donc, les attributs de configuration ou simplement
les éléments facultatifs requis,
les informations que vous pouvez transmettre pour obtenir la source exacte, image
source ou tout ce que
vous voulez ou simplement
les éléments facultatifs requis,
les informations que vous pouvez transmettre
pour obtenir la source exacte, l'image
source ou tout ce que
vous voulez
utiliser pendant votre build. Enfin, tout cela est
passé dans le bloc projet de loi. Mais la partie spécifique je veux
que vous
vous concentriez est celle-ci. Vous pouvez voir ces liens
religieux ensemble, la convention de dénomination
ci-dessus avec des points. Donc nous disons, d'accord, maintenant nous voulons faire une compilation. On va lui donner
un joli petit nom. Et les sources, nous
allons appliquer ces factures
à notre source, Amazon EBS, une aubaine pour et si
nous changeons le nom de ceci ici et que nous appelons cette jambe un à un parce que nous avons 27
différentes une aubaine pour aimer, je ne sais pas, les versions LTS
auxquelles nous appliquons cela. C'est très bien ça. Nous n'avons qu'à le changer
ici également. Bon, maintenant vous comprenez à un niveau élevé
chaque bloc du point de vue de la configuration
qui se trouve dans ce fichier de configuration. Et tu comprends aussi
les primitives. Donc, juste sur la base de cela, vous devriez être capable à
ce stade de lire presque tous les
fichiers de gabarit Packer que vous rencontrez. Parfois, les gens font des choses assez bizarres et ce sont des fichiers modèles Packer, mais c'est comme si ce sont
les primitives que
Packer connaît. Et donc tout va
revenir là-dessus.
6. Tour de code projet WordPress: Dans cette vidéo, je vais vous
faire un tour très rapide de l'état de départ du projet. C'est donc un peu
comme ce que je
vous donne pour commencer ce projet. Vous le trouverez ici.
C'est open source, ça vient d'un de mes
cours précédents. Et ce que j'ai déjà dit, je vais le redire, c'
est qu'il n'est pas nécessaire de
comprendre tout cela. Ce n'est pas comme un cours Linux, n'est pas un cours WordPress, ce n'est pas un cours d'hébergement Web
sur des systèmes Unix. Mais je veux juste que vous
voyiez avec moi le type brut de manuel que vous allez manuel que vous allez
automatiser dans
ce cours. Je vais donc vous expliquer ça
à un niveau élevé. Je vais juste te dire
ce que tout se passe. Si vous êtes curieux et que
vous voulez en savoir plus,
alors, bien sûr, creusez. Mais je vais juste
vous donner un peu comme ici, je vais vous
dire, d'accord, nous mettons à jour le dépôt de
paquets que nous avons sur B12. Et nous allons
installer quelques packages, tout ce
dont nous avons besoin pour WordPress, base de données, MySQL, dans ce cas, c'est MariaDB,
mais ce n'est pas grave. Un moteur de serveur Web X, un type de langage VM Runtime, PHP que nous utilisons et un package
supplémentaire qui facilite l'
intégration à la base de données. Un petit
outil de surveillance, peu importe. Ensuite, je montre un peu de
manuel sur les services. Ce n'est pas si important que
nous les démarrions nécessairement, mais nous allons
les activer parce que lorsque
la machine sera en marche, nous voulons qu'elle soit prête à héberger un site Web sans
aucune autre étape manuelle. Certains services
doivent donc être activés. Ça, c'est cool. Il a besoin d'une configuration. Il y a donc une partie de cet autre cours où
nous créons un fichier de configuration. Et il s'agit de la configuration principale
du serveur Web. simple stockage sous forme de fichier est très
traditionnel pour Linux ici, juste des fichiers texte brut. Nous faisons exactement la même
chose pour PHP, donc pour le runtime du langage, et vous pouvez le voir ici, un peu plus de choses. Toutes ces commandes sont
vraiment similaires au déplacement fichiers, à l'édition de fichiers. La dernière chose que nous
faisons est de créer un utilisateur de
site Web que le site Web va exécuter car cela permet à mes étudiants de l'autre cours de gérer plusieurs sites sur
un seul serveur, ce qui était la
façon normale de faire ça. C'est comme créer un utilisateur, créer un mot de passe aléatoire
, configurer
les choses de manière sécurisée. Alors l'essentiel de
ce projet se trouvera
dans ce dossier. Et c'est le véritable
processus de configuration de l'application WordPress
maintenant que ce type de plateforme d' hébergement a
été configuré. C'est donc un peu l'
application qui s' exécute au-dessus de tout ce
que vous venez de voir. Vous pouvez voir où j'ai
écrit des documents à ce sujet. Vous pouvez lire ceci
en profondeur si vous le souhaitez. Mais nous allons
créer un utilisateur système, quel type de
connexion,
créer un répertoire pour
ce site Web. Nous sommes en train de créer un fichier
de configuration de serveur
Web spécifique pour ce site qui va
au-delà de la configuration de base. Et puis nous en faisons d'autres
assistés, beaucoup de choses similaires. Déplacez un fichier, supprimez un objet, ajoutez quelque chose,
créez une chaîne aléatoire. Pour un mot de passe. Définissez et exécutez certaines commandes
dans un shell SQL. Téléchargez quelque chose comme supprimer un
autre élément ou, vous savez, décompresser et
désarchiver quelque chose, redémarrer et manipuler certains services, changer un fichier, ce
genre de choses. Ce sont toutes les choses
que le packer peut faire pour vous automatiquement ou que vous pouvez faire avec un
script shell ou autre. n'y a rien ici qui ne soit
pas aussi automatisable. C'est donc la
vue de haut niveau au cas où vous seriez curieux de savoir ce que ce
projet, un peu
comme la pasteurisation,
fait réellement sous les couvercles. Encore une fois, pour la 20e fois, je voulais juste être absolument
sûr que, tu sais, ça. Ne te sens pas bizarre si tu
ne comprends pas tout ce que je viens de
te montrer, tu n'es pas obligée. L'une des choses
merveilleuses
et étonnantes Packer, en
fait, à propos de l'automatisation
que nous faisons dans ce cours, c'est que
c'est l'un des avantages. C'est qu'une fois que quelque chose est enveloppé dans une
couche d'automatisation, tous ceux qui utilisent cette
automatisation ou
consomment ce que nous
emballons n'ont
pas besoin de bien
comprendre
ce que c'est. Dans ce cas, toutes ces choses
manuelles et tous ces fichiers de configuration, chaque
directive et chaque fichier, vous n'avez pas besoin de les comprendre. Tout ce que vous devez
savoir, c'est qu' il s'agit d'un fichier qui
va quelque part. Et si ça va quelque part, et que tout est
configuré correctement, cette chose
va juste fonctionner. C'est tout ce que tu
dois savoir à ce sujet. Bien sûr, si vous êtes
curieux et
que vous voulez creuser,
c'est merveilleux. Mais je pense que l'un
des grands avantages de
ce cours est que vous constatez que vous n'avez pas besoin de saisir
pleinement les détails de chaque chose
parce que vous
créez simplement un couche d'automatisation, qui est une sorte de couche d'
abstraction autour de cela. Ok ? Donc, vous êtes très, très bien. Je peux comprendre le truc de l'emballeur que
nous faisons à ce sujet, mais vous n'avez pas besoin de le
comprendre parfaitement. D'accord, j'espère que ça t'a fait peur et que tu te sens mieux ne pas avoir complètement saisi
chaque commande ici. Et si
c'est le cas, super, ce n'est pas une configuration particulièrement
compliquée que
nous avons ici, mais
c'est très courant. Vous verrez que c'est
le genre de matériel qui produit dans
le monde entier dans la vraie vie. C'est donc très,
très similaire ce que vous verrez si
vous utilisez Packer.
7. Tour de code projet Packerized: Passons donc au code. Si nous allons à la section
build ici, passons en revue. La première chose qui se produit est il existe une provision shell ou qui exécute le script de configuration AMI du
répertoire de scripts. Bon, allons dans le répertoire des scripts,
les scripts configuration de l'
AMI. Regardons ça.
Vous vous souvenez peut-être de
certaines de ces choses
dans la section de script Bash. Mais en gros, je viens de prendre les parties principales de la
configuration de
la plate-forme d'hébergement comme je le fais
dans le cours où je vous explique
Linux à ce stade. Maintenant, vous
savez déjà comment
fonctionne Linux et nous pouvons simplement
faire tout cela dans un script. Je viens donc transposer toutes ces
commandes dans un script. C'est un script bash et
vous pouvez voir installer mon, mon SQL Server Engine X PHP, MySQL, PHP, npm, démarrer et activer ces services afin qu'
ils démarrent au démarrage. En fait, je ne pense pas avoir besoin de les démarrer
parce que je vais juste, je vais imager cette machine, mais ça n'a pas vraiment d'importance. Ensuite, j'installe un tas
d'extensions PHP. Ce sont ceux dont
vous avez besoin pour 2204. Ce sont des extensions
que j'ai en quelque sorte suspendues, en attendant
d'autres recherches. Mais les choses fonctionnent sans
elles. C'est très bien. Celles-ci n'existent pas en 2204
ou ont été intégrées. Un autre nom de paquet, nous faisons quelques configurations NGINX comme cela de
certaines choses dont dépend notre configuration
NGINX, comme la création de ce
répertoire, etc. Nous normalisons quelque chose d'un peu plus ancien
qui est exécuté PHP F P, M. Je peux faire un commit
pour changer cela. Tu n'as pas à trop t'
inquiéter à ce sujet. Cool. C'est donc la
fin du script. Vous pouvez donc voir
que cela
nous amène à la fin de la
gestion des services. Nous avons donc
commencé à installer, démarrer et activer les
services dont nous aurons besoin. Voyons ce que feront les
prochains approvisionneurs. Vous pouvez donc voir que
nous déplaçons des fichiers. Il s'agit du fichier de configuration principal du
moteur x, que vous connaissez sûrement
à ce stade. Nous allons le faire, c'est comme le fichier de configuration du site WordPress, qui va en quelque sorte
faire face au trafic pour votre
serveur d'applications, votre serveur PHP. La configuration PHP FEM de
votre site se trouve ici. Jetons simplement un
coup d'œil à celles-ci. C'est donc le
moteur principal x config. Cela vous est très
familier. C'est ce qui fait ton
P, c'est pourquoi nous le faisons. Créez ce répertoire de cache. Le fichier de configuration du site
pour Engine X ici, vous êtes totalement,
devrait être totalement habitué à cela depuis le cours. Maintenant, dans les instructions que j'ai, j'ai ceci comme une variable
shell et vous pouvez le changer au fur et à mesure que
vous travaillez avec ce genre de choses. Évidemment, si vous le configurez
vous-même, vous devez simplement le cloner
, puis résoudre tutoriel Linux pour domaine sur lequel vous allez
configurer le site, quel que soit l'utilisateur que vous
allez utiliser , etc. Donc, si vous trouvez et remplacez
littéralement dans le répertoire du package Linux
quel que soit le
nom de votre site ou de votre nom de domaine, alors vous devriez être plutôt content. Ça ne prend pas grand-chose. Pareil avec PHP SPM. Cela ne se
soucie pas du tout du domaine. Juste le
répertoire personnel de votre utilisateur, ce genre de choses. Nous les mettons en place,
ce qui va de soi. Et puis notre dernière mise à disposition ou installe réellement WordPress. Et vous verrez configurer le site
WordPress. C'est comme tout ce processus
que nous faisons ici dans les
instructions GitHub originales que je vous explique
dans la vidéo du cours. Lovely est également un tas de fichiers de
configuration en ligne. Maintenant, nous allons
faire, voici quelques-uns des fichiers
de configuration que nous venons d'
écrire et dont nous
venions de parler. Nous allons maintenant faire tout
cela simplement dans un script. Et ce script est le script de configuration du site
WordPress. Et c'est en quelque sorte
une version adaptée de ce
que je fais dans ce fichier markdown. Il y a quelques types de problèmes que j'ai
dû résoudre, c' façon dont nous pouvons configurer votre SQL Pass est une chose
interactive. Je fais donc simplement écho à cela pour que vous le voyiez
pendant le processus de construction. Vous pouvez le copier pendant
le processus de génération. Ce n'est pas parfait. Par exemple, si vous faisiez
cela de manière professionnelle, vous ne voudriez probablement pas
cela comme dans les journaux de
votre système de compilation ou autre. Mais comme pour ce cours,
c'est très bien. Si tu fais
ça pour toi-même. Pour une petite entreprise,
vous n'allez pas
conserver ces journaux indéfiniment. Ils vont littéralement
être répercutés dans une coquille. Quelque chose comme ça,
où vous verrez qu'un script de configuration de packer enregistre
quelque chose que vous étiez
mon pass SQL,
ce n'est pas
un gros problème. Tu n'es pas comme
ça pour toujours. Donc, vous le mettez dans votre gestionnaire de mots de passe et vous
êtes prêt à partir. Donc à part ça, cela suit vraiment
les instructions de
très, très, très près. Il suffit de télécharger l'application WordPress, de
la compresser, l'archiver, de la
décompresser, ainsi
que des paramètres et des autorisations sur ce répertoire personnel et de la quitter. Et à ce moment-là, à
peu près tout devrait être mis en place. Ce que fait Packer, c'est quand il arrive à la dernière chose
de la dernière étape de compilation, c'est comme, ok, cool. Si cette chose est
toujours réactive, alors je vais supposer qu'
elle a réussi. Et je vais créer une
image de cette machine. Et
il va créer une AMI,
une Amazon Machine Image. Quel que soit
l'état de cette machine.
8. Installation de Packer: Parlons donc de
l'installation de Packer. Vous pouvez décrire un
binaire si vous le souhaitez. Et je pense que c'est très bien. Et ça vient de la page des
téléchargements. Il vous suffit de récupérer la
dernière version pour n'importe quelle plateforme sur laquelle vous vous trouvez. Et au fait, puis-je
juste dire que j'ai adoré le fait que ces gars soient là,
ça me rend heureuse. Si vous utilisez OSX, vous pouvez utiliser Homebrew
avec ces deux commandes. Sous Windows, vous
avez des binaires ici. Sur Linux, vous pouvez ajouter
les versions de HashiCorp, dépôt, puis simplement installer tous les outils de
Hace à partir de là. Je voulais juste montrer que
l'option chocolatée sur Windows est probablement
la plus cool. Si vous utilisez le gestionnaire de
packages chocolatey parce que vous voulez faire partie
du monde
cool de la
gestion des packages de fonctionnalités qui se passe
partout ailleurs depuis longtemps. Le chocolat est probablement
ce que vous voulez. Et comme tu peux le voir, tu peux. Il est maintenu par un tiers, mais il est toujours possible de
l'installer de cette façon. Donc pour ma part, j'ai
déjà installé Packer et vous pouvez voir que dans n'importe quel
environnement de type Unix, vous serez probablement capable de
lancer lequel, quel Packer. Et cela vous indiquera
où il est installé. Et vous pouvez voir que je l'ai
installé via Homebrew. Si vous téléchargez le
binaire sur un système de type Unix, vous voudrez probablement le
coller dans User Local. Et ça va prendre un pseudo. Mais c'est à peu près
tout ce que tu dois faire. Ensuite, vous avez installé
Packer et nous pouvons partir de là. Je te
vois dans la prochaine vidéo.
9. Créer une clé SSH dans AWS EC2: Très bien,
parlons rapidement de la création d'une paire de clés. Si vous n'en avez pas déjà
une, encore une fois, si vous en avez une qui vous permet d'
utiliser une paire de clés SSH pour EC2, vous pouvez ignorer cette vidéo. Mais pour ceux qui
ne le font pas, vous pouvez sur le tableau de bord principal soit cliquer sur paires de
clés ici sont vraiment
depuis n'importe où dans EC2, vous pouvez faire défiler vers le bas jusqu'à Réseau
et sécurité sur la gauche, cliquer sur Paires de clés, puis
créer un nouvelle paire de clés. Je vais nommer le
mien 2022, Cohen. Nous allons créer la clé EDA à 5519 au format PEM
et créer cette paire de clés. Et vous pouvez le voir, il suffit de télécharger
automatiquement le fichier. Faisons une longue liste de
notre répertoire de téléchargements avec notre clé 2022 d Cohen. Vous remarquerez une chose qui embrouille beaucoup de
nouveaux utilisateurs, est que ces
autorisations 644 permettent à tout le monde d'être lisible, ce qui en fait SSH vérifiera, pas comme ça à tout. Et ne vous laissez tout simplement pas vous connecter. Beaucoup de débutants accrochés ici et
c'est tout à fait normal. C'est un truc bizarre. Ils sont créés comme ça. Mais tout ce que nous allons faire
c'est de notre répertoire SSH avec nos trucs
SSH juste une paire de clés. Nous allons donc définir correctement les
autorisations, puis déplacer
simplement dans
le répertoire SSH. Nous allons dire CH, le
mien, donnez-lui juste 600. Téléchargements. 2022, Dash d Cohen. Vous pouvez maintenant voir que
nous avons supprimé toutes
ces
autorisations de groupe et autres par trois. Désolé, je ne le
souligne pas correctement. Donc, il s'agit d'une autre personne sur
le système, c'est le groupe. Le groupe du propriétaire ne
peut donc pas lire et personne d'autre sur le système ne
peut lire non plus. C'est juste le propriétaire
qui a lu et écrit, et le propriétaire est Dave. Nous pouvons maintenant
déplacer ce fichier. Je veux dire, vous auriez pu le
déplacer auparavant, mais dans notre
répertoire SSH, vous allez lister le répertoire SSH
avec une longue liste le répertoire SSH
avec une longue liste
et cela vous montrera simplement que tout
est beau et propre. Ils ont les mêmes autorisations. Maintenant, dernière chose que je vais vous
montrer avec les clés et je pense que c'est juste une fonctionnalité pratique
merveilleuse. Est-ce que SSH ad est votre agent SSH, comme si c'était un démon qui courait. Et ce que vous pouvez faire,
c'est que lorsque vous vous connectez à vos
instances EC2 ou quoi que ce soit d'autre, particulier si vous
avez beaucoup de clés dans votre répertoire SSH, il essaiera simplement les
trois premières qu'il trouve. Et puis tu n'
auras peut-être plus d'essais. Donc les gens commencent à faire
comme SSH, Dash, I, comme une clé, puis
à distance ou quoi que ce soit d'autre. C'est une
chose très courante à voir. Pour éviter cela, vous pouvez
simplement ajouter celui que vous souhaitez
utiliser à votre agent SSH. Et pour ce faire, c'est
avec SSH 2022 d. Cohen. S'il y a un mot de
passe, il vous le
demandera vous le
demandera une fois, puis le conservera
déchiffré en mémoire. Et ce qui est vraiment intéressant à ce
sujet, c' que si
vous l'utilisez sur toutes vos instances IP
publiques, vous pouvez maintenant vous connecter à toutes ces instances sans être
invité à
nouveau est que si
vous l'utilisez
sur toutes vos instances IP
publiques,
vous pouvez maintenant vous connecter à toutes
ces instances sans être
invité à
nouveau mot de passe à chaque
fois ou comme pour chaque commande ou quelque chose comme ça, montrez que vous l'ajoutez à nouveau, SSH listé là-dedans. Et si vous voulez l'effacer, vous pouvez le supprimer. Cool. C'est donc en quelque sorte le cycle
de vie. Lorsque vous redémarrez votre
machine, l'ajout SSH sera à nouveau vide
lorsque vous le redémarrerez. C'est donc une chose à faire une fois
par démarrage. C'est plutôt rouge. Tu y vas. C'est un peu ce que vous
devez savoir sur les clés avec Amazon. Et je te verrai
dans le prochain.
10. Créer un utilisateur IAM AWS pour Packer: Très bien, dans cette vidéo, nous allons voir comment créer
un accès
programmatique
pour Packer sur Amazon. Pour ce faire, nous utilisons ce que
l'on appelle IAM. Il s'agit d'un tableau de
bord
et d'un service complètement séparés sur Amazon. Gestion des identités et des accès. Ce que nous allons
faire là-bas, c'est créer un utilisateur qui a accès à l'API, accès
programmatique,
ils l'appellent. Et ce que ça crache pour
toi n'est en fait qu'une clé et un secret. C'est le type de
connexion automatique les emballeurs vont utiliser
pour s'identifier, par exemple, je suis autorisé à le faire sur le compte de
Dave ou sur votre compte AWS. Ensuite, les packers les utiliseront pour faire tourner votre instance, créer un groupe de sécurité afin qu'il puisse se connecter
à cette instance, créer une clé SSH afin qu'elle
puisse se connecter à cette instance. Elle a besoin d'une autorisation
pour créer une AMI,
pour créer une AMI à partir d'une instance en cours
d'exécution. Toutes ces autorisations,
car il s'agit d'un cours sur l'empaqueteur et
non d'un cours AWS. Un AWS complet et les coûts
de production
seraient de l'ordre de 600 heures. Je vous demanderais de faire un
stage de trois mois chez moi. Avant que je dise que c'est fini. Il s'
agit principalement d'un cours de conditionnement, nous allons
donc le faire de
manière simplifiée. Cela signifie que nous allons
simplement donner un accès
administrateur à
ce compte, ce qui est beaucoup trop pour la production
. Il n'a pas besoin de tout
ça. Dans la vraie vie, vous réduiriez cela
à quelque chose qui correspond exactement à ce dont l'emballeur a besoin. D'accord, cela étant dit, lançons-nous et connectons-nous un peu. Dans les services. Passons à l'IAM. Examinons les utilisateurs
et ajoutons un utilisateur. Ce que nous
voulons vraiment, c'est l'accès à l'API. Nous allons donc l'appeler Cohen May, et nous voulons un accès programmatique. Ce sera donc l'accès à l'API. Nous n'avons pas besoin que ce
soit un nouvel utilisateur de console qui puisse se connecter et utiliser
cette interface graphique que nous utilisons. Ce n'est pas pour ça. Nommez-le et assurez-vous qu'il s'agit d'une clé d'accès pour l'accès
par programmation. Nous allons le
faire dans une escapade peut-être,
peut-être la plus simple, avec
juste un accès administrateur de balises. Ce n'est pas quelque chose
que vous voulez faire en production. En production, vous souhaitez, par exemple, pour Packer, créer
un rôle de packer qui ne dispose que des
autorisations nécessaires. Donc, comme EC2 point étoile si vous
voulez être assez approximatif, mais plutôt créer une instance, comme créer une AMI, créer une clé, créer une clé EC2,
supprimer une clé EC2. Tu vois ce que je
veux dire ? C'est comme si je vous
montrais les grandes
lignes de la façon dont cela fonctionne. Nous allons donc simplement
utiliser l'accès administrateur, ce qui
vous donne tout. Mais encore une fois, ce n'est pas une bonne idée
pour la production. Il s'agit du CH mod
777 d'AWS. Désormais, vous ne verrez
la clé d'accès secrète qu'une seule fois. Vous allez vouloir le copier
et l'enregistrer quelque part, je l'enregistre dans un tampon
et dans mon éditeur, l'ID de clé
d'accès. Montre ça. Vous pouvez le
voir parce que je
vais supprimer
cette clé avant même
de penser à
télécharger ces vidéos. Mais encore une fois, cela fonctionne comme dans un gestionnaire de mots de passe immédiatement si vous comptez l'utiliser
pendant un certain temps. Ok. Nous avons donc maintenant tous les
accès dont nous avons besoin. Puis-je simplement dire que c'est une erreur d'orthographe, de grammaire et de
grammaire
bizarre d'
avoir créé
le nom d'utilisateur. C'est tellement étrange. Il devrait y avoir qui écrit ce genre de choses ? Amazon, vous ne
gagnez pas 70 billions de dollars par an ? Vous ne pouvez pas vérifier l'orthographe.
11. La construction de Packer: Bon, vous avez
installé Packer, vous avez créé une clé SSH dans votre console AWS que
vous pouvez utiliser avec cela, vous avez créé un compte IAM
afin de disposer d' accès
programmatique
pour Packer dans AWS. Et maintenant tu veux juste
lancer ça et voir ce qui se passe. Je pense que c'est une
excellente façon d'apprendre. Laissons ça et
voyons ce qui se passe. Voici les étapes à
suivre pour y arriver. Vous avez terminé la première étape. Et vous pouvez utiliser le projet de démonstration ici sans
rien écrire juste pour voir à quoi ressemble le processus avant vous lancer dans votre propre
projet où vous pouvez peut-être convertir quelque chose
que vous voulez travailler sur un projet de packer. Vous avez donc accès à l'API. Ce ne sont que les étapes manuelles
que nous avons vues dans cette vidéo. Voici le moment de vérité. Vous devez maintenant l'exporter
dans votre shell. J'ai donc ces clés ici. Vous pouvez
essayer de les utiliser, mais ils ne fonctionneront pas car
je les désactiverai juste après la réalisation de cette vidéo. Je vais les copier et les
exporter dans un shell. Maintenant, si vous n'êtes pas très familier
avec Linux, ce n'est pas grave. Je suis essentiellement dans mon pack ou répertoire ici, le répertoire
du projet. Et je vais littéralement
coller ces deux lignes. Et cela signifie que
dans mon environnement shell,
ces variables
d'environnement seront définies comme étant égales à ma
clé d'accès, à mon ID et à mon secret réels. Et cela signifie
que lorsque Packer s'exécute, il va automatiquement regarder dans mon environnement shell pour voir si ces éléments sont définis sur quelque chose
qui n'est pas vide. C'est juste pour
voir s'ils existent. Ensuite, il essaiera de
les utiliser pour se connecter à Amazon et faire toute la
magie de l'emballage qu'il fait. Maintenant que c'est fait, nous pouvons exécuter l'une des
commandes du packer, qui est init, qui téléchargera
tous les plug-ins requis pour les constructeurs dont il a besoin, comme
le constructeur Amazon EBS. Et il suffit d'initialiser Packer. Ensuite, nous
continuerons à partir de là. initialisation de Packer est terminée
et c'est juste parce que j'ai déjà développé
sur cette machine. Donc, comme ça, ces éléments
sont déjà installés. Mais sur votre écran, vous
pouvez voir comme oat
télécharger le constructeur Amazon,
ce genre de choses. Je vais faire une vidéo à
ce sujet un peu plus tard, mais j'ai laissé
quelques petits changements que le format du packer apporterait. Rien de fonctionnel ou de grand. Mais ces commandes
sont faciles à exécuter, nous pouvons
donc essayer Packer Validate. Je te montrerai comment t'amuser plus tard. Mais vous pouvez voir que, fondamentalement,
Packer a juste cherché problèmes de mise en forme qui
ressemblent à des conventions. Va le poser. conventions Hcl et Packer Validate cherchent en fait
à voir si vous avez toutes les parties que
Packer va rechercher dans votre modèle. Nous pouvons donc maintenant aller de
l'avant et construire cela. Et la façon dont nous le
faisons est de rester dans le répertoire dans lequel se trouve
ce fichier. Bien sûr, nous pouvons donner à
Packer la commande build et en supposant à nouveau
que nous avons exporté ces variables shell
comme si vous aviez un jeu de clés d'accès valide, essentiellement login here, provenant
d'Amazon. Alors ça marchera. Maintenant, si vous êtes en train créer
votre propre projet après cela
et que vous le faites dans Azure, disons que c'est bon. C'est juste que vous aurez besoin le générateur
Azure exige un ensemble d'
informations d'identification différent et votre environnement
shell qu'
il va rechercher. Certains fournisseurs
ont besoin d'un fichier de configuration qui existe ou que
vous lui indiquiez où il se trouve. Nous
parlons simplement d'AWS ici. Lancez un packer,
créons WordPress, AWS Ubuntu et
voyons ce qui se passe. Cela passe par
l'ensemble du processus. Vous pouvez voir qu'il crée une paire de clés
temporaire ici. Il s'agit en fait
d'une paire de clés distincte, et non de celle que nous avons créée. C'est donc juste
pour Packer de se connecter et d'exécuter provisioners avec la paire de clés que vous avez créée avant
d'être utilisée. Cette instance va être
étiquetée avec cette paire de clés. Il va
être
téléchargé et vous pourrez l'utiliser
pour une connexion SSH. Cela va
donc prendre un certain temps. Et vous pouvez voir qu'
en attendant, nous pouvons voir une instance
qui a été lancée. Il est maintenant en cours d'exécution. Il semble qu'il soit toujours
en cours d'initialisation,
mais il est déjà connecté car
vous pouvez voir que
nous ne faisons qu' exécuter un
package en cours de mise à jour. C'est donc comme
apt-get update et apt-get upgrade à
partir de nos scripts. Et ça ressemble un peu à
ce que l'on attend de voir. Si vous êtes curieux, Packer crée toutes sortes
d'autres ressources dans le
cadre du générateur Amazon EBS. C'est donc comme si vous
utilisiez l'API Amazon. Il s'agit de créer une instance. Il s'agit de créer un groupe de sécurité
unique personnalisé uniquement pour cette version de packer. Et tout ça va
juste tourner en rond et je vais le laisser ici. Je vais peut-être accélérer ça
parce que ça va prendre un certain temps. Vous allez simplement regarder ce Build partir. Vous pouvez voir ici
quelques étapes à droite, télécharger les fichiers X du moteur. Il s'agit donc d'une autre disposition ou du téléchargement de ce fichier de configuration
NGINX, et c'est juste dans
le répertoire personnel B12. Pour l'instant. Il exécute le script de
configuration du packer. Tout ça s'est passé. Il fait apparaître un My Sequel, un mot de passe
MYSQL généré aléatoirement. On peut le garder. Il faut le jeter dans les clés. Et maintenant, nous sommes simplement en train
de préparer une AMI. Cela signifie que nous
pouvons examiner les AMI et que nous
pouvons voir qu'il s'agit d'une
AMI en attente. Il est en cours de préparation en ce
moment à partir de notre instance ou l'
instance est arrêtée. Il crée une AMI à partir de celui-ci. Lorsque cette AMI sera
terminée, notre instance sera
résiliée. Très bien, et vous pouvez voir que
nous avons terminé et que
tout est fait dès qu'il voit que l'AMI n'
est plus en attente mais prête. Il sait qu'il peut
nettoyer tout ce qu'il
a créé pour cette exécution, y compris le
groupe de sécurité que nous avons vu précédemment, la paire de clés que vous avez recherchée créée au tout début. Et la plupart du temps, c'est le cas. Je veux dire, tu as vu que c'était
juste une création d'AMI. Donc maintenant, si je rafraîchis ceci, le statut devrait être disponible. L'instance a
été nettoyée.
12. Utiliser l'AMI pour héberger un site WordPress: Maintenant que nous avons
créé notre image, vous pouvez voir que nous en avons
terminé. Cette chose est répercutée
sur le mot de passe MYSQL. Il est en train de créer une AMI ici à l'endroit où elle
fait écho au nom
qui lui a été donné. Une fois l'image terminée, elle met fin à l'instance
source. Donc, l'instance
d'origine a été temporairement
lancée pour configurer ou exécuter
des scripts malchanceux contre. Ça a encore été décomposé. Le groupe de sécurité qu'il a
utilisé pour se laisser accéder l'instance avec la paire de
clés temporaires qu'il a créée. Toutes ces choses en
ont eu deux. C'est donc un bon processus de nettoyage. Et vous pouvez voir qu'il ne nous
reste que cette image avec eux. Maintenant, vous pouvez, si vous
utilisiez Terraform ou quelque chose comme ça, vous pouvez maintenant référencer cette image non pas nécessairement par un MID, mais par la source où c'est comme ce format, essentiellement
comme ID de compte, nom. Si vous demandiez à Packer de nommer
cela quelque chose comme date de tableau de bord, c'est une bonne façon
de les organiser, mais comme nous l'avons vu dans ce pack ou configure
ferait la même chose et terraformerait en utilisant une
source de données où tu dis juste, OK, le propriétaire
sera moi, mon compte. Le nom sera
le nom que j'ai donné le plus récent
qui sera vrai. C'est une autre façon d'obtenir
la version la plus récente ou la version de production. Si vous utilisiez
quelque chose comme Terraform, cela dépasse légèrement
le cadre de ce cours, mais il suffit de dire, à quoi
ressemble réellement
le processus si nous lançons une
instance à partir de ce cours ? Eh bien, puisque c'est le cas, nous allons simplement appeler ce
tutoriel Linux web. Et vous pouvez voir qu'il
utilise cette AMI. Vous pouvez y accéder depuis
le menu de la nouvelle instance pour sélectionner l'AMI ici. Choisissez ce que vous
voulez dire que je vais héberger. Je ne sais pas. Je vais héberger un site Web de
taille moyenne. Quelques, je ne sais pas,
quelques 100 utilisateurs. C'est peut-être un magasin qui a
besoin de souvenirs. Peut-être que je dirais deux
ou quatre processeurs virtuels et peut-être huit Go de mémoire
pour un site WordPress plus grand, vous ne sélectionneriez qu'une paire de
touches de clavier que vous avez. Https, HTP, ce
sera un serveur Web. Autorisez, vous savez, peut-être simplement depuis votre IP ou simplement depuis
votre réseau privé, depuis le VPC, peu importe. Et j'irais en GPT-3. Et peut-être, je ne sais pas, l'appeler pour un site
WordPress plus grand. Vous pouvez avoir beaucoup d'images qui
ressemblent à des données téléchargées par l'utilisateur, quel que soit
l'espace disque disponible. Donc 5000 concerts, c'
est comme si, tu sais, ce n'est pas vraiment
ce que tu payes pour ça. Alors oui, ça semble cool. Nous lancerons cette
instance et je vous montrerai quand
nous nous y connecterons. C'est donc en cours d'exécution. Il est probablement encore en train de
démarrer, mais je
vais aller sur le réseau et copier l'adresse IP publique. Je vais à SSH
pour ajouter cette adresse. Je suppose. Ouais. Ok. Mon agent SSH
avait déjà les clés. C'est comme si vous
utilisiez votre clé SSH par défaut
sur cette machine, et que c'était la paire de clés SSH que cette machine
créait avec cette instance, alors cela fonctionnera simplement. Sinon, vous pourriez avoir
à faire quelque chose comme ça. Vous pouvez voir qu'il ne s'agit que d'un exemple de clé que j'ai créé. Il s'agit d'une clé PIM que j'ai créée
dans AWS et téléchargée. Si vous ne savez pas
comment fonctionnent les clés, les
règles et tout le reste, comment tout cela fonctionne. Ensuite, vous
voudrez regarder ma précédente vidéo Amazon pour savoir comment faire cela sur
Amazon en général, car si vous ne pouvez pas encore le faire
manuellement sur Amazon, ce sera difficile de le faire de manière automatisée pour que tout ressemble
à de la magie. Bref. Vous pouvez voir que
nous sommes maintenant assis sur cet hôte, une adresse IP privée. Oui, tu peux faire quelque chose
comme si une hache tournait. Je sais que c'est parce que c'est toujours un
criminel d'
inclure ça dans le nom du service. Je pense. Tu peux voir. Donc juste au moment où cela démarre, vous pouvez voir le pool PHP f Pm nommé tutorial Linux
est configuré. Cela fonctionne donc en gros. Nous pouvons voir le
site WordPress si nous avons édité ETC. Les hôtes aiment, en fait, je ne pense pas que ça
marchera parce que le tutoriel Linux.com utilise hs ts, donc il insistera sur HTTPS de
toute façon, pour faire court. Ce serait maintenant une installation
WordPress
littéralement fraîche exécutant toutes
les choses que nous avons configurées, quelque sorte prête à être
configurée et prête à être utilisée. Il s'agit donc de
toutes les commandes manuelles
qui sont exécutées
tout au long du cours
lorsque vous l'apprenez. Avec une belle et agréable instance
WordPress, prête pour que vous puissiez configurer votre site pendant qu'il
exécute un serveur WordPress, mais pour que vous puissiez réellement
configurer le site WordPress sur. Et oui, c'est une bonne façon de l'
emballer en position verticale. Et quand tu veux, je ne sais pas, tu ne
veux plus t'occuper de ça. Il suffit de mettre fin à l'instance
et tout s'arrête. Évidemment, une fois
que vous avez des sites configurés sur ce point, vous voulez être comme si vous preniez un instantané de l'instance et non pas simplement la
terminer, n'est-ce pas ? Parce que ce sont vos
sites qui s'y exécutent. Mais oui, c'est un bon type
de workflow de développement. Et le fait que vous puissiez rapidement utiliser Packer
comme ça en
quelques 100 lignes pour inclure
tous les scripts de configuration, pour avoir une petite image sympa qui est
toujours disponible pour vous. Je garde ça
juste pour faire des tests. Je le garde pour vérifier si quelqu'un aime
signale qu'il y a un bogue. Habituellement, ce n'est pas un bogue et c'est comme s'ils s'étaient embrouillés à propos
de certaines instructions. Donc, je vais simplement utiliser la dernière image ou autre. Je vais simplement changer
l'image source elle corresponde à ce qu'ils utilisent. Je vais voir si c'est juste un problème, juste un problème d'image ou généralement
c'est comme un gros problème. J'espère que c'est amusant. Et j'espère que cela vous
donnera une idée de l'une des façons dont
vous pouvez étendre cela, rendre plus grand, le rendre plus
professionnel, plus automatisé ? Ouais. Si vous connaissez des choses
comme Terraform ou CloudFormation ou si vous avez un flux de travail DevOps à l'œuvre. J'espère que cela vous aidera à
voir comment vous passez d'un manuel. Comme, Oh, je suis juste en train de rédiger un script
pendant que
je le trouve et que je travaille
dessus commande par commande. façon dont vous passez d' une build répétable, comme
via Packer, à une partie d'un pipeline plus large où
tout ce dont vous avez besoin pour référencer est un ID d'AMI est en fait
la dernière image qui
porte un nom donné. Si c'est le cas, c'est une bonne façon de faire
abstraction de tout cela. J'espère que c'est utile
et je vous verrai dans le prochain article.
13. Packer Documentation et développement: Voyons comment
naviguer sur les sites Web des emballeurs, particulier la
documentation, afin que vous puissiez apprendre à
pêcher par vous-même après ce cours. Je vous ai montré
un type
d'introduction très spécifique , qui
concerne spécifiquement AWS. C'est très spécifique à
bien, pas si spécifique, mais c'est spécifique au
projet que nous avons fait, qui est cet hébergement
WordPress , ce dont vous avez besoin pour eux. Il y a plein d'autres choses
que tu peux faire avec Packer. La forme générale
sera toujours comme ça. Et c'est ce que j'aime
vraiment outils
HashiCorp, c'est qu'ils sont outils
pointus, tout comme beaucoup
d' outils Linux et Unix sont des outils pointus. Ils font une chose, ils
le font vraiment bien. Ils sont flexibles
afin que vous puissiez passer du temps avec d'autres
outils comme vous le souhaitez. Et je pense que sur le site
HashiCorp Lauren, c'est un bon endroit pour regarder peu plus l'
utilisation réelle de Packer. Nous avons donc abordé un grand nombre
de points de la piste AWS. Mais si vous voulez
créer des images Docker comme Packer peut le faire. Si vous souhaitez créer
sur un autre Cloud, GCP, Azure, ce genre de choses. Vous pouvez le
faire en utilisant Packer avec
d'autres outils, etc. Mais vous pouvez
le parcourir vous-même. Ce que je vais vous montrer,
c'est Packard io slash docs. C'est, je crois,
l' endroit où je
passe du temps alors que je ne
fais que construire
un projet de packer. Tout ce dont vous aurez besoin
se trouve ici. Ces documents sont fantastiques. comment souhaitez-vous vous
connecter à votre machine ? Les sources de données ? Vous allez passer beaucoup
de temps dans les approvisionneurs. Je veux juste que tu saches
que ce truc est là. Et quand tu es perdu,
disons, Oh, tu
as oublié comment transférer des fichiers. Quelque chose que nous faisons dans ce
cours à quelques reprises. Eh bien, allez simplement dans le fichier
des provisioners et vous obtiendrez quelques exemples. Maintenant, nous utilisons HCL simplement
parce qu'il est beaucoup plus propre. Mais Jason, tu pourrais vouloir ça pour des raisons de compatibilité
avec autre chose,
une autre partie de ton
pipeline ou quoi que ce soit d'autre. Cela vous donne un exemple de l'utilisation réelle et
des documents nécessaires. Un paramètre optionnel
explique tout en détail, donne de nombreux exemples de cas d'utilisation
spécifiques. Je veux juste que tu
saches. Je donne explications
très succinctes afin que vous compreniez comment
fonctionne une chose dans le contexte de ce projet que
nous menons ici. Mais il y a évidemment
plus à faire sur les quais et tu ne passes pas ton temps à m'entendre te lire les documents. Je veux juste que tu
saches qu'ils sont là et que tu
devrais t'en servir. Il est tout à fait normal que
votre flux de travail soit ouvert dans un onglet pendant que vous créez votre propre projet
Packer , puis que votre
projet Packer soit ouvert dans un autre onglet. Et c'est un peu comme ça que
tu y travailles. Tu es genre, d'accord, alors j'ai
cherché le dossier. Eh bien maintenant je peux écrire mon
dossier ou ici, et voilà. Basé sur, sur la base de tout ce que
vous avez appris des documents. C'est quelque chose que nous
utiliserons bien au-delà du matériel de ce cours. Et j'espère que cela vous
aidera à démarrer pour l'utilisation future que
vous aurez quand je ne serai pas là pour vous tenir la
main dans un projet.
14. Plugins Packer utiles: Parlons des plugins Packer. Jusqu'à présent, vous utilisiez plugins
Packer dans ce
projet qui sont des générateurs, mais il existe d'autres
types de plug-ins tels que les sources de données et
généralement les post-processeurs. Et l'idée est qu' un plugin est vraiment un
moyen d'encapsuler une mini-application séparée
qui sait comment faire quelque chose. Communiquer généralement avec
une plateforme pour créer une image, c'est faire la chose. Ainsi, dans le cas de l'exemple de projet
Amazon, dans le cas du
plug-in et du constructeur Amazon. Donc, ce que vous voyez là-dedans, c'est ce verrouillage de source dans
notre code qui utilise le générateur Amazon EBS et qui vous est fourni
par le plug-in Amazon. Et pourquoi ne pas
simplement regarder ça. Et puis nous
examinerons également d'autres que je pense intéressants ou courants, populaires et que vous aurez envie d'utiliser, et ils vous donneront juste
un peu une idée de comment cela fonctionne. Je suis donc sur le genre de plugins, je ne connais pas le
site de répertoire docs sur Packer.io. Et si nous regardons
simplement l'aperçu des constructeurs dans le plugin
Amazon EC2, vous pouvez voir que c'est
celui que nous utilisons, n'est-ce pas ? Donc, à partir de ce plugin,
c'est celui que nous utilisons, mais nous avons d'autres choses à notre
disposition , comme
un magasin d'instance, AMI, cette utilisation, chacun de ces éléments, je vais
vous montrer le format
veut, ce qui est comme si cela vous donnerait un exemple de la façon de l'utiliser. Il décrit les choses,
puis il
passe au type d'arguments
qu'il s'attend à obtenir, variables d'
environnement qu'il recherche, ce genre de choses. Donc pour Amazon, je pense que les choses
intéressantes à regarder, évidemment le constructeur EBS,
que nous utilisons. L'importation Amazon pour un
post-processeur est une autre chose. Tu es en quelque sorte
gratuit avec ça. Si vous utilisez peut-être une version différente ou si vous
souhaitez produire quelque chose qui produit un OVA. Vous pouvez importer cela
dans Amazon en demandant ce post-processeur de le
convertir en AMI, ce qui est parfois très pratique. Secrets Manager, je pense que l'une de ces choses se passe quand
on part de notre exemple, notre simple exemple de
projet pour ce cours. Ensuite, vous l'adaptez
au monde réel. L'une des premières
choses qui change est le type de sources de
données externes dont vous avez besoin. Le fait que vous ne le puissiez pas,
vous ne pouvez pas simplement mélanger un tas
de textes simples, comme du matériel clé et comme l'
envoyer dans des référentiels. C'est ainsi que les choses se passent mal, et c'est aussi ainsi
que
votre équipe de sécurité fait de votre
vie un enfer vivant. Vous allez donc avoir besoin d'
un moyen d'intégrer des secrets dans votre modèle
Packer. Essentiellement, votre Packer construit, et il s'agit d'un
mécanisme sur Amazon. Évidemment, il y en
a des analogues sur Google Cloud, je pense que même Digital Ocean
a maintenant un secret. Évidemment, Azure, etc. Ils vont tous avoir
un mécanisme comme celui-ci. Et bien sûr, ils seront
tous légèrement différents, mais en grande partie similaires. Et c'est ainsi que vous les
utiliseriez. Je pense qu'il est
intéressant de regarder d'autres fournisseurs de cloud, essentiellement des constructeurs d'
AMI
ou des constructeurs d'images. Donc je commencerais toujours par
le
concept de haut niveau dans l'
aperçu, pour comprendre
ce que vous faites. Ensuite, comme si nous voulions qu' Azure Resource Manager crée puis capture une image. Maintenant que tu sais ce que tu
veux, tu fouilles ici, tu regardes, d'accord,
comment cette chose s'authentifie ? De quoi ai-je besoin ? Comment faisons-nous, comment
aimez-vous la gestion des identités
et la gestion des accès
hors gestion ? De quoi a-t-il besoin ? Paramètres ou attributs obligatoires et facultatifs. Sandwich ECP encore une fois,
vous voyez que c'est comme si un type d'
invocation très similaire resterait un
peu plus élevé sur le prochain, je ne
veux pas que cela soit trop long, mais j'aime bien Digital Ocean, Alors je vais leur
crier dessus. Une autre chose
intéressante que
je vois ici est plus sombre. Je pense que c'est un
outil que vous allez beaucoup utiliser parce que je pense que cela montre à quel point
ces plugins font Packer, car toutes
les choses que
vous avez apprises sur les packers sont toujours bonnes. Donc si un jour vos
entreprises aiment, d'accord, plus de machines virtuelles comme nous sommes
pleines, je ne sais pas, Kubernetes
nomade, tout deviendra
une image de conteneur maintenant. C'est très bien ça. Vous pouvez, vous pouvez réutiliser
une grande partie de vos éléments et avoir
simplement la sortie sous
forme d'image Docker. Je veux dire, tu vas
évidemment
vouloir réduire cette image. Personne n'aime une image de 600 méga, comme une image de base B12. Mais même si vous optez pour le ski alpin
ou quelque chose de plus mince, c'est comme si vous pouviez toujours
utiliser le même processus et le même flux de travail et que cela
s'emboîtait de la même manière. Et c'est comme si ce n'était
pas le cas, ce n'est pas un projet géant de Greenfield qui a
encore 100 bugs qu'il suffit de
surmonter avant qu'il ne fonctionne. Ce sera juste
un constructeur légèrement différent qui attend des entrées légèrement
différentes,
des sorties légèrement différentes pour ceux d'entre vous utilisent Chef ansible
Config Management, un peu des logiciels plus traditionnels. Il existe des plugins pour cela. Donc, si vous avez déjà
écrit une tonne d'ansible, vous pouvez tout réutiliser. Ansible. Comme si vous n'aviez pas besoin
de convertir quoi que ce soit, vous n'avez qu'à utiliser vos playbooks
existants. Apportez-les et intégrez cela dans
ce flux de travail. Encore une fois, c'est comme si votre
flux de travail était préservé, votre flux de travail était cohérent. Et puis vous pouvez avoir
Packer qui appelle différents outils qui génèrent
réellement le type
de script
bash, comme dans
notre exemple ici. Faites tout cela avec Ansible et
convertissez-le, enveloppez-le dans Packer, puis tirez parti de
cette puissance que Packer vous donne pour vous
donner un tas de sorties
différentes qui sont des artefacts à partir de cela. Une autre chose que je trouve cool
est de devenir une source de données. La source de données vous permet de
récupérer un dépôt,
puis d'avoir une certaine granularité avec façon dont vous naviguez
vers ce dont vous avez besoin. J'espère que c'est une introduction
rapide et utile aux plugins Packer. J'espère que vous comprenez
que tout cela est
que le plugin est réellement encapsulé pour vous et abstrait, donc vous
n'avez pas besoin de vous en occuper. Là-dedans. Dans ces plugins. Tout cela ressemble à des appels d'API bruts contre ces fournisseurs de cloud, faites ceci, puis
faites autre chose. Ok, si ça échoue,
gère l'erreur d'une manière ou d'une autre. C'est comme des millions de lignes de code que vous
n'avez pas besoin d'écrire. Traitez vraiment ce menu de gauche
ici ainsi qu'un menu. Vous regarderez en bas, verrez
ce qui a l'air savoureux, tout ce
que vous devez faire, tout ce que vous essayez de faire, et vous les utiliserez pour le type de construction
ou d'artefact dont vous avez besoin.
15. Instructions du projet: Tout le monde, un petit
mot sur les projets. Je pense que je
vous ai évidemment guidé tout au long d'un projet, mais je pense
que la prochaine étape maintenant que vous avez les bases de Packer est
de créer votre propre projet à partir de zéro, sans suivre le tutoriel, ne pas regarder le code de
quelqu'un d'autre. C'est
très bien pour apprendre les bases de quelque chose, mais c'est ce que vous avez fait maintenant. Alors, où allez-vous à partir de là ? Je vous suggère de faire un projet réel pour vraiment
cimenter cette compétence et
cette connaissance dans
votre esprit et de les
rendre prêtes à être utilisées dans des entretiens dans la vraie vie pour créer votre propre vie
plus facile, ton travail. Je vais diviser cela
en deux catégories. En gros, si vous êtes
débutant en général, vous êtes plutôt
ingénieur junior en général. Et si vous êtes un
ingénieur général plus avancé. Et cet apprenti Packer était comme
la cerise sur un gâteau. C'est déjà très beau. Je viens de comparer
la formation d'
ingénieur à un gâteau, je crois que j'ai faim. Donc, si vous êtes débutant, l'
une des premières choses que
je vous suggère faire est de ne pas être très sûr de pouvoir faire ce que
je
vous ai montré dans ce
cours à partir de zéro. Ensuite, je suggère de
suivre, désolé, au lieu de
suivre, je vous
suggère supprimer le répertoire du
packer puis d'essayer de recréer ce projet
de packer à partir de scratch, compte tenu du contenu du
reste de ce dépôt, qui provient du cours
pratique Linux, si cela a du sens. Supprimez donc le
répertoire du packer,
en gros , créez-en un nouveau, puis commencez à tout
porter , un peu par pièce. Regardez chacune, toutes les commandes exécutées
manuellement, transformez-les en scripts. Prenez ces scripts et
utilisez-les dans votre projet Packer. Déterminez comment les
mettre en bouteille, comment les empaqueter et
les télécharger sur votre machine virtuelle
, puis partez de là. Il s'agit donc de recréer ce
projet de mémoire. Ensuite, vous avez le contenu
juste devant vous,
mais vous le reconvertissez
en projet de packer. C'est ce que je recommande aux
débutants absolus. Je pense que vous apprendrez beaucoup de choses parce que souvent, après avoir suivi le tutoriel, vous vous dites : « Oh,
je comprends parfaitement. Mais si quelqu'un est
comme, super, montrez-moi avec non
sans regarder le tutoriel et
les gens ne peuvent pas le faire. C'est comme si souvent simple fait de comprendre quelque chose
sur le moment n'
était pas la même chose que de vraiment le connaître même chose que de vraiment le connaître profondément et d'être capable de
l'appliquer concrètement. Alors,
allez-y en tant que débutant. Une fois que vous avez fait cela ou si vous commencez déjà par
un poste d' ingénieur plus avancé. Et ce que nous avons fait, genre, a ajouté une nouvelle compétence, mais ce nouveau pack de compétences représente 1 % de ce que vous
savez sur la technologie. Super. Je pense que vous avez également besoin d'un projet solo pratique
que vous ne réalisez pas à partir d'un modèle ou du travail de quelqu'un d'autre que
vous êtes en train de comprendre vous-même, en vous
dépannant vous-même. Si vous êtes plus avancé, je vous
recommanderais quelques conseils. Si vous vivez dans un
monde basé sur des machines virtuelles et que vous souhaitez poursuivre ce que nous avons fait dans ce cours, comme les images de
machines sur, eh bien, nous avons fait Amazon mais vous
pouvez faire Azure, Google. Vous savez, le processus est
plus ou moins le même. Construisez vous-même une image
machine à partir d' un autre
projet open source que vous appréciez. Dans ce cours, nous
parlons de WordPress comme du type de projet
open source que nous
empaquetons et avec lesquels nous faisons des choses. Mais il existe un
million de
projets open source intéressants, qui
font toutes sortes de choses
différentes. Les applications Web ont tendance
à avoir cette complexité de
configurer beaucoup de choses dans une image. Mais tu pourrais aussi faire
d'autres choses. Vous pouvez faire des choses comme mumble si vous voulez
avoir une
image réutilisable
comme celle du serveur de discussion d'équipe, il y en a quelques-unes. Il suffit de choisir si vous êtes
assez avancé, je suppose que vous avez une idée
des outils et
des projets
open source disponibles. Qu'est-ce qui pourrait être amusant d' héberger puis de construire une image
machine autour de cela. Si vous vivez déjà dans un monde où les yeux sont plus sombres, trouvez quelque chose qui ne soit pas
plus sombre dans votre travail ou même un projet open source et transformez cela en
image Docker, est-ce pas ?
Alors conteneurisez-le. Oui, vous pouvez créer votre propre chose et en
faire un fichier Docker sombre dans son propre projet, puis exécuter les
outils de build Docker et tout ça. Mais Packer peut faire tout ça et bien plus encore. Ce qui est bien avec
Packer, c'est
que ça rend ce pont vraiment facile, non ? Si c'est le cas, si vous avez
déjà une sorte d' automatisation ou de documentation sur les étapes
manuelles et
blah, blah, blah. Vous pouvez simplement réutiliser tous ces éléments, les
insérer dans Packer et simplement indiquer à Packer que votre sortie doit être une image Docker. C'est ce que je
recommanderais aux personnes
plus avancées, retrouvez quelque chose soit open
source, soit à votre travail et utilisez certaines de ces
autres fonctionnalités. Il peut être plus sombre ou
quelque chose d'autre, mais il suffit d'explorer ce que
Packer peut faire de
pratique pour vous. C'est vraiment
intéressant pour toi. Et faites-le sur une application
qui vous
intéresse légèrement ou sur laquelle vous devez
travailler de toute façon. Oui, j'espère que ça te donnera quelques idées de projets
que tu peux réaliser. Je comprends cela. Cela signifie que vous
ne serez peut-être pas en mesure montrer si vous travaillez sur vos propres entreprises comme
Closed Source Thing et que vous créez un projet de
paquet pour cela. Ne le téléchargez pas et montrez-moi s'il vous plaît respecter
la confidentialité. Mais si vous le faites pour un projet
open source, créez simplement un projet, téléchargez-le sur votre
propre compte GitHub et n'hésitez pas à le partager. Je pense que tout le monde serait
très heureux de voir ça. Juste pour voir d'autres exemples d'utilisation de Packer de différentes manières. Et vous pourriez même
être en mesure d'obtenir commentaires
positifs et constructifs de la part des gens sur
la façon de l'améliorer encore davantage. C'est
tout pour tout le monde. Si vous voyez les projets d'autres
personnes, soyez gentils, soyez constructifs. Vous n'avez pas à commenter, vous n'avez pas à donner de conseils. Nous sommes tous encore en train
d'apprendre, alors soyez gentils. accord, cela
conclut pour b, ce que je pense que vous devriez faire en
tant que projet pratique,
laissez cela percoler, laissez cela pénétrer dans votre
cerveau et commencez simplement parcourir des
projets open source et à voir Si l'un de ces
chatouilles, c'est à votre goût.
16. Conclusion: Félicitations. Vous avez maintenant vu à quoi ressemble un projet
Packer réel . Et je vous ai expliqué
le processus que j'ai suivi pour décomposer un problème du monde réel
en projets de packer, particulier un
modèle Packer et un
peu de comment vous allez après avoir un tas de manuels ou types de
composants d'automatisation tels que des scripts. Prends-les et mets-les dans le monde des emballeurs et leur façon
de penser les choses. J'espère que vous utiliserez immédiatement cette nouvelle compréhension et connaissances et que vous les mettrez à
profit sur votre propre projet, un projet que je
n'ai pas présenté pour vous. Je pense que c'est la façon de
cimenter ces connaissances et de les
faire passer au niveau supérieur et avoir vraiment durablement dans votre cerveau, de
sorte que, vous savez, lorsqu'un problème survient ou quand un
entretien d'embauche a lieu, c'est une question
qui vient à l'
esprit et vous avez juste cette connaissance intuitive
du processus et de la façon dont
vous le traversez, et comment vous analysez
le problème et
le décomposer les artefacts techniques qui sont un projet de packer sur ce
cours a été amusant. S'il te plaît Si vous avez aimé,
veuillez laisser un commentaire. Si ce n'est pas le cas,
envoyez-moi simplement un message ou laissez un commentaire sur l'AQ pour demander les améliorations
que vous
souhaiteriez y apporter. Je prévois certainement travailler un peu
plus sur ce cours si vous pouvez
recevoir et si vous avez l'
impression que quelque chose
manquait ou si vous
aimeriez qu'une section soit ajoutée ou clarifiée,
veuillez simplement Dis-le-moi. Je suis heureux de remplacer les
vidéos par des plus claires pour vous et peut-être d'en
ajouter de nouvelles. Si vous êtes curieux
de savoir quelque chose que je n'ai pas approfondi. Encore une fois, ce fut un
plaisir de le faire. J'espère que tu en retireras
quelque chose. Et j'espère vous voir sur les chaînes
YouTube,
tutoriel Linux. Et je fais des choses comme
ça, mais gratuitement, ou je suppose sur Udemy
et mon autre cours, pratique Linux, où je passe en revue votre
projet d'hébergement
WordPress pour vous enseigner
les bases de Linux, en particulier dans l'administration
système Linux, amusez-vous pendant votre voyage. Je te verrai là-bas.