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 scriptsscripts: 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 redefiniransible: 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.hclEn este archivo declararemos los sources y el bloque buildpacker.pkr.hclEn este archivo vamos a declarar configuraciones para Packer, como versión y pluginsvariables.pkr.hclEn este archivo declararemos las variables que vamos a utilizarlocals.pkr.hclSi alguna variable es definida en tiempo de ejecución por una función o interpolación será creada en este archivo.data.pkr.hclEste 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.