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"
]
我有一个 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"
]