【问题标题】:AWS CloudFormation where will UserData be stored?AWS CloudFormation 将 UserData 存储在哪里?
【发布时间】:2017-03-09 20:50:51
【问题描述】:

如果我有一个使用包含要执行的脚本块的 UserData 块的 AWS CloudFormation 模板,例如:

"UserData": {
    "Fn::Base64": {
        "Fn::Join": [
            "",
            [
                "#!/bin/bash\n",
                "apt-get update\n",
                "apt-get -y upgrade\n",
            ]
        ]
    }
}

实例创建后,

  1. 我假设这个脚本块将被保存在某个地方以供执行?
  2. 如果是这样,我在哪里可以在 EC2 实例上找到此脚本?
  3. 堆栈创建成功后,AWS 会删除这个临时脚本吗?

我在文档中找不到他们提到的内容。

谢谢

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation


    【解决方案1】:

    实例的用户数据可供实例上的任何进程在此位置检索:

    http://169.254.169.254/latest/user-data
    

    DNS 名称“instance-data”解析为该 IP 地址,因此如果您相信 DNS 已启动,您也可以使用更容易记住的名称:

    http://instance-data/latest/user-data
    

    这里是亚马逊文档:

    http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html

    【讨论】:

      【解决方案2】:

      /var/lib/cloud/data/scripts/ 文件夹中

      【讨论】:

        【解决方案3】:
        1. 我假设这个脚本块将被保存在某个地方以供执行?

        是的,Cloudfomration 会存储您在“UserData”块中发送的任何用户数据。

        1. 如果是这样,我在哪里可以在 EC2 实例上找到此脚本?

        你可以找到Userdata@/var/lib/cloud/instance/userdata.txt 和用户数据日志@/var/log/cloud-init-output.log

        1. 堆栈创建成功后,AWS 会删除这个临时脚本吗? 不,AWS 不会在创建堆栈后删除 userdata 脚本。您可以将其用于调试目的。

        仅供参考:如果您使用自定义 AMI,您还可以在 /var/lib/cloud/instances/* 中查看原始实例用户数据和当前用户数据。看起来 AWS 从未删除用户数据历史记录。

        希望这有助于基本理解。

        【讨论】:

          猜你喜欢
          • 2022-10-13
          • 1970-01-01
          • 2022-08-24
          • 2017-07-27
          • 2018-05-21
          • 2017-07-03
          • 1970-01-01
          • 1970-01-01
          • 2012-04-11
          相关资源
          最近更新 更多