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

可以在yaml中使用通配符吗?,yaml,Yaml,我正在建立一个使用Pogo的自动部署系统。它将加密包的密码短语存储在yaml文件中。但是,我遇到了一个问题,尽管包名在yaml文件中具有正确的密码短语,但由于包名附加了一个版本号,因此无法获取它 例如,yaml文件如下所示: somesoftwarepackage: apassphrase pkg_name: &name my_pkg pkg_version: &version 1.0.23 pkg_fullname: [ *name, '-', *version ] 在自动

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

例如,yaml文件如下所示:

somesoftwarepackage: apassphrase
pkg_name: &name my_pkg
pkg_version: &version 1.0.23
pkg_fullname: [ *name, '-', *version ]
在自动部署期间,实际安装的软件包名称如下:

somesoftwarepackage-1.0.23
然后,部署在该点冻结,等待通行短语


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

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

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

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

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

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

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

somesoftwarepackage: apassphrase
pkg_name: &name my_pkg
pkg_version: &version 1.0.23
pkg_fullname: [ *name, '-', *version ]
因此,您至少已经记录了包名格式(
${name}-${version}
),并将
pkg_fullname
操作为单个字符串(例如,Python中的
'.join(pkg_fullname)
)。但用原始数据进行这些操作可能同样容易