相关疑难解决方法(0)

亚马逊ec2用户数据,它是如何工作的?

我们正在启动实例,并访问我们放置的用户数据.但有没有人理解这次行动的内部(来自亚马逊方面)?当我们传入用户数据时,传输到VM的数​​据(这是一个Xen功能)在哪里存储?

我首先想到的是,它被设置为USER_DATA env var,但我们也可以将其作为文件传递.该文件存储在哪里?它是通用的所有实例还是因AMI而异?

这本身并不是问题,只是想知道亚马逊如何做到这一点.

用户数据截图:http://d.pr/GZlY

amazon-ec2 amazon-web-services

59
推荐指数
3
解决办法
7万
查看次数

如何通过用户数据在EC2实例上设置环境变量

我试图用EC2s用户数据设置环境变量,但我没做什么似乎工作

这是我试过的用户数据脚本

#!/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
Run Code Online (Sandbox Code Playgroud)

他们都绝对没有,如果我登录并发出命令source /env.sh/env.sh它的工作原理.所以这一定是我要做的事情是禁止的.

这是/var/log/cloud-init-output.log使用-e -x 的输出

+ 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
Run Code Online (Sandbox Code Playgroud)

仍然echo $HOST_URL是空的

根据要求,完整的UserData脚本

#!/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
Run Code Online (Sandbox Code Playgroud)

linux bash amazon-ec2 amazon-web-services

14
推荐指数
4
解决办法
2万
查看次数

标签 统计

amazon-ec2 ×2

amazon-web-services ×2

bash ×1

linux ×1