可以在yaml中使用通配符吗?

时间:2013-04-17 16:10:54

标签: yaml

我正在建立一个使用Pogo的自动部署系统。它在yaml文件中存储加密包的密码短语。但是我遇到了一个问题,尽管包名称在yaml文件中并且包含正确的密码短语,但是由于包名附加了版本号,所以它没有被提取。

例如,yaml文件将如下所示:

somesoftwarepackage: apassphrase

在自动部署期间,正在安装的实际软件包名称将类似于:

somesoftwarepackage-1.0.23

然后部署冻结,等待密码短语。

是否可以在yaml中使用通配符,以便我可以放置通用包名但不必指定(然后不断更新)特定版本?

1 个答案:

答案 0 :(得分:4)

我认为答案是否定的,YAML不能进行字符串连接,或任何其他生成或操纵数据。

与变量或通配符最接近的是锚点,它更像是先前指定数据的别名。我想你可以这样做:

pkg_name: &name my_pkg
pkg_version: &version 1.0.23
pkg_fullname: [ *name, '-', *version ]

这样您至少记录了包名称格式(${name}-${version}),并将pkg_fullname操作为单个字符串(例如,Python中的''.join(pkg_fullname))。但是用原始数据进行这些操作可能同样容易。