首页 文章

AWS Launch Configuration未获取用户数据

提问于
浏览
3

我们正在尝试构建一个在AWS中配置弹性负载均衡器(比如说ELB)的自动缩放组(简称AS) . 自动扩展组本身配置了启动配置(比方说LC) . 据我所知,从AWS文档中可以看出,在启动配置的用户数据部分中按原样粘贴脚本会为启动到与该自动缩放组关联的自动缩放组的每个实例运行该脚本 .

例如,在用户数据中粘贴此文件将在t2 micro ubuntu映像的主文件夹中有一个名为configure的文件:

#!/bin/bash
cd
touch configure

我们的最终目标是:增加自动扩展组中的实例,它们使用我们的启动脚本启动,这个新实例将添加到使用自动扩展组标记的负载均衡器后面 . 但是脚本没有在实例启动时执行 . 我的问题是:1 . 我在这里遗漏了什么吗? 2.在自动缩放组中启动任何新实例时,我应该怎么做才能运行启动脚本? 3.有没有办法验证用户数据是否真的被启动了?

1 回答

  • 4

    你所遵循的方向是正确的 . 你的用户数据脚本有什么问题 .

    Problem 1:

    您必须记住的是,用户数据将以用户 root 执行,而不是 ubuntu . 因此,如果您的脚本运行正常,您会在 /root/configure ,而不是 /home/ubuntu/configure 中找到您的文件 .

    Problem 2:

    您的脚本实际上正在执行,但它不正确并且在 cd 命令失败,因此不会创建文件 .

    没有给出任何目录的 cd 内置命令将尝试执行 cd $HOME ,但是在cloud-init运行期间没有设置 $HOME ,所以你必须在这里明确 .


    将您的脚本更改为以下,它将工作:

    #!/bin/bash
    cd /root
    touch configure
    

    您还可以通过检查 /var/log/cloud-init.log 日志文件来调试用户数据脚本的问题,特别是检查其中的错误: grep -i error /var/log/cloud-init.log

    希望能帮助到你!

相关问题