Packer: función git-hash para nombrar el archivo resultante

Creado en 1 dic. 2014  ·  3Comentarios  ·  Fuente: hashicorp/packer

Actualmente personalizo mi post_procesador de esta manera:

"output": "boxes/rhel-server-6.5-x64-{{.Provider}}-{{.BuildName}}_{{timestamp}}.box"

Sería bueno tener {{git_hash}} en lugar de la marca de tiempo. Si hay otra forma de hacer esto, además de una llamada de función en Packer, entonces supongo que no estoy lo suficientemente familiarizado con cómo hacerlo.

Veo dónde se podría hacer esto: packer/config_template.go.

Pensé que la mayoría de la gente encontraría esto útil.

Ej.: si queremos conocer la configuración completa de nuestra pila de marionetas, también debemos saber en qué empaquetador se construyó cada nodo, y la marca de tiempo no nos da eso. Es bueno tenerlo para la auditoría o incluso para las estrategias de recuperación ante desastres más desagradables.

¿Pensamientos? ¿Alternativas?

_editar_:

También existe el caso de uso de ejecutar packer contra un árbol git sucio, donde el hash resultante no sería exacto. Probablemente quieras que el hash de git devuelva 'dirty_tree' en ese caso...

waiting-reply

Comentario más útil

Hm. Creo que agregar funciones específicas de git es complicado, porque abre la puerta a otros SCM en los que es posible que no tengamos el mismo nivel de experiencia. ¿Hay alguna razón por la que no pueda usar una variable de usuario para esto como:

packer -var "git_sha=`git rev-parse HEAD`"

Y luego declarar la variable:

{
  "variables": {
    "git_sha": "none"
  }
}

{{git_hash}} hace algunas suposiciones, la más importante es que tienes Git instalado. No creo que todos nuestros usuarios usen Git, por lo que encontrar el UX correcto cuando git no está instalado puede ser difícil (tenemos un error, lo reemplazamos con una cadena vacía, etc.).

Todos 3 comentarios

Hm. Creo que agregar funciones específicas de git es complicado, porque abre la puerta a otros SCM en los que es posible que no tengamos el mismo nivel de experiencia. ¿Hay alguna razón por la que no pueda usar una variable de usuario para esto como:

packer -var "git_sha=`git rev-parse HEAD`"

Y luego declarar la variable:

{
  "variables": {
    "git_sha": "none"
  }
}

{{git_hash}} hace algunas suposiciones, la más importante es que tienes Git instalado. No creo que todos nuestros usuarios usen Git, por lo que encontrar el UX correcto cuando git no está instalado puede ser difícil (tenemos un error, lo reemplazamos con una cadena vacía, etc.).

De acuerdo con @sethvargo

Otro pequeño consejo para las personas que están leyendo esto: es posible que desee utilizar el argumento --short para rev-parse:

packer -var "git_sha=`git rev-parse --short HEAD`"

para obtener un valor como 21feafa en lugar de 21feafa9a86a45b3008d133f0803d2ac2087c63f .

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

mvermaes picture mvermaes  ·  3Comentarios

frezbo picture frezbo  ·  3Comentarios

mwhooker picture mwhooker  ·  3Comentarios

Nikoos picture Nikoos  ·  3Comentarios

Tensho picture Tensho  ·  3Comentarios