Как скопировать несколько файлов шаблонов в BOSH?

В Bosh Job Spec файлах вы можете перечислить шаблоны для копирования, как это.

templates:
  ctl.sh: bin/ctl
  config.json: config/config.json

Есть ли способ скопировать несколько файлов, возможно, используя подстановочный знак или что-то?

Так, как это...

templates:
  *.sh: bin/
  *.xml: config/ 

1 ответ

Решение

Раздел шаблона в спецификации задания представляет собой отображение 1:1 и не поддерживает (в настоящее время) подстановочные знаки, хотя я предполагаю, что целевой путь можно предположить, они предназначены для явного указания. Но эти файлы предназначены только там, где вам нужны файлы конфигурации ERB для получения свойств из манифеста /yml, которые обеспечивают гибкость между использованиями.

Но если вам нужно много файлов, которые не нуждаются в динамических свойствах, вы можете рассмотреть, являются ли они шаблонами или зависимостями. Вы можете использовать пакеты, чтобы включить весь архив или папку, необходимые в качестве зависимостей, включая использование подстановочных знаков, и они могут быть автоматически извлечены как часть жизненного цикла задания. Смотрите https://bosh.io/docs/create-release.html

Каждый пакет имеет скрипт упаковки, который сообщает Bosh, где разместить файлы.

# abort script on any command that exits with a non zero value
set -e

tar -xzf $BOSH_COMPILE_TARGET/xml/all-files.tar.gz
cp -a all-files/* $BOSH_INSTALL_TARGET

И этот файл (ы) определены в спецификации пакета

---
name: xml-files

dependencies:

files:
- xml/all-files.tar.gz 

файлы: список файлов, которые содержит этот пакет, которые могут содержать глобусы. * Соответствует любому файлу и может быть ограничено другими значениями в глобусе, например, *.rb соответствует только файлам, заканчивающимся на.rb. A ** соответствует каталогам рекурсивно.

И вы просто ссылка из вашей спецификации работы.

---
name: myjob
templates:
  ctl.sh: bin/ctl
  config.json: config/config.json

packages:
- xml-files
Другие вопросы по тегам