在波什Job Spec文件中,您可以列出要复制的模板,如下所示。
templates:
ctl.sh: bin/ctl
config.json: config/config.json
有没有办法可以使用通配符或somthing复制多个文件?
这样的方式......
templates:
*.sh: bin/
*.xml: config/
答案 0 :(得分:1)
作业规范中的模板部分是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:此程序包包含的文件列表,可以包含globs。 A *匹配任何文件,并且可以被glob中的其他值限制,例如* .rb仅匹配以.rb结尾的文件。 A **以递归方式匹配目录。
您只需参考您的工作规范。
---
name: myjob
templates:
ctl.sh: bin/ctl
config.json: config/config.json
packages:
- xml-files