1

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

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

somesoftwarepackage: apassphrase

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

somesoftwarepackage-1.0.23

然后部署在那个时候冻结,等待密码。

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

4

1 回答 1

4

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

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

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

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

于 2013-04-18T05:48:02.550 回答