AWS CloudFormation将存储UserData的位置?

时间:2013-11-01 02:07:54

标签: amazon-web-services amazon-cloudformation

如果我使用包含要执行的脚本块的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成功创建堆栈后是否会删除此临时脚本?
  4. 我在文档中找不到他们提到的。

    由于

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:4)

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

答案 2 :(得分:2)

  1. 我假设这个脚本块将保存在某个地方以便执行?
  2. 是的,Cloudfomration存储用户数据,无论你在里面发送了什么" UserData"块。

    1. 如果是,我在哪里可以在EC2实例上找到此脚本?
    2. 您可以找到Userdata @ /var/log/cloud-init-output.log 和Userdata记录@ /var/lib/cloud/instances/*

      1. AWS成功创建堆栈后,AWS会删除此临时脚本吗? 不,AWS在创建堆栈后不会删除userdata脚本。您可以将其用于调试目的。
      2. 仅供参考:如果您使用自定义AMI,则可以在#define a 10 #define a 20 { printf("%d",a); } 中查看原始实例userdata和当前用户数据。看起来AWS从未删除用户数据历史记录。

        希望这有助于基本理解。