Как скопировать несколько файлов шаблонов в 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