【发布时间】:2016-03-16 07:17:01
【问题描述】:
我正在尝试使用 EC2 的用户数据设置环境变量,但我所做的一切似乎都不起作用
这是我尝试过的用户数据脚本
#!/bin/bash echo "export HOST_URL=checkEmai-LoadBala-ICHJ82KG5C7P-23235232.us-east-1.elb.amazonaws.com" >> /env.sh source /env.sh
还有一个:
#!/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 的输出
+ 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 脚本
#!/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
【问题讨论】:
-
您是想为稍后在用户数据中运行的脚本设置环境变量,还是希望在通过 SSH 登录服务器时这些变量可用?另外,您确定您使用的 AMI 支持用户数据脚本吗?
-
1:我正在尝试将用户数据设置为在该脚本之后运行的应用程序。 2:是的,用户数据脚本可以工作,这只是对在该脚本之后运行的脚本的补充
-
明确地说,您希望变量可用的脚本也在您的用户数据脚本中被调用?
-
是的,sn-p 是从 ec2 实例用户数据中复制粘贴
-
你能显示整个用户数据脚本吗?你在哪里跑
echo $HOST_URL?
标签: linux bash amazon-web-services amazon-ec2