Embalaje práctico: una introducción práctica para crear imágenes de máquinas en AWS | David Cohen | Skillshare

Velocidad de reproducción


1.0x


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

Embalaje práctico: una introducción práctica para crear imágenes de máquinas en AWS

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

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      INTRODUCCIÓN AL CURSO

      1:20

    • 2.

      ¿Por qué Packer? ¿Por qué la infraestructura como código (IaC)?

      6:29

    • 3.

      Resumen de proyectos

      4:54

    • 4.

      Primitivos y terminología

      7:05

    • 5.

      Bloques de plantilla

      3:35

    • 6.

      Tour de código de proyectos

      5:38

    • 7.

      Tour de código de proyecto

      5:28

    • 8.

      Cómo instalar embalador

      1:32

    • 9.

      Cómo crear una clave SSH en AWS EC2

      4:01

    • 10.

      Cómo crear un usuario de AWS IAM

      3:57

    • 11.

      Cómo construir el embalaje

      6:18

    • 12.

      Cómo usar el AMI para alojar un sitio de WordPress

      6:53

    • 13.

      Documentación y flujo de trabajo para desarrolladores

      3:19

    • 14.

      Plugins útiles

      6:39

    • 15.

      Instrucciones de proyectos

      5:52

    • 16.

      Conclusión

      2:09

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

49

Estudiantes

--

Proyecto

Acerca de esta clase

En este curso aprenderás cómo convertir los scripts de configuración de servidores existentes en un proyecto de construcción de Packer que crea una imagen de máquina completamente configurada que puedes usar en la nube de Amazon. Es un proyecto sencillo y real que te muestra cómo Packer es realmente usado en el mundo de la infraestructura de Cloud y DevOps.

Cuando termines, tendrás una compilación de imágenes para un servidor que aloja un sitio de WordPress.

Aprenderás:

  • Cómo instalar Packer
  • Cómo crear y estructurar una plantilla simple de Packer para crear una imagen de máquina
  • Cómo pensar en convertir comandos o procedimientos existentes en scripts y cómo usar esos scripts en tu flujo de trabajo de Packer.
  • Cómo crear VMs (instancias de AWS) a partir de la imagen de máquina que creó con Packer.

¿Quién eres?

  • Eres un ingeniero de Linux, DevOps, Cloud Infrastructure o software que quiere automatizar las compilaciones de imágenes de servidores.
  • Tienes algunas habilidades básicas para la línea de comandos (Linux, Windows o OS X).
  • Cómo clonar un proyecto de GitHub y editar código en un editor de texto.
  • Quieres aprender habilidades más prácticas de DevOps.
  • Cómo automatizar las compilaciones de imágenes como primer paso para que la configuración de infraestructura sea parte de un oleoducto CI/CD.
  • Tienes curiosidad por cómo se ve un proyecto pequeño pero real de Packer.

¿Quién soy?

  • He estado haciendo Linux, infraestructura en la nube, desarrollo de software y DevOps/SRE por casi 15 años.
  • He enseñado cientos de miles de personas en habilidades tecnológicas en mi canal de YouTube.
  • Quiero enseñar habilidades importantes de una manera útil y sin conocimientos básicos que te den habilidades prácticas que puedes aplicar de inmediato a proyectos en el mundo real, en entrevistas de trabajo o para ser promovido.

¡Echa un vistazo! Me emociona verte adentro.

Conoce a tu profesor(a)

Teacher Profile Image

David Cohen

Linux, Programming, DevOps, etc.

Profesor(a)

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!

Ver perfil completo

Habilidades relacionadas

Desarrollo Desarrollo web
Level: Intermediate

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. INTRODUCCIÓN AL CURSO: Mi nombre es Dave Cowen. He estado en el mundo de infraestructura y DevOps y desarrollo de software por algo que se acerca 15 años. Y he trabajado para todo tipo de empresas interesantes empacar o algoen lo que realmente creo en lo que realmente creo tanto que trabajé para la empresa que lo hace. No trabajo en empacadora por cierto. Creo que es pequeño y fácil de aprender. Mi promesa a ustedes lo que este curso es que no me va a gustar exhaustivamente leer diapositivas que te llevan lentamente a través de cada parte del léeme como los documentos oficiales. Puedes leer los documentos oficiales tú mismo para llenar las cosas. Mi promesa para ti es que te voy a dar un, un proyecto absolutamente realista que te muestre el uso del mundo real, tipo de lo que necesitas estar pensando. Y podrás sentir intuitivamente las ventajas que te da. Y prometí hacerlo en una cantidad bastante pequeña de tiempo. Quiero mantener este curso corto, dulce, práctico. Así que de nuevo, si estás buscando como el curso exhaustivo que te dará todo y probablemente nunca termines viéndolo. Esto no es. Si quieres, como, solo dame lo que necesito para empezar con esto en un proyecto realista que pueda clonar, copiar, reutilizar. Este es el curso para ti. Entonces si eso te habla, espero verte por dentro y sí, empecemos. 2. ¿Por qué Packer? ¿Por qué Infraestructura como código (IaC)?: Entonces para aquellos de ustedes que realmente no saben por qué querrían Packer, déjenme solo darles una propuesta de valor muy rápida, tal vez no solo para Packer porque ya la buscaron en Google y ya están aquí. Pero para la infraestructura como código en general, que es una especie de comienzo de lo que Packer te da. Entonces antes de empacar o tener algo que se convierta como configuración manual en una imagen de máquina. Pensemos en cómo resolveríamos, como, digamos, un problema de la vida real. Digamos que hay alguna vulnerabilidad de seguridad extraña. Se oye hablar de ello un lunes y te das cuenta, Oh no, nuestro servidor de alojamiento WordPress necesita un cambio en la configuración del servidor web para permitir una versión específica de TLS para que no seamos vulnerables, está bien. Entonces entrarías en tu documentación, ¿verdad? Porque esto es como la documentación de tu manual. Todo lo haces manualmente. Todo está mal. Lloras hasta dormirte todos los días después de volver a casa de este trabajo. En tu trabajo, tendrías que básicamente averiguar dónde está este archivo, dónde en las instrucciones, vale, Está en el archivo de configuración principal de NGINX. No te preocupes si no sabes de estas cosas. No es realmente importante para este curso. Sólo preocúpate por la broca empac Pero tendrías que entrar aquí manualmente. Es decir, estás iniciando sesión en un servidor de producción. Ahora te estás metiendo con la configuración. Digamos que es como un protocolo SSL que tienes que comentar. Digamos que 1.2 está fuera, así que pegas el comentario de aquí para acá. Y entonces ahora qué? Tienes que reiniciar NGINX. Supongo que hay que esperar que este sea su único servidor de producción. Si tienes diez servidores de producción, sí, un poco atornillados. Nadie está contento. Esto es malo. Esta es una mala manera de hacer las cosas. No hay una buena manera de probar esto en dos meses cuando inicias sesión en tu servidor de producción, no hay registro de por qué la configuración NGINX es así. A lo mejor olvidaste de cambiar la documentación real que usaste. Por lo que los nuevos servidores aún se están configurando incorrectamente. No hacemos las cosas manualmente. Eso no es lo que hacemos. Somos profesionales. Por lo que empacador es una especie de la forma en que toma esto de ser totalmente manual a ser automatizado. Y claro, sí, les voy a mostrar todos los detalles en este curso. Lo verás paso a paso. Pero lo importante en este momento es que el proceso general cambia del triste y triste mundo en el que estás iniciando sesión en producción y cambiando las cosas a este mundo mucho más feliz donde en get en tu proyecto Packer para tus servidores de WordPress, entras en config. Ya ves que hay un motor X conf aquí, parece que la configuración principal para Engine X me parece genial. Aquí encuentras tu línea de protocolos SSL, haces el cambio aquí. Y luego en lugar de iniciar sesión en producción, simplemente construyes una nueva compilación de empacador esencialmente lo comprometes. Presumiblemente eres una especie de sistema de CI de automatización recoge ese cambio y obtienes repeticiones Packer para crear una nueva imagen. Y luego bam, tienes una nueva imagen para referenciar en el resto de tu infraestructura. Y entonces puedes hacer cualquier proceso que hagas para rollover tus servidores en producción a estos nuevos servidores que tienen solo esta única cosa cambiada. Y podrías pensar para ti mismo, bueno, eso parece un montón de pasos extra para realmente un cambio de una sola línea en un archivo. Pero en cuanto se golpea la realidad de cómo son las operaciones de producción y tal vez tener más de un servidor como cientos. Esta se convierte en la única manera cuerda de gestionar el cambio. En lugar de tener cambio manual donde como la gente necesita recordar cosas, siga instrucciones específicas. Las cosas pueden olvidarse, las cosas pueden desaparecer. No recuerdas quién cambió algo o que algo se cambió. En este mundo. Todo cambio tiene un git commit unido a él, ¿verdad? Entonces cambias este archivo, tienes que comprometerlo. Pones el nombre del ticket o la razón por la que lo cambiaste o lo que sea en ese commit, razón por la que lo cambiaste o lo que sea en ese commit, eso da inicio a una nueva construcción. Y luego esa es una nueva Build ID, aunque es casi la misma máquina. Y si alguien es como, Oh, ¿por qué le pasa algo a esta máquina? ¿ Podrán ver cada cambio de configuración que entró en él? Volviendo todo el camino hasta el inicio de nuestra primera ejecución de este, este script de paquete que creó una imagen para nosotros. Entonces espero que eso explique algo del por qué Packer y específicamente que te dé una sensación de cómo el flujo de trabajo que esto habilita es mucho, mucho, mucho mejor y mucho más profesional. Entonces el flujo de trabajo con el que empiezan la mayoría de las personas e incluso las empresas, que es correcto, es como instrucciones. Google una cosa que es como iniciar sesión y hacer esto manualmente. Es como no, no, no, no, no, no. Eso no es lo que hacemos. Es Eso no es lo que hacen los profesionales. No entraron. Podrían probar algo manualmente como tú podrías hacer esto localmente para simplemente comprobar si funciona. Pero luego agarras todo esto, lo pegas en un script o pegajoso, automatizado de alguna manera, y luego automatizas alrededor de eso nuevamente con infraestructura como código, asegurándote de que cada el cambio está sucediendo en get, asegurándose de que puedes mirar una imagen y saber exactamente lo que hay ahí sin iniciar sesión en ella. Eso tiene sentido. De acuerdo. Entonces para aquellos de ustedes que no estaban seguros por qué acompaña usan empacador, Eso es todo. Yo diría que esa es la principal diferencia. También habilita todas estas otras cosas de las que hablaremos a lo largo del curso. Lo cual es realmente una vez que envuelves algo como esto en la automatización y pasas de un proceso manual a un proceso automatizado, ahora puedes integrarlo en automatización existente para todo tipo de otros cosas. Entonces ahora, ya sabes, si tu departamento de seguridad, tu empresa crece, tu departamento de seguridad viene a ti y te dice Así como necesitamos automatizar TI, pruebas de seguridad para todo que lo convierte en producción. Bueno, se puede decir, sí, bueno, no iniciamos sesión en producción para hacer cosas como durante la construcción. Tan pronto como empacador termine una compilación en su sistema de CI, después de hacer un compromiso, puede simplemente ejecutar su herramienta de seguridad de pierna y asegurarse de que esa imagen está a la altura del tabaco para la seguridad . Y después puedes etiquetarlo con una seguridad aprobada o lo que sea. Y entonces sabemos que está bien usar en producción. Entonces es básicamente como que no hay trabajo extra para ti como persona de operaciones o infraestructura. De todos modos. Entonces todo se trata de la automatización y ahí es donde vamos y por eso hacemos estas cosas. 3. Visión general de Project Packerfile: Hablemos de lo primero que haces después clonar un proyecto empacador o comenzar uno. Lo primero que siempre vas a hacer es ejecutar Packer en él. Y luego este directorio, asumiendo que estás en el directorio que tiene un archivo packer en él. Ahora porque ya he corrido esto antes, no hace falta ningún cambio y no hará nada. Pero la primera vez que ejecutes esto, sin duda instalará algunas cosas, a saber, los plugins que has requerido para tu base de código. Entonces, sin más preámbulos, repasemos cómo funciona esto. Te voy a dar un pequeño recorrido por esto. Esta fuente es la imagen fuente que vamos a utilizar. Es decir, el tipo de imagen va a ser una imagen de Amazon EBS. Estado en. Y la forma en que vamos a encontrar nuestras imágenes fuente con este filtro, donde buscamos algo que tenga este patrón de nombre. Por lo que puedes ver que estamos usando 2204 actualmente la última versión LTS o soporte a largo plazo de Ubuntu. Y esta estrella es un comodín si estás familiarizado con las expresiones regulares en absoluto, estrella lo significa todo. Y específicamente la más reciente que coincide con esta estrella de todo. Esto sustituirá a una fecha. Por lo que esta será como la imagen de abril, como abril lo que sea, 2022 en junio, habrá una imagen de junio en non. Esto significa que no necesitamos cambiar nuestro código cada vez que se actualiza la imagen, siempre vamos a estar usando la versión más reciente de 2204. Siempre que ejecutes este código. Los dueños filtran, ese es el usuario canónico. Se te garantiza obtener una imagen oficial, no a algunos como los hackers malvados como la imagen pre arraigada. El nombre de usuario SSH básicamente solo dice, ok, cuando estamos configurando esto, tratar con esta imagen de B12 es el nombre de usuario predeterminado que vamos a usar para conectarnos con SSH. Y el par de claves temporales que quiero que Packer cree. Una de las cosas que hace Packer es crear un par de claves solo para mi carrera de empacador. Va a estar usando esta curva. Si estabas usando SSH dash key gen, esa herramienta para crear una nueva clave SSH. Eso es literalmente lo que está haciendo esto. Entonces esto es básicamente lo que está llenando, la parte T del guión. Entonces esto es básicamente como correr SSH key gin type dd a 19. Eso tiene sentido. De acuerdo, así que vayamos a las instrucciones de construcción reales aquí. Por cierto, no voy a hacerlo, esta no es una explicación completa de Packer. Esto no es absolutamente como en las trincheras. Práctica lucha callejera Packer. Hay, hay más de Packer que esto. Solo te estoy mostrando el mínimo que necesitas saber para obtener una imagen de Amazon que funcione aquí. Entonces, ¿qué vamos a hacer cuando construyamos esta imagen? Bueno, le vamos a decir a Packer que vamos a darle un nombre a esta cosa. Vamos a dotarlo de una serie de abastecedores. Puedes pensar en esto casi como los pasos a nuestro Build. Vamos a darle de comer este primer script, por lo que este se subirá a la máquina y luego se ejecutará en él. Entonces vamos a agregar algunos archivos de configuración aquí. Por lo que estas son esencialmente operaciones de copia de archivos. Todo esto está sucediendo sobre SSH, donde se va a buscar algo comenzando en este directorio config, puedes ver que está aquí, WordPress NGINX config. Bueno ese es este archivo que se va a copiar a la máquina en el BUN a los usuarios. Porque recuerda, estamos usando SSH nombre de usuario ubuntu. Eso es lo que vamos a iniciar sesión como aquí. El primer paso es depositar un poco todas estas cosas en el directorio home de los dos usuarios urbanos porque en realidad es donde podemos tener acceso correcto. Sin hacer esto feo y complicado. Esto lo hacemos en dos pasos. Transborda todos los archivos allá arriba al montón de usuarios. Y al final, trasladamos todos esos a donde van a estar con sudo. Entonces ahora que tenemos el archivo escrito en su directorio de inicio, realidad lo vamos a escribir a su destino final, que es el Engine X y Gen X.com y así sucesivamente. Lo último que vamos a hacer, igual que en el curso. Es como si editamos todos estos archivos de configuración, instalamos todos estos servicios, hacemos todas estas otras cosas con el script base config. Por último, separé esto en unos guiones separados solo porque es una forma más agradable de hacerlo. Podemos confiar en que tenemos toda esta configuración de plataforma. Y al igual que la última sección siete, sección siete del curso, este script refleja que en realidad solo estaban configurando la aplicación de WordPress, los archivos de configuración específicos de WordPress, etcétera. Entonces ese es el final de esta sección. En la siguiente sección, voy a guiarte rápidamente a través de lo que realmente hay en todo esto. Veamos en realidad el código. 4. Primitivos y terminología de Packer: Hablemos de las primitivas y terminología esenciales de Packer que realmente necesitas saber para usarla. Entonces estos primitivos son bloques de construcción que conforman Packer son los que hay que entender para saber cómo funciona Packer y realmente cómo quiere que pienses en la construcción de imágenes. Estoy cubriendo esto en el orden contrario que hace la documentación porque creo que en realidad es más fácil de entender de esta manera. Vamos a ir de lo más general a lo más específico. La página de terminología en los documentos es de la que estamos hablando aquí. Entonces cuando miras un archivo de plantilla Packer y ese es el primer bit de terminología aquí. Esto describe un poco todo el proceso. Entonces este es el único lugar donde todo se junta con todas estas diferentes palabras clave, provisión o fuente. Es posible que vea la fuente de datos o la compilación posterior al procesador. Como que quieres saber qué es esto. Entonces voy a explicarlo todo en un párrafo loco y luego vamos poco más o menos lo voy a explicar todo en un párrafo loco que describe esto. Y luego pasaremos por cada término pieza por pieza. Entonces cuando ejecutamos este comando R le dice a Packer que lea y ejecute las instrucciones que encuentra en una plantilla Packer que tiene ese archivo que acabamos de mirar. Esa plantilla contiene uno o más constructores que saben cómo construir una imagen en alguna plataforma como AWS. Packer encuentra la construcción que definimos allí, que es una tarea que crea una imagen. Esa compilación es realmente solo un buen nombre envuelto alrededor de un montón de aprovisionadores que hacen el trabajo duro real de configurar su imagen. Si todo eso tiene éxito, terminas con un artefacto que suele ser como una imagen de máquina de algún tipo, como una AMI en Amazon. Ese es el proceso medular. Hay una parte opcional en cada extremo de ese proceso central, que es si quieres cambiar cosas al principio, como si quieres traer datos externos preexistentes para cualquier parte de este proceso. Como una imagen de máquina existente que ya has construido o secretos que tienes almacenados en tu Cloud Secret Store. Puedes hacer eso y usas fuentes de datos para lograr esa tarea. Si quieres modificar cosas al final, cuando ya has construido un artefacto, usas lo que se llama postprocesadores para hacer eso. Entonces definamos a fondo cada uno de esos primitivos. Las plantillas son esencialmente archivo de configuración Packer en HCl o Jason, que define una o más compilaciones al unir todas las otras primitivas Packer. Es el lugar central para que ocurra la configuración de Packer. Y se puede ver que en nuestra plantilla, las compilaciones, esas llaves que comienzan en la línea 27 donde definimos la compilación. Envuelven todo, hacen que abarquen totalmente todo lo demás que estamos haciendo. Todos estos otros primitivos de aquí, están todos dentro de un comando build es un sub-comando para packer, que le dice que haga cosas como Packer en él. Al igual que por favor descargue todas mis dependencias externas y plug-ins. Empacador, funct FMT correcto formatear mi código, Empacador, inspeccionar Empacador, validar consola Packer. Y el favorito de todos, el que vamos a estar usando, que es la construcción de empacador, que es solo, por favor construye una imagen basada en esta plantilla. Un constructor es un componente de empaquetador, ya sea incorporado o plugin. En su mayoría va a ser un plugin que sabe cómo crear imágenes en una plataforma específica. Así como una imagen de Google Cloud y imagen de Azure en Digital Ocean image, Amazon, que estamos usando. Un constructor es lo que envuelve todo ese tipo decomplejidad y código de llamadasAPI complejidad y código de llamadas que es específico para cada plataforma. Al igual que haces llamadas API muy diferentes a Google Cloud que a Amazon, pesar de que estás haciendo lo mismo. Entonces los constructores son los módulos o plugins que envuelven toda esa complejidad. que todo lo que tienes que preocuparte es ¿cómo se llama el constructor que necesito? ¿ Y qué parámetros se necesitan? Un origen de datos es algo opcional que obtiene datos que puede necesitar. Esta es una de las cosas que correrías en el definido al principio. Esta podría ser una AMI base alternativa, que desea utilizar la imagen de máquina que desea utilizar. Un secreto que se almacena en tus nubes Secret Manager si ese tipo de cosas. Y luego llegamos a la construcción. Y esa es esa tarea única que produce un artefacto. Y como viste antes, lo envuelve todo. Una especie de consecuencia aquí abajo que es como hacer cosas procedimentales y modificar cosas y construir están en configurar nuestra imagen. Un dato interesante es que puedes tener más de uno de estos corriendo en paralelo. Entonces eso es una cosa que puedes hacer. Si estás produciendo imágenes para múltiples nubes, tal vez. Entonces podrías tener una tarea de construcción para cada uno, una provisión o es lo que viste dentro de esa construcción. Es la primitiva que realmente usas para hacer cambios de configuración a tus imágenes. Las construcciones toman algún tipo de fuente. Aplican abastecedores a esa fuente para modificarla. Esto es cosas como copiar archivos, instalar paquetes, mutar el estado en otra cosa. Y entonces Packer crea un artefacto a partir de eso. La imagen sigo diciendo imagen o artefacto indistintamente. El artefacto es justo lo que produce tu construcción. Y eso es simplemente, en nuestro caso, un AMI. Podría ser una imagen de contenedor Docker, puede ser una imagen de VMware. Podrían ser tantas cosas diferentes. Y pasaremos por todos los constructores que producen diferentes tipos de artefactos. Bueno, no vamos a pasar por todos ellos. Te lo mostraré, te mostraré los que más uso. Desde ahí puedes cogerlo un poco. El post-procesador o la otra cosa de la que hablamos, que son cosas con las que puedes hacer cosas después de que se haya creado un artefacto. No uso un montón de estos por lo general en la vida real, pero realmente hacen que sea fácil encajar en cualquier proceso que usted o su empresa tengan. Al igual que comprimir, crear una versión comprimida de tu imagen, o como crear un archivo de manifiesto que rastrea cada compilación básicamente en el momento de cada compilación o lo que sea, también puede ser cosas como subir tu imagen a un lugar que como tú lo necesitas. Entonces para revisar para este video, voy a volver a leer esa loca frase que leí antes. Y ahora sabrás exactamente lo que significa todo. De nuevo, se ejecuta Packer con un comando, que le dice a Packer, en el caso del comando build, que lea y ejecute las instrucciones en una plantilla Packer. Esa plantilla contiene uno o más constructores que saben cómo construir una imagen en alguna plataforma como AWS. Cambiemos al código para un efecto aún mayor emocionalmente en ti. Aquí, Packer encuentra las compilaciones que definimos en esa imagen de plantilla, que es una tarea que crea una imagen que construir es realmente solo un buen nombre envuelto alrededor un montón de aprovisionadores como ves aquí, que hacen el arduo trabajo real de configurar tu imagen. Si todo eso tiene éxito, terminas con un artefacto. Ese es el proceso medular. 5. Bloques de plantilla de Packer: Hablemos de las cosas en este archivo de configuración que no están cubiertas por las primitivas que acabo de explicar. El primero es este bloque Packer, Segundo es el bloque fuente, y luego el tercero es el bloque de construcción, al que ya he aludido una especie de porque se relaciona con la construcción primitiva. Te darás cuenta de que hablo de bloques. Esa es una de las formas en que trabaja el empacador. Consume este archivo de plantilla buscando estos bloques que hemos definido en HCl o json. El bloque de empacador contiene configuraciones de Packer incluyendo un número de versión y los plug-ins requeridos. Casi siempre te va a gustar, estos casi siempre van a ser los constructores que estás usando. En nuestro caso, es el plugin de Amazon. Y definimos una versión específica y tipo de donde eso es en caso de que esté fuera de, debería decir, el lugar hospedado por HashiCorp. Entonces como si se trata de una cosa de código abierto en GitHub, ahí es donde va a estar. El bloque fuente tiene esta interesante sintaxis que podrías recordar de Terraform si lo has usado antes. Pero es básicamente la palabra clave que es una fuente. Entonces tiene el tipo constructor, en nuestro caso amazon EBS, y un nombre para ello, que va a ser local a esta plantilla Packer. Entonces esto es, sabe qué mirar aquí arriba y a qué forma va a conformarse esto más o menos. Esto es lo que vamos a referenciarlo como en esta construcción. Cada constructor se puede pensar en una función en la programación como diferentes constructores requieren diferentes parámetros. Esencialmente Packer les llama atributos de configuración, eso es todo esto dentro. Entonces, al igual que Amazon, EBS requiere algunas de estas cosas y otras son opcionales. Va a ser diferente si se trata de un constructor de GCP o un constructor digital de océanos o un constructor de contenedores Docker. Por lo tanto, los atributos de configuración o simplemente las cosas que son opcionales requeridos, la información que puede pasar para obtener la fuente exacta, imagen de origen o lo que quiera trabajar con durante tu compilación. Entonces finalmente, todo esto se pasa al bloque de proyectos de ley. Pero la parte específica de eso en la que quiero que se concentren es esta. Se puede ver esta unión religiosa, la convención de nomenclatura anterior con periodos. Entonces estamos diciendo, vale, bueno ahora queremos hacer una construcción. eso le vamos a dar un bonito nombre. Y las fuentes, vamos a aplicar estas facturas a nuestra fuente, amazon EBS, una gran ayuda a y si cambiamos el nombre de esta aquí y llamamos esta pierna una a una porque tenemos 27 diferentes una gran ayuda para gustar, no sé, versiones LTS a las que estamos aplicando esto. Eso está bien. Sólo tendremos que cambiarlo aquí abajo también. De acuerdo, así que ahora en realidad, a un nivel alto entender cada bloque desde una perspectiva de configuración que está en este archivo de configuración. Y también entiendes a los primitivos. Así que en realidad solo basado en eso, deberías poder en este punto leer casi cualquier archivo de plantilla Packer que te encuentres. Ahora, de vez en cuando la gente hace algunas cosas bastante extrañas y son archivos de plantilla Packer, pero es como si estos fueran los primitivos de los que Packer conoce. Y así todo va a volver a estos. 6. Tour de código de proyecto de WordPress: En este video, les voy a dar un recorrido muy rápido los proyectos iniciando estado. Entonces esto es algo así como lo que te estoy dando para empezar para este proyecto. Aquí lo encontrarás. Esde código abierto, es de un curso anterior mío. Y lo que ya dije, voy a decir otra vez es que no necesitas entender cada parte de esto. Esto no es como un curso de Linux, no es un curso de WordPress, no es un curso de alojamiento web en sistemas Unix. Pero solo quiero que veas el tipo crudo de cosas manuales que vas a estar automatizando en este curso conmigo. Entonces te voy a llevar un poco a través de ella a un alto nivel. Yo sólo estoy un poco contándote lo que está haciendo todo. Si tienes curiosidad y quieres aprender más, entonces por supuesto profundiza. Pero sólo te voy a dar un poco como aquí, te voy a decir, bien, estamos actualizando el repositorio de paquetes que tenemos en B12. Y vamos a instalar algunos paquetes, todo lo que necesitamos para WordPress, base de datos, MySQL, en este caso, realidad es MariaDB, pero no importa. Un Web Server Engine X, un lenguaje de VM Runtime, PHP que estamos usando, y un paquete extra que ayuda a integrarse con la base de datos. Una pequeña herramienta de monitoreo, no importante. Entonces muestro un poco de cosas manuales sobre servicios. No es tan importante que los iniciemos necesariamente, pero vamos a estar habilitando estos porque cuando salga la máquina, queremos como lista para alojar un sitio web sin ningún otro paso manual. Por lo que algunos servicios tienen que habilitarse. Eso es genial. Necesita configuración. Entonces hay una parte de este otro curso donde creamos un archivo de configuración. Y esta es la configuración principal del servidor web. Simplemente almacenado como un archivo es muy tradicional para Linux aquí, solo archivos de texto plano. Hacemos exactamente lo mismo para PHP, así que para el tiempo de ejecución del lenguaje, y se puede ver que aquí, un poco más de cosas. Todos estos comandos son realmente igual que mover archivos, editar archivos. Lo último que estamos haciendo es crear un usuario de sitio web que el sitio web va a ejecutar ya que permite a mis estudiantes del otro curso ejecutar en realidad múltiples sitios en un solo servidor, que era ser la forma normal en que se hace esto. Es como crear un usuario, crear una contraseña aleatoria, algo así como configurar las cosas de forma segura. Entonces la carne de este proyecto realmente va a estar en este archivo de aquí. Y ese es el proceso real de configurar la aplicación de WordPress ahora que se ha configurado este tipo de plataforma de hosting. Entonces esta es un poco la aplicación que se está ejecutando encima de todo lo que acabas de ver. Se puede ver donde he escrito documentos para esto. Puedes leer esto en profundidad si lo deseas. Pero vamos a crear un usuario del sistema, qué tipo de enganchar todo, crear un directorio para que este sitio web entre. Estamos creando un archivo de configuración de servidor web específico solo para este sitio que va más allá de la configuración básica. Y luego hacemos algunas más asistidas muchas cosas como. Mover un archivo, borrar una cosa, añadir algo, llegar a una cadena aleatoria. Para una contraseña. Establecer, ejecutar algunos comandos en un shell SQL. Descarga una cosa como borrar otra cosa o, ya sabes, descomprimir y desarchivar algo, reiniciar y meterte con algunos servicios, cambiar un archivo, ese tipo de cosas. Estas son todas las cosas que packer puede hacer por ti automáticamente o que puedes hacer con un script de shell o cualquier otra cosa. Aquí no hay nada que no sea como automatizable. Entonces esa es la vista de alto nivel en caso de que tengas curiosidad de lo que este proyecto al que te gusta pasteurizar está haciendo en realidad debajo de las portadas. Ahora otra vez, por vigésima vez, solo quería estar absolutamente seguro de que, ya sabes, esto. No te sientas raro si no entiendes completamente todo lo que acabo de mostrarte, no tienes que hacerlo. Una de las cosas maravillosas y sorprendentes Packer, realmente, solo sobre la automatización que estamos haciendo en este curso es que ese es uno de los beneficios. Es que una vez que algo está envuelto en una capa de automatización, no todo el que usa esa automatización o tipo de consume lo que estamos envolviendo necesita entender completamente lo que está envolviendo. En este caso, todas estas cosas manuales y todos estos archivos de configuración y cada directiva y cada archivo, no necesitas entenderlo. Todo lo que necesitas entender es que es un archivo y va a alguna parte. Y si va a alguna parte, y luego todo está configurado correctamente, esto sólo va a funcionar. Eso es todo lo que necesitas saber al respecto. Por supuesto, si tienes curiosidad y quieres adentrarte, eso es maravilloso. Pero creo que esa es una de las grandes ventajas de lo que estás haciendo en este curso es que ves que no necesitas captar completamente los detalles de cada cosa porque solo estás construyendo un que es una especie de capa de abstracción alrededor de esto. ¿ De acuerdo? Entonces estás muy, muy bien puedo entender lo del empacador que le estamos haciendo a esto, pero no necesitas entenderlo a la perfección. De acuerdo, así que espero que eso haya, uh, puesto tus miedos y te haya hecho sentir mejor por no agarrar completamente cada comando aquí. Y si lo haces, genial, No es una configuración particularmente complicada que tenemos aquí, pero es muy común. Ya verás que esto es, este es el tipo de cosas que está ejecutando la producción en todo el mundo en la vida real. Entonces es muy, es muy parecido lo que verás si estás usando Packer. 7. Visita al código de proyecto Packerized: Entonces saltemos al código. Si bajamos a la sección de construcción aquí, solo pasemos un poco por ella. Lo primero que sucede es hay una provisión de shell o que ejecuta el directorio scripts AMI config script. De acuerdo, Bueno vamos al directorio de scripts, scripts de configuración AMI. Veamos eso. Esposible que recuerdes algunas de estas cosas de la sección de scripting de Bash. Pero básicamente acabo de tomar las partes centrales de la configuración de la plataforma de hosting como lo hago en el curso donde te estoy guiando a través y como que explico Linux en este punto. Bueno ahora ya sabes cómo funciona Linux y sólo podemos hacer esto un poco todo en un script. Así que en realidad solo he transpuesto todos esos comandos en un guión. Este es un script bash y se puede ver instalar mi, mi SQL Server Engine X PHP, MySQL, PHP, npm, iniciar y habilitar esos servicios para que empiecen en el arranque. De hecho, no creo que en realidad necesite arrancarlos porque solo estoy, voy a imagen de esta máquina, pero en realidad no importa. Después instalo un montón de extensiones de PHP. Estos son los que necesitas para 2204. Estas son algunas extensiones que como que tengo colgando, a la espera de más investigaciones. Pero las cosas funcionan sin ellas. Está totalmente bien. Estos no existen en 2204 o han sido subsumidos. Otros nombres de paquetes, hacemos alguna configuración NGINX como así algunas de las cosas de las que depende nuestra configuración NGINX, como crear este directorio, etc. alguna configuración NGINX como así algunas de las cosas de las que depende nuestra configuración NGINX, como crear este directorio, etc. que se ejecuta PHP F P, M. Puedo hacer un compromiso para cambiar eso. No es necesario que te preocupes demasiado. Fresco. Entonces ese es el final del guión. Por lo que se puede ver que eso más o menos nos lleva al final de administrar servicios. Entonces empezaríamos a instalar, iniciar y habilitar los servicios que necesitaremos. Veamos qué hacen los próximos abastecedores. Por lo que ya pueden ver ahora estamos moviendo archivos. Este es el archivo principal del motor x config, que seguramente estás familiarizado en este punto. Vamos a, esto es como el archivo de configuración del sitio de WordPress, que va a tipo de frente al tráfico para su servidor de aplicaciones, su servidor PHP. La configuración PHP FEM para su sitio viene aquí. Sólo echemos un vistazo rápido a esos. Entonces ese es el motor principal x config. Estás muy familiarizado con esto. Esto es lo que hace tu P, por eso lo hacemos. Crea ese directorio de caché. El archivo de configuración del sitio para Engine X aquí, estás totalmente, debería estar totalmente acostumbrado a esto desde el curso. Ahora bien, en las instrucciones que tengo, tengo esto como una variable de shell y puedes cambiar eso como tú, como trabajas con estas cosas. Obviamente, si estás configurando esto por ti mismo, simplemente clonarías esto y luego resolverías tutorial Linux para cualquier dominio en el que vayas a configurar el sitio, sea cual sea el usuario que vayas a usar , etcétera. Así que al igual que si literalmente solo encuentras y reemplazas en el directorio de paquetes tutorial Linux para cualquiera que sea tu nombre de sitio o nombre de dominio es, entonces deberías estar bastante feliz. No se necesita mucho. Lo mismo con PHP SPM. A esto en realidad no le importa el dominio en absoluto. Sólo el directorio de inicio de tu usuario, ese tipo de cosas. Trasladamos estos a su lugar, más o menos autoexplicativos. Y luego nuestra disposición final o realmente instala WordPress. Y verás la configuración del sitio de WordPress. Eso es como todo este proceso que estamos haciendo aquí en las instrucciones originales de GitHub que te llevo en el video del curso. Lovely es un montón de archivo de configuración en línea también. Ahora vamos a hacer, estos son algunos de los archivos de configuración que acabamos escribir de los que estábamos hablando. Ahora vamos a hacer todo eso simplemente en un guión. Y ese script es el script de configuración del sitio de WordPress. Y esta es una especie de versión adaptada de lo que estoy haciendo en ese archivo de rebajas. Hay algunos tipos de problemas que tuve que resolver, que es, cómo conseguimos configurar que estás en mi SQL Pass es algo interactivo. Entonces simplemente hago eco de eso para que lo veas durante el proceso de construcción. Puedes copiarlo durante el proceso de construcción. Esto no es perfecto. Al igual que si estuvieras haciendo esto profesionalmente, probablemente no querrías esto como en registros de tu sistema de compilación o lo que sea. Pero al igual que para este curso, Está completamente bien. Si estás haciendo esto por ti mismo. Para una pequeña empresa, no vas a mantener estos registros para siempre. Se van a hacer eco literalmente en un caparazón. Algo como esto, donde verás un script de configuración de packer está registrando algo que eras mi pase SQL es esto, ya sabes, no, no es un gran problema. No eres como salvar eso para siempre. Entonces metes eso en tu gestor de contraseñas y luego eres bastante bueno para ir. Entonces aparte de eso, esto realmente sigue las instrucciones muy, muy, muy, muy de cerca. Más de simplemente descargar la aplicación de WordPress al comprimirla, archivarla, descomprimirla, y la configuración y permisos en ese directorio principal y salir. Y en ese punto, prácticamente todo debería estar configurado. Lo que Packer hace es cuando llega a lo último en el último paso de construcción, es como, ok, cool. Si esta cosa sigue siendo receptiva, entonces voy a suponer que fue exitoso. Y voy a imagen de esta máquina. Y lo que hará es construir una AMI, una imagen de máquina de Amazon. Dondequiera que esté el estado de esta máquina. 8. Instalación de Packer: Entonces hablemos de instalar Packer. Puedes describir un binario si quieres. Y creo que eso está totalmente bien. Y eso es de la página de descargas. Solo tienes que agarrar la última versión para cualquier plataforma en la que estés. Y por cierto, solo puedo decir que me encantó que estos chicos estén aquí, solo me hace feliz. Si estás en OSX, puedes usar Homebrew con estos dos comandos. En Windows, aquí tienes binarios. En Linux, puedes agregar los lanzamientos de HashiCorp, repo, y luego simplemente instalar eso en realidad todas las herramientas hace desde allí. Yo sólo quería mostrar la opción chocolatey en Windows es probablemente la más cool. Si usas el administrador de paquetes chocolatey porque quieres ser parte del genial mundo de administración de paquetes de características que ha estado sucediendo en todas partes durante mucho tiempo. El chocolate es probablemente lo que quieres. Y como se puede ver, se puede. Es mantenido por terceros, pero aún así es posible instalarlo de esta manera. Entonces para mí, ya he instalado Packer y solo se puede ver que en cualquier entorno tipo Unix, probablemente vas a poder ejecutar cuál, cuál Packer. Y eso te mostrará dónde está instalado. Y se puede ver que instalé esto vía Homebrew. Si estás descargando el binario en un sistema similar a Unix, entonces probablemente querrás pegarlo en el usuario local. Y eso tomará un pseudo. Pero eso es más o menos todo lo que tienes que hacer. Y entonces tienes a Packer instalado y podemos ir de ahí. Te veré en el siguiente video. 9. Crear una clave SSH en AWS EC2: De acuerdo, hablemos rápidamente de crear un par de claves. Si no tienes uno ya, de nuevo, si tienes uno que puedas usar un par de claves SSH para EC2, entonces puedes saltarte este video. Pero para aquellos que no lo hacen, puede en el panel principal o haga clic pares de claves aquí son realmente de cualquier lugar en EC2, puede desplazarse hacia abajo a la red y seguridad a la izquierda, hacer clic en pares de claves y luego crear un nuevo par de claves. Voy a nombrar el mío 2022, Cohen. Vamos a hacerlo en EDA a clave 5519 en el formato PEM y crear ese par de claves. Y se puede ver esto sólo auto descarga el archivo. Hagamos una larga lista de nuestro directorio de Descargas con nuestra clave 2022 d Cohen. Vas a notar una cosa que confunde a muchos nuevos usuarios, que es que estos permisos 644, permiten que esto sea legible en todo el mundo, que en realidad SSH comprobará n, no así en todos. Y simplemente no dejar que te conectes. Muchos, muchos novatos cuelgan aquí y eso está totalmente bien. Es como una cosa rara. Se crean así. Pero todo lo que vamos a hacer es básicamente aquí está nuestro directorio SSH con nuestras cosas SSH solo un par de claves. Así que vamos a establecer los permisos correctamente y luego simplemente moverlo al directorio SSH. Vamos a decir CH, mío, sólo dale 600. Descargas. 2022, guión d Cohen. Ahora puedes ver que hemos eliminado todos estos permisos de grupo y otros en threes. Perdón, no estoy resaltando eso correctamente. Entonces este es otro cualquiera en el sistema, esto es grupo. Entonces el grupo del propietario no puede leer y nadie más en el sistema tampoco puede leer. Es sólo el dueño el que ha leído escribir, y el dueño es Dave. Ahora en realidad podemos mover ese archivo. decir, podrías haberla movido antes también, pero en nuestro directorio SSH listará el directorio SSH con un listado largo y eso solo te mostrará que todos estos son bonitos y limpios. Tienen los mismos permisos. Ahora, lo último que te mostraré con llaves y creo que esto es solo una maravillosa característica de conveniencia. Es anuncio SSH es tu agente SSH, como si fuera un demonio que corre. Y lo que puedes hacer es básicamente cuando te conectas a tus instancias EC2 o lo que sea, sobre todo si tienes muchas claves en tu directorio SSH, solo probará las tres primeras que encuentre. Y entonces podría estar todo fuera de intentos. Entonces la gente empieza a hacer como SSH, dash, yo, como alguna llave, y luego hacer a distancia o lo que sea. Eso es algo muy común de ver. Una forma de evitarlo es simplemente agregar el que desea usar a su agente SSH. Y la forma de hacerlo es con SSH 2022 d. Cohen. Si hay una contraseña en él, te pedirá esa contraseña una vez y luego la mantendrá descifrada en la memoria. Y lo que es realmente bueno de eso es que, entonces, si estás usando eso en todas tus instancias de IP públicas, ahora puedes conectarte a todas ellas sin volver a solicitarlo para tu contraseña cada vez o me gusta para cada comando o cosas por el estilo, mostrar que se agrega de nuevo, SSH listada allí. Y si quieres despejarlo, puedes eliminarlo. Fresco. Entonces esa es una especie de ciclo de vida. Cuando reinicies tu máquina, SSH add volverá a estar vacía cuando la reinicies. Entonces esto es como una cosa de una vez por arranque para hacer. Es bastante rojo. Ahí vas. Eso es un poco lo que debes saber sobre las claves con Amazon. Y te veré en la siguiente. 10. Crear un usuario de AWS IAM para Packer: De acuerdo, en este video, vamos a echar un vistazo a la creación acceso programático para Packer en Amazon. La forma en que lo hacemos es usando algo llamado IAM. Es un todo separado como tablero de instrumentos y servicio en Amazon. Gestión de Identidad y Acceso. Lo que vamos a hacer ahí es hacer un usuario que tenga acceso API, acceso programático, lo llaman. Y lo que ese tipo de escupe para ti es en realidad sólo una llave y un secreto. Ese es el tipo de inicio de sesión automatizado usarán los empacadores para identificarse como, hey, estoy permitido hacer esto en Dave o en tu cuenta de AWS. Y luego los empacadores los usarán para hacer girar tu instancia, crear un grupo de seguridad para que pueda conectarse a esa instancia, crear una clave SSH para que pueda iniciar sesión en esa instancia. Necesita, necesita permiso para hornear realmente una AMI, para crear una AMI a partir de una instancia en ejecución. Todos estos permisos, porque este es un curso de empacador y no un curso de AWS. Un AWS de ejecución completa y los costos de producción serían como 600 horas. Requeriría que hicieras una pasantía de tres meses conmigo. Antes lo llamo hecho. Este es principalmente un curso de empacador, por lo que vamos a hacer esto de una manera simplificada. Lo que eso significa es que sólo vamos a darle acceso de administrador a esta cuenta, que es como para fines de producción, demasiado. No necesita todo eso. En la vida real, reducirías esto a algo que es justo lo que necesita el empacador. De acuerdo, dicho eso, saltemos y solo hagamos un pequeño login. En servicios. Vayamos al IAM. Echemos un vistazo a los usuarios y agreguemos un usuario. Ahora lo que realmente queremos es el acceso a la API. Entonces llamaremos a esto d Cohen May, y queremos acceso programático. Entonces esto va a ser acceso API. No necesitamos que esto sea un nuevo usuario de consola que pueda iniciar sesión y usar esta GUI que estamos usando. No es para lo que es esto. Nómbralo y asegúrate de que sea una clave de acceso para el acceso programático. Vamos a hacer esto en un tal vez, tal vez la más escapada que tiene sólo acceso de administrador de etiquetas. Esto no es algo que quieras hacer en producción. En producción, quieres, por ejemplo, para Packer, querrías crear un rol de empacador que simplemente tenga solo los permisos que necesita. Así como EC2 dot star si quieres ser bastante áspero, pero más como crear instancia, como crear AMI, crear clave, crear una clave EC2, eliminar clave EC2. ¿ Ves lo que digo? Es como si te estuviera mostrando el esquema general de cómo funciona esto. Entonces sólo vamos a usar el acceso de administrador, que tipo de te da todo. Pero de nuevo, no es una buena idea para nada la producción. Este es el CH mod 777 de AWS. Ahora sólo vas a ver la clave de acceso secreta una vez. Vas a querer copiar esto y guardarlo en alguna parte, estoy guardando esto en un buffer y mi editor, el ID de clave de acceso. Muestra esto. Está bien que veas esto porque voy a borrar esta clave antes pensar siquiera en subir estos videos. Pero de nuevo, esto va como en un gestor de contraseñas de inmediato si vas a usarlo por cualquier periodo de tiempo. De acuerdo. Entonces ahora tenemos todo el acceso que necesitamos configurar. ¿ Puedo decir que esto es una ortografía extraña, gramática, error gramatical al tener el nombre de usuario del usuario se han creado. Es tan extraño. Debería ser tiene quién, quién está escribiendo estas cosas? Amazon, ¿ustedes no ganan 70 billones de dólares al año? No se puede revisar la ortografía esto. 11. La construcción de packer: De acuerdo, entonces has instalado packer, has creado una clave SSH en tu consola de AWS que puedes usar con esto, has creado una cuenta de IAM para que realmente tengas acceso programático para Packer en AWS. Y ahora solo quieres que te guste correr esto y ver qué pasa. Creo que esa es una gran manera de aprender. Vamos a correr esto y a ver qué pasa. Estos son los pasos que hay que hacer para llegar hasta allí. Has hecho el paso uno. Y puedes usar el proyecto demo aquí sin escribir nada solo para ver cómo es el proceso antes embarcarte en tu propio proyecto donde tal vez conviertas algo que quieras trabajar en un proyecto de empacador. Por lo que tienes acceso a API. Estos son sólo los pasos manuales que vimos en ese video. Aquí está el momento de la verdad. Ahora tienes que exportar esto en tu caparazón. Entonces aquí tengo estas llaves. Eres bienvenido a intentar usarlos, pero no funcionarán porque los estoy desactivando justo después de que se haga este video. Voy a copiar esos y exportarlos en un caparazón. Ahora si no estás súper familiarizado con Linux, está bien. Básicamente solo estoy en mi pack o directorio aquí, el directorio del proyecto. Y voy a pegar literalmente estas dos líneas. Y lo que eso significa es que en mi entorno de shell, estas variables de entorno se van a establecer igual a mi clave de acceso real, ID y secreto. Y lo que eso significa es que cuando Packer corre, automáticamente se verá en mi entorno de shells para ver si estas cosas están configuradas en algo que no está vacío. Eso es sólo para ver si existen. Y luego intentará usar esos para iniciar sesión en Amazon y hacer toda la magia del empacador que hace. Entonces ahora que ya está hecho, podemos ejecutar uno de los comandos del packer, que es init, que irá descargando cualquier plug-in requerido para constructores que necesite como el constructor de Amazon EBS. Y simplemente inicializar Packer. Y luego seguiremos desde ahí. Packer está hecho de inicializar y eso es sólo porque ya he desarrollado en esta máquina. Entonces como estas, estas cosas ya están instaladas. Pero en tu pantalla puedes ver como avena yendo a descargar el constructor de Amazon, ese tipo de cosas. Voy a hacer un video sobre esto un poco más tarde, pero he dejado en algunos pequeños cambios que haría el formato de empacador. Nada funcional ni grande. Pero estos comandos son geniales de ejecutar, así que podemos probar Packer validar. Te mostraré empacar diversión para después. Pero se puede ver que básicamente Packer golpeada sólo busca cuestiones de formato que son como convención. Ve a ponerla. Convenciones Hcl y Packer validan en realidad busca ver si tienes todas las piezas que empacador va a buscar en tu plantilla. Entonces ahora podemos seguir adelante y construir esto. Y la forma en que lo hacemos es sentarse en el directorio en el que se encuentra este archivo. Por supuesto, podemos darle a Packer el comando de compilación y presumiendo nuevamente que hemos exportado estas variables de shell como si tuvieras un conjunto válido, esencialmente login aquí, de claves de acceso de Amazon. Entonces esto funcionará. Ahora si estás en tu haciendo tu propio proyecto después de esto y lo estás haciendo en Azure, digamos que está bien. Es solo, vas a necesitar el constructor de Azure va a requerir un conjunto diferente de credenciales allí y tu entorno de shell que va a buscar. Algunos proveedores requieren un archivo de configuración que esté alrededor o que le digas dónde está. Aquí sólo estamos hablando de AWS. Así que ejecutemos packer, construyamos WordPress, AWS Ubuntu, y veamos qué pasa. Está pasando por todo el proceso. puede ver que está creando un par de claves temporales allí. Y ese es en realidad un par de claves separado, no el que creamos. Así que esto es en realidad sólo para Packer para iniciar sesión y ejecutar aprovisionadores con el par de claves que creó antes se va a utilizar. Esa instancia se va a etiquetar con ese par de claves. Se va a subir y podrás usarlo para un registro SSH n Así que esto va a tardar un rato. Y se puede ver que mientras tanto, podemos ver una instancia que ha sido hilada. Ahora se está ejecutando. Parece que todavía está en el estado de inicialización, pero en realidad ya está conectado porque se puede ver que estamos pero ejecutando un paquete encima de una actualización. Así que esto es como apt-get update y apt-get upgrade de nuestros scripts. Y se ve un poco como lo que esperamos ver. Por curiosidad, Packer crea todo tipo de otros recursos al igual que parte del constructor de Amazon EBS. Entonces es como definitivamente golpear la API de Amazon. Es crear una instancia. Está creando un grupo de seguridad único personalizado solo para esta compilación de empacadora. Y todo esto sólo va a maniobrar y lo dejaré aquí. Podría acelerar esto porque tardará un rato. Simplemente verás ir a esta Build. Se puede ver aquí un par de pasos a la derecha, subiendo ese motor X archivos. Entonces esta es otra disposición o subir ese archivo de configuración NGINX, y esto es justo en el directorio home B12. Por ahora. Se ejecuta el script de configuración del empacador. Todo esto ha pasado. Se saca una My Sequel, una contraseña MYSQL generada aleatoriamente. Podemos quedarnos con eso. Ahí está tirar eso a las llaves. Y ahora simplemente estamos horneando un AMI. Lo que eso significa es que podemos mirar AMI y podemos ver que se trata de un AMI que está pendiente. Se está horneando ahora mismo fuera de nuestra instancia o instancia se detiene. Crea un AMI a partir de él. Cuando esa AMI esté realmente completa, nuestra instancia conseguirá terminada. De acuerdo, y pueden ver que estamos acabados y todo lo que se hace cuanto vea que el AMI ya no está pendiente sino listo. Sabe que puede limpiar todo lo que creó para esta ejecución, incluido el grupo de seguridad que vimos antes, el par de claves que buscabas creado al principio. Y la mayor parte de este tiempo realmente lo es. Es decir, viste que era sólo creación de AMI. Entonces ahora si actualizo esto, el estado debería estar disponible. Se ha limpiado la instancia. 12. Usar el AMI para alojar un sitio de WordPress: Ahora que hemos creado nuestra imagen, se puede ver que hemos terminado aquí arriba. Esta cosa se hace eco de la contraseña MYSQL. Se está creando un AMI aquí en hace eco del nombre que se le ha dado. Una vez hecha la imagen, termina la instancia de origen. lo que la instancia original en giró temporalmente para configurar o quedarse sin scripts de suerte en contra. Eso se ha vuelto a descomponer. El grupo de seguridad que utilizó para dejarse acceder a la instancia con el par de claves temporales que creó. Todas esas cosas han conseguido dos. Entonces este es un bonito proceso limpio. Y se puede ver lo único que nos queda es con ellos esta imagen. Ahora bien, podrías, si estuvieras usando Terraform o algo así, ahora puedes hacer referencia a esta imagen no por un MID necesariamente, sino por la fuente donde es como este formato básicamente como ID de cuenta, nombre. Si le dijiste a Packer que nombrara esto algo así como dash date, es una buena manera de organizarlos, pero al igual que vimos en este pack o configure haríamos lo mismo y terraform usando una fuente de datos donde sólo dices, vale, el dueño voy a ser yo, mi cuenta. El nombre va a ser lo que yo nombré este más reciente va a ser cierto. Esa es otra forma de obtener la construcción más reciente básicamente o construcción de producción. Si estuvieras usando algo como Terraform, está un poco más allá del alcance de este curso, pero solo diciendo, ¿cómo se ve realmente el proceso si lanzamos una instancia a partir de esto? Bueno, ya que esto es, simplemente llamaremos a este tutorial Linux web. Y se puede ver que está usando esta AMI. Puedes acceder a esto desde el menú de nueva instancia para seleccionar la AMI aquí. Elige lo que quieras decir que voy a ser anfitrión. No lo sé. Voy a hospedar sitio web de tamaño mediano. Una pareja, no sé, un par de 100 usuarios. A lo mejor es una tienda, necesita algunos recuerdos. A lo mejor voy a decir dos o cuatro vCPU y tal vez ocho gigas de memoria para un sitio de WordPress más grande, seleccionarías solo un par de teclas de teclado que tengas. Https, HTP, va a ser un servidor web. Permita, ya sabes, tal vez solo desde tu IP o simplemente desde tu red privada, desde la VPC, lo que sea. Y en realidad iría GPT-3. Y tal vez, no sé, llamarlo por un sitio de WordPress más grande. Es posible que tengas muchas imágenes sean como datos subidos por el usuario, sea cual sea su espacio en disco es barato. Entonces 5000 gigs, esto es como, ya sabes, eso no es realmente lo que estás pagando por ello. Entonces sí, eso parece genial. Lanzaremos esta instancia arriba y te mostraré cuando iniciemos sesión en ella. Entonces esto ahora se está ejecutando. Probablemente siga arrancando, pero voy a ir a networking y copiar la dirección IP pública. Voy a SSH han sido agregar esta dirección. Asumo. Sí. De acuerdo. Mi agente SSH ya tenía las claves. Es igual que si básicamente estamos usando su clave SSH predeterminada en esta máquina, y ese fue su par de claves SSH que esta máquina viene con esta instancia, entonces eso simplemente funcionará. De lo contrario podrías tener que hacer algo como esto. Se puede ver que esta es sólo una clave de muestra que creé. Es una clave PIM que creé en AWS y descargué. Si estás confundido acerca cómo las llaves y las reglas y todo, cómo funciona todo eso. Entonces vas a querer ver mi anterior video de Amazon para saber cómo hacer esto en Amazon en general, porque si aún no puedes hacerlo manualmente en Amazon, va a ser difícil hacerlo de manera automatizada tipo de todo va a parecer magia. De todos modos. Se puede ver que ahora estamos sentados en este host, IP privada. Sí, puedes hacer algo como si un hacha estuviera corriendo. Sé que es porque el aún criminal hacer esta parte del nombre del servicio. Yo creo. Se puede ver. Así que al igual que este arrancarlo, se puede ver el pool de PHP f Pm llamado tutorial Linux está configurado. Entonces esto básicamente está funcionando. Podemos ver el sitio de WordPress si editamos ETC. Anfitriones que les guste, en realidad, no creo que funcione porque tutorial Linux.com usa hs ts, por lo que insistirá en HTTPS de todos modos, cuento largo. Esto ahora sería una literalmente solo una nueva instalación de WordPress ejecutando todas las cosas que configuramos, algo así como lista para configurar y listo. Entonces esto es realmente el, el, todos los comandos manuales se están ejecutando a lo largo del curso cuando lo estás aprendiendo. Con una hermosa y dulce instancia de WordPress, lista para que configures tu sitio mientras ejecuta un servidor de WordPress, pero para que realmente configures el sitio de WordPress en. Y sí, es una buena manera de simplemente empacar esto en posición vertical. Y cuando quieras, no sé, ya no quieres lidiar con esto. Acabas de terminar la instancia y todo desaparece. Obviamente, una vez que tienes sitios que están configurados en esto, quieres ser como snapshotting la instancia y no solo terminarla, ¿verdad? Porque esos son tus sitios que se ejecutan en él. Pero sí, es un buen tipo de flujo de trabajo de desarrollo. Y el hecho de que solo puedas usar Packer rápidamente así dentro unas pocas 100 líneas para incluir todos los scripts de configuración, para tener una pequeña imagen fresca que es solo una especie de siempre disponible para ti. Guardo esto por ahí solo para probar. Lo guardo alrededor para verificar si a alguien le gusta informa que hay un bicho. Por lo general no es un bicho y es como si se confundieran con algunas de las instrucciones. Entonces simplemente usaré básicamente la última imagen o lo que sea. Simplemente cambiaré la imagen de origen para que sea lo que estén usando. ver un poco si es solo uno, solo un problema de imagen o normalmente es como un gran problema. Entonces espero que eso sea divertido. Y espero que eso te dé alguna idea de una de las formas en que puedes extender esto, hacerlo más grande, hacerlo más profesional, automatizado? Sí. Si conoces cosas como Terraform o CloudFormation o tienes algún flujo de trabajo de DevOps en el trabajo. Al igual, espero que esto te ayude a ver cómo vas de un manual. Al igual que, Oh, solo estoy scripting esto mientras lo estoy averiguando y trabajando en ello comando por comando. Cómo pasar de eso a una compilación repetible como a través de Packer a una pieza de una tubería más grande donde todo lo que necesita para hacer referencia es un ID de AMI son realmente la última imagen que se llama cierta cosa. Si eso es, es una linda manera de abstraer todo esto. Entonces espero que eso sea útil y te veré en la siguiente pieza. 13. Documentación de Packer y flujo de trabajo de desarrollo: Hablemos de cómo navegar por los sitios web del empacador, específicamente la documentación, para que puedas enseñarte a pescar después de este curso. Ahora te he mostrado un tipo de introducción muy específico y se trata específicamente de AWS. Es muy específico para bien, no tan específico, pero es específico al proyecto que hicimos, que es esto de hosting de WordPress , lo que necesitas para ellos. Hay muchas otras cosas que puedes hacer con Packer. La forma general, siempre va a ser así. Y eso es lo que realmente me gusta las herramientas de HashiCorp es que son herramientas afiladas de la forma en que muchas de Linux y Unix son herramientas afiladas. Hacen una cosa, lo hacen muy bien. Son flexibles por lo que puede tipo de tiempo junto con otras herramientas como sea necesario. Y creo que en el sitio de HashiCorp Lauren, Es un buen lugar para mirar poco más de uso de la vida real para Packer. Por lo que hemos cubierto muchas de las cosas en la pista de AWS. Pero si quieres construir imágenes de Docker como Packer puedes hacer eso. Si quieres construir en una Nube diferente, GCP, Azure, ese tipo de cosas. Es posible que desee hacer eso usando Packer con otras herramientas, etcétera. Pero puedes navegar por eso por tu cuenta. Lo que te voy a mostrar es Packard io slash docs. Este es, creo que el, el lugar en el que paso el tiempo cuando en realidad solo estoy construyendo un proyecto empacador. Todo lo que vas a necesitar está aquí. Estos documentos son fantásticos. Al igual que ¿cómo quieres conectarte a tu máquina? ¿ Fuentes de datos? Vas a pasar mucho tiempo en abastecedores. Sólo quiero que sepas que estas cosas están aquí. Y como cuando estás perdido, como digamos, Oh, olvidaste cómo transferir archivos. Algo que hacemos en este curso unas cuantas veces. Bueno, solo ve al archivo aprovisionadores y obtendrás algunos ejemplos. Ahora estamos usando HCL solo porque es mucho más limpio. Pero Jason, tal vez quieras eso por compatibilidad con otra cosa, alguna otra parte de tu pipeline o lo que sea. Esto le da un ejemplo del uso real y de los documentos requeridos. Un parámetro opcional, explica todo en detalle, da muchos ejemplos de cosas específicas de casos de uso. Yo sólo quiero que lo sepas. Estoy dando explicaciones muy sucintas para que entiendan cómo funciona una cosa en el contexto de este proyecto que estamos haciendo aquí. Pero obviamente hay más en los muelles y no estás gastando tu tiempo para oírme leerte los documentos. Solo quiero que sepas que estas están aquí y que deberías estar usando esto. Es completamente normal que tu flujo de trabajo mientras estás construyendo tu propio proyecto Packer sea, tener esto abierto en una pestaña, y luego tener tu proyecto Packer abierto en otra pestaña. Y así es como lo estás trabajando en ello. Estás como, bien, así que busqué lo del archivo. Pues ahora puedo escribir mi provisión de expediente o aquí, y ahí vas. Basado en, basado en lo que aprendiste de los documentos. Eso es algo que estaremos usando mucho más allá del material en este curso. Y espero que eso te haga empezar para el uso futuro que vas a tener cuando no estoy aquí para agarrarte de la mano a través de un proyecto. 14. Plugins útiles para embalar: Hablemos de plugins Packer. Hasta ahora has usado plugins Packer en este proyecto que son constructores, pero hay otros tipos de plug-ins como fuentes de datos y comúnmente post procesadores. Y la idea es que un plugin es realmente una forma de encapsular una mini aplicación separada que sabe hacer una cosa. Por lo general comunicarse con una plataforma para crear una imagen es hacer la cosa. Entonces en el caso del proyecto de ejemplo de Amazon, en el caso del plug-in y constructor de Amazon. Entonces lo que ves en eso, ese bloqueo fuente en nuestro código que usa el generador de Amazon EBS y eso te lo da el complemento de Amazon. Y por qué no sólo miramos eso. Y luego también veremos algunos otros que creo que son interesantes o comunes, populares y que o bien te encontrarás con querer usar, y simplemente te darán una idea de cómo funciona esto. Entonces estoy en el tipo de plugins, no conozco el sitio de directorio docs en Packer.io. Y si miramos solo la visión general de los constructores en el plugin Amazon EC2, puedes ver que este es el que estamos usando, ¿verdad? Así que desde este plugin, este es el que estamos usando, pero tenemos otras cosas disponibles para nosotros como podríamos tener como una tienda de instancias, AMI, este uso, cada uno de estos te mostraré el formato solo quiere, que es como, te dará un ejemplo de cómo usarlo. Describirá las cosas y luego se mete en el tipo de argumentos que esto espera obtener, variables de entorno que busca, ese tipo de cosas. Entonces para Amazon, creo que las cosas interesantes a mirar, obviamente el constructor de EBS, que estamos usando. La importación de Amazon para un postprocesador es otra cosa. alguna manera te consigues gratis con esto. Si tal vez estás usando una compilación diferente o para producir algo que produzca un OVA. Puede traer esto a Amazon haciendo que este postprocesador lo convierta a una AMI definitivamente es útil a veces. Secrets Manager, creo que una de esas cosas que va cuando se va de nuestro ejemplo, nuestro sencillo proyecto de ejemplo para este curso. Y luego adaptas eso al mundo real. Una de las primeras cosas que cambia es el tipo de fuentes de datos externas que necesitas. El hecho de que no puedas, no puedes ser simplemente como barajar un montón de textos sin formato, como material clave alrededor y como comprometerlo con repositorios. Así es como suceden las cosas malas, y así es como tu equipo de seguridad igual que se gana la vida ****. Entonces vas a querer básicamente tener una forma de meter secretos en tu plantilla Packer. Esencialmente tu Packer construye, y este es un mecanismo en Amazon. Obviamente hay análogos en Google Cloud on, creo que incluso Digital Ocean tiene una cosa secreta ahora. Obviamente Azure, etcétera. Todos van a tener un mecanismo como este. Y claro que todos van a ser ligeramente diferentes, pero en gran medida similares. Y así es como los usarías. Creo que es interesante mirar a otros proveedores de Cloud, constructores de AMI esencialmente, o constructores de imágenes. Por lo que siempre empezaría por el concepto de alto nivel en la visión general, poco averiguar lo que estás haciendo. Y luego o, como queremos que Azure Resource Manager construya y luego capture una imagen. Ahora que sabes lo que quieres, indagas aquí, miras, vale, ¿cómo se autentica esta cosa ? ¿Qué necesito? ¿ Cómo lo hacemos, cómo le gusta la gestión de identidades y la gestión de acceso fuera de la administración. ¿ Qué cosas necesita? Parámetros o atributos requeridos y opcionales. Sandwich ECP otra vez, ves es como un tipo muy similar de invocación se quedará un poco más alto nivel en la siguiente es que no quiero que esto se alargue demasiado, pero me gusta Digital Ocean, así que aquí les voy a dar un grito. Otra cosa que veo aquí que es interesante es más oscura. Creo que esta es una de las que tendrás mucho uso porque creo que esto habla de lo flexibles que hacen estos plugins a Packer porque todas las cosas de empacador que has aprendido siguen siendo buenas. Entonces si algún día a tus empresas les gusta, bien, no más VM como nosotros vamos llenos, no sé, nómada Kubernetes, todo va a ser una imagen de contenedor ahora. Eso está bien. Puedes, puedes reutilizar muchas de tus cosas y solo tienes que hacer que la salida sea una imagen Docker en su lugar. Es decir, obviamente vas a querer adelgazar esa imagen. A nadie le gusta un 600 meg, como una imagen base B12. Pero incluso si vas a alpino o algo más delgado, es como si aún pudieras usar el mismo proceso y el mismo flujo de trabajo y encaja de la misma manera. Y es como si no lo fueras, no es un proyecto gigante de Greenfield que aún tiene un 100 bugs que eres suficiente para pasar antes de que funcione. Solo va a ser un constructor ligeramente diferente que espera entradas ligeramente diferentes, tiene salidas ligeramente diferentes para aquellos de ustedes que usan Chef ansible Config Management, poco software más tradicional. Hay plugins para eso. Entonces, si ya has escrito un montón de ansible, puedes reutilizar todo eso. Ansible. Al igual que no necesitas convertir nada, solo usas tus libros de jugadas existentes. Tráiganlos y envuélvalos en este flujo de trabajo. De nuevo, es como si tu flujo de trabajo se conserva, tu flujo de trabajo es consistente. Y luego puedes tener a Packer llamando a diferentes herramientas que en realidad están generando el tipo de no tiene que ser todos scripts bash como en nuestro ejemplo aquí. Hazlo todo con Ansible y solo conviértalo un poco, envuélvelo en Packer, y luego aprovechar esa potencia que Packer te da para darte un montón de salidas diferentes son artefactos fuera de eso. Una más que creo que es genial es conseguir como fuente de datos. La fuente de datos le permite básicamente obtener fuera de un repositorio y luego tener cierta granularidad con como cómo navega eso a lo que necesite. Espero que sea una introducción rápida útil a los plugins Packer. Espero que entiendas que lo que todas estas cosas es que el plugin es en realidad envolver juntos para ti y abstracta de distancia para que no tengas que lidiar con ello. Aquí adentro. En estos plugins. Todo es como llamadas API sin procesar contra estos proveedores de Cloud, hacer esto, luego hacer esta otra cosa. De acuerdo, si eso falla, maneja el error de alguna manera. Es como millones de líneas de código aquí que no necesitas escribir. Realmente tratar este menú de la izquierda aquí así como un menú. Mirarás hacia abajo, verás qué se ve sabroso, lo que tengas que hacer, lo que sea que intentes hacer, y los usarás para armar el tipo de construcción o artefacto que necesitas. 15. Instrucciones de proyecto del curso: Todos, una palabra rápida sobre proyectos. Creo que obviamente te he caminado a través de un proyecto, pero creo que el siguiente paso ahora que tienes lo básico de Packer es crear un proyecto propio desde cero, no seguir junto con el tutorial, no mirando el código de otra persona. Eso está bien para aprender lo básico de algo, pero eso ya lo has hecho. Entonces, ¿a dónde vas desde aquí? Te sugiero que hagas un proyecto de la vida real para mirar verdaderamente cementar esta habilidad y este conocimiento en tu mente y para que esté listo para usar en entrevistas en la vida real para hacer tu propia vida más fácil, tu trabajo. Voy a dividir esto en dos categorías. Básicamente, si eres principiante en general, eres más ingeniero junior en general. Y si eres más avanzado en ingeniería general. Y este Packer de aprendizaje fue como la guinda de un pastel. Eso ya es bastante bonito. Simplemente comparó la educación en ingeniería con un pastel, creo que tengo hambre. Entonces si eres principiante, una de las primeras cosas que te sugeriría hacer es si te sientes como no súper seguro de que podrías hacer lo te mostré en este curso desde cero. Entonces sugeriría seguir adelante, lo siento, en lugar de seguir adelante, le sugeriría que básicamente elimine el directorio de empacadores y luego intente recrear ese proyecto de empacador de scratch, dado el contenido en el resto de ese repositorio, que es del curso práctico de Linux, si eso tiene sentido. Así que borra el directorio del empaquetador, básicamente, haz uno nuevo, y luego empieza a portar todo de nuevo, tipo de pieza por pieza. Mira cada uno, todos los comandos que se ejecutan manualmente, conviértelos en scripts. Toma esos scripts y úsalos en tu proyecto Packer. Averigua cómo conseguir que se embotellen, averiguar cómo empaquetarlos y conseguir carguen a su máquina virtual y luego tipo de ir de ahí. Entonces especie de recrear este proyecto desde la memoria. Y luego tienes el contenido justo frente a ti, pero vuélvelo a convertirlo en un proyecto de empacador. Eso es lo que recomendaría para principiantes absolutos. Creo que aprenderás mucho porque muchas veces después de pasar por tutorial, estás como, Oh, lo entiendo totalmente. Pero entonces si alguien es como, genial, muéstrame con no sin mirar el tutorial y la gente no puede hacerlo. Es como que muchas veces incluso solo entender algo en el momento no es mismo que conocerlo verdaderamente profundamente y poder aplicarlo prácticamente. Así que llévate ahí como principiante. Una vez que hayas hecho eso o si ya estás empezando desde un lugar de ingeniería más avanzado. Y lo que hicimos, como, agregó una nueva habilidad, pero ese nuevo empaquetador de habilidades es como el 1% de lo que sabes sobre tecnología. Genial. Creo que todavía necesitas también un proyecto práctico en solitario que no estás haciendo a partir de una plantilla o del trabajo de otra persona que estás averiguando tú mismo, resolución de problemas por ti mismo. Si eres más avanzado, te recomendaría algunas cosas. Si vives en un mundo basado en VM y quieres continuar lo que hicimos en este curso como imágenes de máquina encendidas , bueno, hicimos Amazon pero podrías hacer Azure, Google. Ya sabes, el proceso es más o menos el mismo. Construye una imagen de máquina a partir de otro proyecto de código abierto que disfrutes. En este curso, estamos hablando de WordPress como el tipo de proyecto de código abierto con el que estamos empaquetando y haciendo cosas. Pero hay un millón de proyectos de código abierto que son interesantes, hacen todo tipo de cosas diferentes. Las aplicaciones web tienden a ser un poco tienen esa complejidad de muchas cosas que se configuran en una imagen. Pero podrías hacer otras cosas también. Podrías hacer cosas como mumble si quieres tener un tipo reutilizable de imagen como Team Chat Server, hay algunas. Simplemente elige si estás razonablemente avanzado, supongo que tienes alguna idea de qué herramientas y proyectos de código abierto hay por ahí. Lo que podría ser divertido solo para alojar y luego construir una imagen de máquina alrededor de eso. Si ya vives en un mundo de ojos más oscuros, encuentra algo que no sea ojos más oscuros en tu trabajo o incluso un proyecto de código abierto y conviértalo en una imagen de Docker, ¿ verdad? Entonces contenerizalo. Sí, puedes crear lo tuyo propio y convertirlo en un archivo Docker oscuro en su propio proyecto y luego ejecutar las herramientas de compilación de Docker y todo eso. Pero al igual que Packer puede hacer todo eso y un montón más. Lo bueno de empacador es que hace que ese puente sea realmente fácil, ¿verdad? Si tienes, si ya tienes tipo de automatización o documentación sobre pasos manuales y bla, bla, bla. Simplemente puedes reutilizar todas esas cosas, meterlas en Packer y decirle a Packer que tu salida debe ser una imagen de Docker. Eso es lo que recomendaría para gente más avanzada, encuentre de nuevo, algo ya sea de código abierto o en su trabajo y use algunas de esas otras características. Podría ser más oscuro, podría ser otra cosa, pero solo explora lo Packer puede hacer que sea práctico para ti. Eso es realmente interesante para ti. Y hazlo en una aplicación que te interese levemente o en la que tengas que trabajar de todos modos. Sí, espero que eso te dé algunas ideas para proyectos que puedas hacer. Eso lo entiendo. Eso significa que tal vez no puedas mostrar si estás trabajando en tus propias empresas como cosa de código cerrado y creas un proyecto de paquetes para ello. No lo subas y muéstrame por favor respeta las cosas de confidencialidad. Pero si lo haces para un proyecto de código abierto, entonces simplemente crea un proyecto, súbalo a tu propia cuenta de GitHub y siéntete libre de compartirlo. Creo que todo el mundo estaría bastante emocionado de ver eso. Sólo para ver más ejemplos de Packer siendo utilizado de más maneras. E incluso podría ser capaz de obtener retroalimentación positiva y constructiva de gente sobre cómo mejorarlo aún más. Eso es todo para todos allá afuera. Si ves proyectos de otras personas, sé amable, sé constructivo. No tienes que comentar, no tienes que dar consejos. Todos seguimos aprendiendo, así que sé amable. De acuerdo, eso lo concluye para b, lo que creo que debes hacer como proyecto práctico, deja que eso se filtra, deja que eso se hunda en tu cerebro y simplemente empieza a navegar por proyectos de código abierto y ver si alguna de esas cosquillas, su fantasía. 16. Conclusión: Enhorabuena. Ya has visto cómo es un proyecto Packer de la vida real . Y te he llevado a través del proceso que tomé para descomponer un problema del mundo real en un proyecto de empacador, específicamente una plantilla de Packer y tipo de cómo pasas de tener un montón de cualquiera de los manuales o tipo de componentes de automatización como scripts. Toma esos y ponlos en el mundo del empacador y forma de pensar las cosas. Espero que de inmediato tomen este nuevo entendimiento y conocimiento y lo pongan a trabajar en su propio proyecto, un proyecto que no he presentado para ustedes. Creo que esa es la manera de cimentar este conocimiento y tipo de llevarlo al siguiente nivel y realmente tenerlo realmente durablemente en tu cerebro para que, ya sabes, para cuando surja un problema o cuando ocurre una entrevista de trabajo, esas cosas son lo más importante y solo tienes este conocimiento intuitivo del proceso y cómo lo atraviesas, y cómo analizas el problema y lo desglosas y en realidad crear los artefactos técnicos que son un proyecto de empacador este curso ha sido divertido. Por favor. Si lo disfrutaste, por favor deja una reseña. Si no lo hiciste, solo envíame un mensaje o deja un comentario sobre el QA pidiendo las mejoras que te gustaría que se le hicieran. Definitivamente estoy planeando trabajar en este curso un poco más si hay podrías recepción y si sentías que faltaba algo o te gustaría que se añadiera una sección o algo aclarado, por favor solo dígame. Estoy feliz de reemplazar los videos por unos que son más claros para ti y tal vez agregar algunos nuevos también. Si tienes curiosidad por algo que no entré en profundidad. Nuevamente, ha sido un placer hacer esto. Espero que le saquen algo. Y espero verte en canales de YouTube, tutorial Linux. Y hago cosas como esta, pero gratis, o supongo que en Udemy y mi otro curso, práctico en Linux, donde paso por tu proyecto de hosting de WordPress para enseñarte los conceptos básicos de Linux, específicamente en la administración de sistemas Linux, diviértete en tu viaje. Te veré por ahí pieza.