Packer: fungsi git-hash untuk penamaan file yang dihasilkan

Dibuat pada 1 Des 2014  ·  3Komentar  ·  Sumber: hashicorp/packer

Saat ini saya menyesuaikan post_processor saya seperti ini:

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

Akan lebih baik untuk memiliki {{git_hash}} alih-alih stempel waktu. Jika ada cara lain untuk melakukan ini, selain panggilan fungsi di packer, maka saya kira saya tidak cukup akrab tentang cara melakukannya.

Saya melihat di mana ini mungkin dilakukan: packer/config_template.go.

Saya pikir kebanyakan orang akan menganggap ini berguna.

Contoh: Jika kita ingin mengetahui seluruh konfigurasi dari tumpukan boneka kita, kita juga harus mengetahui kotak pengepakan yang mana setiap node dibangun, dan stempel waktu tidak memberi kita hal itu. Ini adalah hal yang baik untuk dimiliki untuk mengaudit atau bahkan strategi pemulihan bencana yang paling buruk.

Pikiran? Alternatif?

_edit_:

Ada juga kasus penggunaan menjalankan packer terhadap pohon git yang kotor, di mana hash yang dihasilkan tidak akan akurat. Anda mungkin ingin hash git mengembalikan 'dirty_tree' dalam kasus itu..

waiting-reply

Komentar yang paling membantu

Hm. Saya pikir menambahkan fungsi khusus git itu rumit, karena itu membuka pintu untuk SCM lain yang mungkin tidak memiliki tingkat keahlian yang sama. Apakah ada alasan Anda tidak dapat menggunakan user-var untuk ini seperti:

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

Dan kemudian mendeklarasikan variabel:

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

{{git_hash}} membuat beberapa asumsi, yang paling penting adalah - Anda telah menginstal Git. Saya tidak berpikir semua pengguna kami menggunakan Git, jadi menemukan UX yang benar ketika git tidak diinstal mungkin sulit (apakah kami melakukan kesalahan, mengganti dengan string kosong, dll).

Semua 3 komentar

Hm. Saya pikir menambahkan fungsi khusus git itu rumit, karena itu membuka pintu untuk SCM lain yang mungkin tidak memiliki tingkat keahlian yang sama. Apakah ada alasan Anda tidak dapat menggunakan user-var untuk ini seperti:

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

Dan kemudian mendeklarasikan variabel:

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

{{git_hash}} membuat beberapa asumsi, yang paling penting adalah - Anda telah menginstal Git. Saya tidak berpikir semua pengguna kami menggunakan Git, jadi menemukan UX yang benar ketika git tidak diinstal mungkin sulit (apakah kami melakukan kesalahan, mengganti dengan string kosong, dll).

Setuju dengan @sethvargo

Tip kecil lainnya untuk orang yang membaca ini: Anda mungkin ingin menggunakan argumen --short untuk rev-parse:

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

untuk mendapatkan nilai seperti 21feafa alih-alih 21feafa9a86a45b3008d133f0803d2ac2087c63f .

Apakah halaman ini membantu?
0 / 5 - 0 peringkat