我们正在启动实例,并访问我们放置的用户数据.但有没有人理解这次行动的内部(来自亚马逊方面)?当我们传入用户数据时,传输到VM的数据(这是一个Xen功能)在哪里存储?
我首先想到的是,它被设置为USER_DATA env var,但我们也可以将其作为文件传递.该文件存储在哪里?它是通用的所有实例还是因AMI而异?
这本身并不是问题,只是想知道亚马逊如何做到这一点.
用户数据截图:http://d.pr/GZlY
我试图用EC2s用户数据设置环境变量,但我没做什么似乎工作
这是我试过的用户数据脚本
Run Code Online (Sandbox Code Playgroud)#!/bin/bash echo "export HOST_URL=checkEmai-LoadBala-ICHJ82KG5C7P-23235232.us-east-1.elb.amazonaws.com" >> /env.sh source /env.sh
而另一个:
Run Code Online (Sandbox Code Playgroud)#!/bin/bash echo "#!/bin/bash" >> /env.sh echo "export HOST_URL=checkEmai-LoadBala-ICHJ82KG5C7P-67323523.us-east-1.elb.amazonaws.com" >> /env.sh chmod +x /env.sh /env.sh
他们都绝对没有,如果我登录并发出命令source /env.sh或/env.sh它的工作原理.所以这一定是我要做的事情是禁止的.
这是/var/log/cloud-init-output.log使用-e -x 的输出
Run Code Online (Sandbox Code Playgroud)+ echo 'export HOST_URL=checkEmai-LoadBala-ICHJ82KG5C7P-2141709021.us-east-1.elb.amazonaws.com' + source /env.sh ++ export HOST_URL=checkEmai-LoadBala-ICHJ82KG5C7P-2141709022.us-east-1.elb.amazonaws.com ++ HOST_URL=checkEmai-LoadBala-ICHJ82KG5C7P-2141709022.us-east-1.elb.amazonaws.com
仍然echo $HOST_URL是空的
根据要求,完整的UserData脚本
Run Code Online (Sandbox Code Playgroud)#!/bin/bash set -e -x echo "export HOST_URL=checkEmai-LoadBala-ICHJ82KG5C7P-2141709021.us-east-1.elb.amazonaws.com" >> /env.sh source /env.sh /startup.sh staging 2649