Skip to main content

Proyecto

Vamos a crear una estructura de la siguiente forma.

mkdir -p ./project/{vars,scripts,files,services,ansible}

touch ./project/{main.pkr.hcl,packer.pkr.hcl,variables.pkr.hcl,locals.pkr.hcl,data.pkr.hcl}

tree project
project
├── files
├── locals.pkr.hcl
├── main.pkr.hcl
├── packer.pkr.hcl
├── scripts
├── services
├── variables.pkr.hcl
└── vars

5 directories, 4 files

Directorios:

  • files: Este directorio contendrá todos los archivos que no son scripts
  • scripts: Todos los scripts que vamos a ejecutar los colocaremos aquí
  • services: Todos los servicios que vamos a activar en el sistema operativo podremos colocarlos aquí
    • Estos servicios son una maniobra para lanzar alguna configuración después del inicio de la imagen
  • vars: Aquí tendremos los archivos de entrada para completar las variables que no poseen valores por defecto o alguna que queremos redefinir
  • ansible: Podríamos tener un conjunto de playbooks para ser ejecutados con Ansible en esta carpeta que no definimos, pero queda la sugerencia.

Archivos base de Packer recordando que tiene que ser .pkr.hcl

  • main.pkr.hcl En este archivo declararemos los sources y el bloque build
  • packer.pkr.hcl En este archivo vamos a declarar configuraciones para Packer, como versión y plugins
  • variables.pkr.hcl En este archivo declararemos las variables que vamos a utilizar
  • locals.pkr.hcl Si alguna variable es definida en tiempo de ejecución por una función o interpolación será creada en este archivo.
  • data.pkr.hcl Este archivo será usado para poder entregar varias posibles imágenes.

El proyecto seguirá con explicaciones en los próximos pasos. La idea es estudiar e ir creando el proyecto mientras se aprende.