Emballeur pratique : une introduction pratique à la construction d'images de machines sur AWS | David Cohen | Skillshare

Vitesse de lecture


1.0x


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

Emballeur pratique : une introduction pratique à la construction d'images de machines sur AWS

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

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      INTRODUCTION DU COURS

      1:20

    • 2.

      Pourquoi Packer Pourquoi l'infrastructure en tant que code (IaC) ?

      6:29

    • 3.

      Aperçu de projet de Packerfile

      4:54

    • 4.

      Primitives et terminologie des emballeurs

      7:05

    • 5.

      Blocs de modèles de Packer

      3:35

    • 6.

      Visite du code de projet WordPress

      5:38

    • 7.

      Visite de codes de projet emballés

      5:28

    • 8.

      Installation de Packer

      1:32

    • 9.

      Créer une clé SSH dans AWS EC2

      4:01

    • 10.

      Créer un utilisateur AWS IAM pour Packer

      3:57

    • 11.

      La construction de Packer

      6:18

    • 12.

      Utiliser l'AMI pour héberger un site WordPress

      6:53

    • 13.

      Documentation et flux de travail de développement de Packer

      3:19

    • 14.

      Plugins d'emballage utiles

      6:39

    • 15.

      Instructions du projet de cours

      5:52

    • 16.

      Conclusion

      2:09

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

49

apprenants

--

projet

À propos de ce cours

Dans ce cours, vous apprendrez à transformer les scripts de configuration de serveurs existants en un projet de construction de Packer qui crée une image machine entièrement configurée que vous pouvez utiliser sur le cloud d'Amazon. C'est un projet simple et réel qui vous montre comment Packer est VRAIMENT utilisé dans le monde des infrastructures et des DevOps en nuage.

Dès que vous aurez terminé, vous aurez automatisé une construction d'images pour un serveur qui héberge un site WordPress.

Vous apprendrez les choses suivantes :

  • Comment installer Packer
  • Comment créer et structurer un modèle de Packer simple pour construire une image machine sur AWS
  • Comment penser à transformer les commandes/procédures existantes en scripts et comment utiliser ces scripts dans votre flux de travail Packer.
  • Comment créer des machines virtuelles (instances AWS) à partir de l'image machine que vous avez créée avec Packer.

Qui êtes-vous ?

  • Vous êtes un ingénieur Linux, DevOps, Cloud Infrastructure ou logiciel qui veut automatiser les constructions d'images de serveur.
  • Vous avez des compétences en ligne de commande de base (Linux, Windows ou OS X).
  • Vous savez comment cloner un projet à partir de GitHub et éditer du code dans un éditeur de texte.
  • Vous souhaitez apprendre des compétences DevOps plus pratiques.
  • Vous souhaitez automatiser les constructions d'images comme une première étape pour faire en sorte que la configuration d'infrastructure fasse partie d'un pipeline CI/CD.
  • Vous êtes curieux de savoir à quoi ressemble un petit projet Packer mais réel.

Qui suis-je ?

  • Je fais des Linux, des infrastructures en nuage, du développement de logiciels et de DevOps/SRE depuis près de 15 ans.
  • J'ai enseigné des centaines de milliers de personnes en technologie sur ma chaîne YouTube.
  • Je veux enseigner des compétences importantes d'une manière utile et sans BS qui vous donne des compétences pratiques que vous pouvez appliquer immédiatement à des projets réels, dans des entrevues d'emploi ou pour vous faire promouvoir.

Jetez un coup d'oeil ! Je suis ravie de vous voir à l'intérieur.

Rencontrez votre enseignant·e

Teacher Profile Image

David Cohen

Linux, Programming, DevOps, etc.

Enseignant·e

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

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

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

Voir le profil complet

Compétences associées

Développement Développement Web
Level: Intermediate

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

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.