gpt4 book ai didi

amazon-web-services - 用于分配弹性 IP 的 AWS EC2 用户数据脚本

转载 作者:行者123 更新时间:2023-12-04 00:03:41 25 4
gpt4 key购买 nike

我正在尝试为 VPC 创建我自己的堡垒主机,并创建了一个最小/最大实例数为 1 的自动缩放组。在我的启动配置中,我为 ec2 用户数据指定了以下内容:

#!

INSTANCE_ID=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id`

aws ec2 associate-address --instance-id $INSTANCE_ID --allocation-id eipalloc-my-eip-id --allow-reassociation

此用户数据的目标是立即将弹性 IP 地址与我新创建的 EC2 实例相关联 - I've read from other StackOverflow posts这必须在使用 ASG 时明确完成。

但是,在 ASG 实例启动并完成初始化后,我仍然没有在控制台输出中看到该实例的任何弹性 IP:

enter image description here

我已经确认实例确实正在使用用户数据:
enter image description here

我试图查看系统日志内部以查看在初始化期间是否有任何错误消息,但一开始我看不到任何表明 associate-address 的内容。命令失败(在 /var/log/cloud-init-output 内)。

编辑:尝试调试:

但是,我随后手动将弹性 IP 与我的实例关联,通过 SSH 连接,并尝试运行上面的用户数据命令。有趣的是,当我到达 aws ec2 associate-address 时部分,我遇到了

Unable to locate credentials. You can configure credentials by running "aws configure".



这似乎是问题的根源 - 我的 AWS 配置文件未配置。但是,我一直认为,当实例完成初始化时,会为您设置一个默认的 AWS 实例配置文件,可以访问 AWS CLI。

任何人都可以指出为什么我的用户数据关联弹性 IP 地址可能无法正确执行的方向?

最佳答案

用户数据脚本必须以 #! 开头被识别为脚本。例如:

#!
INSTANCE_ID=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id`

aws ec2 associate-address --instance-id $INSTANCE_ID --allocation-id eipalloc-xxx --allow-reassociation

您可以查看结果登录: /var/log/cloud-init-output.log

关于amazon-web-services - 用于分配弹性 IP 的 AWS EC2 用户数据脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53919530/

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