BOSH中如何复制多个模板文件?

How to copy multiple template files in BOSH?

在 Bosh Job Spec 文件中,您可以列出要复制的模板,就像这样。

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

是否可以使用通配符或其他方式复制多个文件?

这样的方式...

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

作业规范中的模板部分是一个 1:1 映射,并且(目前)不支持通配符,尽管我认为可以假定目标路径,但它们应该是明确的。但是这些文件仅适用于您需要 ERB 配置文件以从 manifest/yml 获取属性的地方,这些属性允许在使用之间具有灵活性。

但是如果您想要 很多 个不需要动态属性的文件,您可以考虑这些文件是模板还是依赖项。您可以使用包来包含作为依赖项所需的整个存档或文件夹,包括使用通配符,并且这些可以作为作业生命周期的一部分自动提取。参见 https://bosh.io/docs/create-release.html#pkg-skeletons

每个包都有一个打包脚本来告诉 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 

files : A list of files this package contains, which can contain globs. A * matches any file and can be restricted by other values in the glob, e.g. *.rb only matches files ending with .rb. A ** matches directories recursively.

你只是参考你的工作规范。

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

packages:
- xml-files