提问人:Siddharth Seth 提问时间:9/24/2023 最后编辑:Siddharth Seth 更新时间:11/10/2023 访问量:76
跨多个文件拆分 Jenkins CASC yaml 内容
Split Jenkins CASC yaml content across multiple files
问:
我正在使用 Jenkins CasC 插件来管理 Jenkins 的配置。作为这项工作的一部分,我有一组文件,其中包含 YAML 格式的所需配置。我想通过为每个 AMI 模板创建一个文件来拆分 ec2 插件的配置。文件结构如下所示:
jenkins:
clouds:
- amazonEC2:
name: "xxxxxx"
instanceCapStr: "50"
region: "region"
sshKeysCredentialsId: "credentialsId"
templates:
- ami: "ami1-name"
- ami: "ami2-name"
useInstanceProfileForCredentials: false
我想将其转换为如下所示的结构:
jenkins:
clouds:
- amazonEC2:
name: "xxxxxx"
instanceCapStr: "50"
region: "region"
sshKeysCredentialsId: "credentialsId"
templates:
- ${file(path to config of ami1)}
- ${file(path to config of ami2)}
useInstanceProfileForCredentials: false
AMI1 配置
- ami: "ami1-name"
...
AMI2 配置
- ami: "ami2-name"
...
我正在将这些文件复制到 CASC Jenkins 文件夹中,并希望它们通过 CASC 插件使用 SnakeYaml 解析器进行合并。但是,在 Jenkins 启动时收到与意外配置元素相关的错误,如下所示:
SEVERE jenkins.InitReactorRunner$1#onTaskFailed: Failed ConfigurationAsCode.init
java.lang.IllegalArgumentException: Single entry map expected to configure a hudson.slaves.Cloud
答:
0赞
Andy
11/10/2023
#1
你的 yaml 格式是问题所在。云 yaml 配置需要采用如下结构:
jenkins:
clouds:
- amazonEC2:
name: "xxxxxx"
...
根据错误消息“预期的单条目映射”,其中 amazonEC2 是单条目映射,其配置位于其下方。
评论