Packer: шаблонная ΠΌΠ΅Ρ‚Π°-ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 10 Ρ„Π΅Π²Ρ€. 2017  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: hashicorp/packer

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ вопросы ΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ шаблон. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ статичСских Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈΠ· ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠ° Π»ΠΈΠ±ΠΎ Π²ΠΎ врСмя ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°, Π»ΠΈΠ±ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ floppy_files ΠΈΠ»ΠΈ http_server

Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Π― Π½Π΅ Π²Π΅Ρ€ΡŽ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ созданиСм шаблонов, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, Π½Π° ΠΌΠΎΠΉ взгляд, это Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ возмоТностСй ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠ°. Однако, ΠΏΠΎΡ…ΠΎΠΆΠ΅, Π΅Π³ΠΎ часто просят.

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ здСсь Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π½ΠΎ сСйчас Ρƒ мСня ΠΈΡ… Π½Π΅Ρ‚.

enhancement hcl2 post-1.0 thinking

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

НСкоторыС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ. ΠŸΡ€ΡΠΌΠΎ сСйчас Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅Π³Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создал ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ JS для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ всСх своих ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠ°, Π½ΠΎ Π»ΠΎΠ³ΠΈΠΊΠ° Π² этом сцСнарии JS довольно проста, ΠΈ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ просто Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС это Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. Π•ΠΌΡƒ Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ΅Π½ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ JS-скрипт для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ json-Ρ„Π°ΠΉΠ»Π°, Ρ‡Ρ‚ΠΎ являСтся Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ болью ΠΏΡ€ΠΈ обслуТивании.

Π― ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡΡŒ Π² ситуациях, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ» json ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΈΠ³Ρ€Π°Ρ‚ΡŒ ΠΎΡ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΅Π³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ. Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° Π²Π΅Ρ‰ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я дСлаю, - это ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ вставка записСй ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции jinja for-loop.

ВозмоТная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с jinja2-шаблонами Ρ„Π°ΠΉΠ»ΠΎΠ² JSON - это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ запятой Π² JSON. Π¨Π°Π±Π»ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ достаточно ΡƒΠΌΠ½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‚ΡŒ, Π½ΡƒΠΆΠ½Π° Π»ΠΈ запятая (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° YAML?).

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Ссли Π±Ρ‹ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊ Π±Ρ‹Π» написан Π½Π° python, ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ Π±Ρ‹Π»ΠΎ Π±Ρ‹ использованиС jinja2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ ΠΈ простым Π² использовании языком шаблонов. ΠŸΠΎΡ…ΠΎΠΆΠ΅, ΠΏΠ°Ρ€Ρƒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» Π΅Π³ΠΎ ΠΏΠΎΡ€Ρ‚: https://github.com/jmoiron/jigo

НСкоторыС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ. ΠŸΡ€ΡΠΌΠΎ сСйчас Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅Π³Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создал ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ JS для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ всСх своих ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠ°, Π½ΠΎ Π»ΠΎΠ³ΠΈΠΊΠ° Π² этом сцСнарии JS довольно проста, ΠΈ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ просто Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС это Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. Π•ΠΌΡƒ Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ΅Π½ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ JS-скрипт для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ json-Ρ„Π°ΠΉΠ»Π°, Ρ‡Ρ‚ΠΎ являСтся Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ болью ΠΏΡ€ΠΈ обслуТивании.

Π― ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡΡŒ Π² ситуациях, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ» json ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΈΠ³Ρ€Π°Ρ‚ΡŒ ΠΎΡ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΅Π³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ. Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° Π²Π΅Ρ‰ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я дСлаю, - это ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ вставка записСй ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции jinja for-loop.

ВозмоТная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с jinja2-шаблонами Ρ„Π°ΠΉΠ»ΠΎΠ² JSON - это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ запятой Π² JSON. Π¨Π°Π±Π»ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ достаточно ΡƒΠΌΠ½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‚ΡŒ, Π½ΡƒΠΆΠ½Π° Π»ΠΈ запятая (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° YAML?).

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования: ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, builder_type, ...) Π² скрипты Π² autounattend (windows) ΠΈΠ»ΠΈ kickstart / preseed (linux).

НапримСр: vsphere-iso builder ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ инструмСнты vmware для получСния IP ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡˆΠ°Π³Ρƒ «ОТиданиС IPΒ». НаличиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ builder_type (ΠΈΠ»ΠΈ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ env Ρ„Π°Π·Ρ‹ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ PACKER_BUILDER_TYPE) позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠΉ сцСнарий ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π° ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΡƒΡŽ установку инструмСнтов vmware Π²ΠΎ врСмя сборки, избСгая дублирования ΠΊΠΎΠ΄Π°.

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… этапах Π΄Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ Π‘Π£Π₯ΠžΠ™ ΠΊΠΎΠ΄.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ