2016-04-26 3 views
0

Ich habe eine CloudFormation-Vorlage, die ich derzeit mit IP-Adressen, die ich in einem Subnetz habe, fest programmiert habe. Als Teil eines großen Unternehmens muss ich es dynamisch machen, indem ich mehr Cluster erstelle und IP-Adressen referenzieren muss. In meinem derzeitigen Setup habe ich 1 Master und eine Reihe von Slaves, die alle die IP des Masters kennen müssen. Sie müssen sich nicht kennen.CloudFormation erstellt einen Cluster und muss die Master-IP an andere Ressourcen weitergeben

Ich habe folgendes gefunden:

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

Meine Frage ist, dass ich nur diese eine Ressource zu setzen und als unter jedem der 10 Sklaven haben so etwas wie dieses:

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

Antwort

1

Unter der Annahme, dass der Ref-Name "MasterNetInt" ist, sollte dies funktionieren, um Ihnen die IP

+0

Vorlage Fehler: Ressource MasterNetInt doe s unterstützt keinen Attributtyp PrivateIp in Fn :: GetAtt Aber das funktioniert: PrimaryPrivateIpAddress – theMadKing

Verwandte Themen