【发布时间】:2018-05-30 23:40:58
【问题描述】:
我有一个 CloudFormation 模板,它将 OpenVPN 添加到现有 VPC 并需要弹性 IP 分配 ID 作为参数。它还将来自同一弹性 IP 的公共 IP 地址添加到 OpenVPN 实例配置(在它的 UserData 部分中)。
我目前已将其实现为 2 个参数 (使用虚构的默认值) 即
Parameters:
ElasticIpAddress:
Description: >-
IP Address of an Elastic IP.
Type: String
Default: 53.176.52.215
ElasticIpAllocationId:
Description: >-
Allocation id of the same Elastic IP to associate OpenVPN server with.
Type: String
Default: eipalloc-f2013ba5
...
注意 - 这两个必须指向 AWS 中的同一个 ElasticIP!
ElasticIpAddress 参数用于在AWS::EC2::Instance 部分中创建 OpenVPN 实例,如下所示:-
openVPN:
Type: 'AWS::EC2::Instance'
Properties:
Tags:
- Key: Name
Value: openVPN server
UserData:
Fn::Base64: !Sub |
public_hostname=${ElasticIpAddress}
admin_user=${OpenVPNASAdminUser}
...
... 和 ElasticIpAllocationId 在 AWS::EC2::EIPAssociation 部分中使用...
IPAssoc:
Type: 'AWS::EC2::EIPAssociation'
Properties:
AllocationId: !Ref ElasticIpAllocationId
InstanceId: !Ref openVPN
DependsOn: openVPN
拥有相同弹性 IP 的 (a) 分配 ID 和 (b) IP 地址 似乎非常多余!
我的主要问题是 - 是否存在以下功能:-
- 从弹性 IP 分配 ID 中检索 IP 地址或
- 从弹性 IP 的 IP 地址中检索分配 Id?
我的直觉是,我必须在实例的 UserData: 部分中使用 CLI 并使用 AWS CLI 命令 - 不确定与 OpenVPN AMI 一起使用的效果如何,因为它目前只需要特定于 OpenVPN 的配置.
感谢任何建议!
【问题讨论】:
标签: amazon-web-services amazon-cloudformation openvpn elastic-ip