Packer: fonction git-hash pour nommer le fichier résultant

Créé le 1 déc. 2014  ·  3Commentaires  ·  Source: hashicorp/packer

Je personnalise actuellement mon post_processeur comme ceci :

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

Ce serait bien d'avoir {{git_hash}} au lieu de l'horodatage. S'il y a une autre façon de faire cela, autre qu'un appel de fonction dans packer, alors je suppose que je ne suis pas assez familier sur la façon de le faire.

Je vois où cela pourrait être fait : packer/config_template.go.

Je pensais que la plupart des gens trouveraient cela utile.

Ex : si nous voulons connaître la configuration complète de notre pile de marionnettes, nous devons également savoir sur quelle boîte de conditionnement chaque nœud a été construit, et l'horodatage ne nous le donne pas. C'est une bonne chose à avoir pour l'audit ou même la pire des stratégies de reprise après sinistre.

Les pensées? Alternatives ?

_Éditer_:

Il y a aussi le cas d'utilisation de l'exécution de packer contre un arbre git sale, où le hachage résultant ne serait pas précis. Vous voudriez probablement que le hachage git renvoie 'dirty_tree' dans ce cas.

waiting-reply

Commentaire le plus utile

Hum. Je pense que l'ajout de fonctions spécifiques à git est délicat, car cela ouvre la porte à d'autres SCM sur lesquels nous n'avons peut-être pas le même niveau d'expertise. Y a-t-il une raison pour laquelle vous ne pouvez pas utiliser un utilisateur-var pour cela comme :

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

Et puis déclarez la variable :

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

{{git_hash}} fait quelques suppositions, la plus importante étant - vous avez installé Git. Je ne pense pas que tous nos utilisateurs utilisent Git, donc trouver le bon UX lorsque git n'est pas installé peut être difficile (faut-il une erreur, remplace-t-il par une chaîne vide, etc.).

Tous les 3 commentaires

Hum. Je pense que l'ajout de fonctions spécifiques à git est délicat, car cela ouvre la porte à d'autres SCM sur lesquels nous n'avons peut-être pas le même niveau d'expertise. Y a-t-il une raison pour laquelle vous ne pouvez pas utiliser un utilisateur-var pour cela comme :

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

Et puis déclarez la variable :

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

{{git_hash}} fait quelques suppositions, la plus importante étant - vous avez installé Git. Je ne pense pas que tous nos utilisateurs utilisent Git, donc trouver le bon UX lorsque git n'est pas installé peut être difficile (faut-il une erreur, remplace-t-il par une chaîne vide, etc.).

D'accord avec @sethvargo

Un autre petit conseil pour les personnes qui lisent ceci : vous pouvez utiliser l'argument --short pour rev-parse :

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

pour obtenir une valeur comme 21feafa au lieu de 21feafa9a86a45b3008d133f0803d2ac2087c63f .

Cette page vous a été utile?
0 / 5 - 0 notes