gpt4 book ai didi

amazon-web-services - Terraform cloudformation 将未知变量堆栈到 UserData 上

转载 作者:行者123 更新时间:2023-12-03 07:36:39 25 4
gpt4 key购买 nike

我有一个 terraform,可以从 yaml 文件在 AWS 上创建堆栈。

我的资源“aws_cloudformation_stack”“gitlab-runner”具有以下参数:

Token               = "GAdt_YVHgcp5QM_Nms65"
IAMRoleName = "${module.gitlab-iam.iam_role_name}"

我的yaml文件有以下语句:

  Parameters:
GitLabRunnerToken:
Description: >-
Registration token for GitLab Runner. Registration token must contain
exactly 20 alphanumeric characters
AllowedPattern: '^[-_a-zA-Z0-9]*$'
Type: String
MinLength: '20'
MaxLength: '20'
NoEcho: true

Resources:
...
LaunchConfiguration:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: !FindInMap [AWSRegionToAMI, !Ref 'AWS::Region', AMIID]
SecurityGroups:
- !Ref SecurityGroup
InstanceType: !Ref InstanceType
IamInstanceProfile: !Ref GitlabRunnerInstanceProfile
KeyName: !Ref KeyName
BlockDeviceMappings:
- DeviceName: /dev/xvdb
Ebs:
VolumeSize: !Ref 'VolumeSize'
VolumeType: !Ref 'VolumeType'
DeleteOnTermination: !Ref 'DeleteOnTermination'
UserData:
Fn::Base64: !Sub |
#!/bin/bash -xe

docker run --rm -t -i -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register \
--non-interactive \
--executor "docker" \
--docker-image alpine:3 \
--url "https://gitlab.affinitas.de" \
--registration-token ${GitLabRunnerToken} \
--description "docker-runner" \
--tag-list "docker,aws" \
--run-untagged \
--locked="false"

我无法获取参数 GitLabRunnerToken 的值并注入(inject) UserData: Base64: !Sub |

我收到以下错误:

<template_file>:160,34-51: Unknown variable; There is no variable named "GitLabRunnerToken".

我尝试使用以下方法获取值:

1. ${GitLabRunnerToken}
2. Ref: "GitLabRunnerToken"
3. !Ref: "GitLabRunnerToken"
4. !ImportValue "GitLabRunnerToken"

但我仍然无法获取并传递我的 UserData、LaunchConfiguration 的值。

有什么线索吗?

谢谢。

最佳答案

这是因为你使用了${variable}格式。您可以通过这种方式将变量传递给 cloud-init/userdata 脚本。 Terraform 愚蠢地厌倦了用 template_filevars 部分中的值替换任何“${something}”。失去 {},你就会没事的。

关于amazon-web-services - Terraform cloudformation 将未知变量堆栈到 UserData 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54325661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com