CloudFormation 构建集群,需要将 Master IP 传递给其他资源

CloudFormation building a cluster and need pass Master IP to other resources

我有一个 CloudFormation 模板,我目前已使用我知道我在子网中的 IP 地址进行了硬编码。作为一家大公司的一部分,我需要在创建更多集群时使其动态化并且必须引用 IP 地址。在我当前的设置中,我有 1 个主站和一堆从站,它们都需要知道主站的 IP。他们不需要彼此认识。

我发现了以下内容:

"MasterNetInt" : {
  "Type" : "AWS::EC2::NetworkInterface",
  "Properties" : {
    "SubnetId": { "Ref" : "MySubnet" }
  }
}

我的问题是,我只需要放置一个资源,而不是在 10 个奴隶的​​每一个下面都有这样的东西:

    "UserData": {
                        "Fn::Base64": {
                            "Fn::Join": [
                                "", [
        "sed -i -e 's/server_host=localhost/server_host=", { "Fn::GetAtt": [ "MasterNetInt", "PrimaryPrivateIpAddress" ] }, "/g' /etc/master/config.ini \n",
...

假设 ref 名称是 "MasterNetInt" 这应该可以为您提供 IP

 "Fn::GetAtt": [
                            "MasterNetInt",
                            "PrivateIp"
                        ]