如何解决无法在EC2实例中通过UserData运行bash脚本
我正在启动EC2实例,并且在第一次启动该实例时,我试图使用UserData运行一些命令并设置一些环境变量。我添加到UserData
的命令:
#!/bin/bash
sudo apt-get -y update
sudo apt-get install gcc g++ build-essential
sudo apt install -y zip awscli python3-pip python3.7 python3.7-dev
python3.7 -m pip install --upgrade pip
pip3 install virtualenv
mkdir anomaly-detection
export DB_ADAPTER=postgresql+psycopg2
export DB_USER=dummy_user
export DB_PASSWORD=dummy_pwd
export DB_HOST=ec2-xx-xxx-xxx-xxx.eu-central-1.compute.amazonaws.com
export DB_NAME=dummy_db
启动实例后,我将启动实例,并在检查环境变量时未设置它们,也未运行mkdir
命令。 (因此,我假设尚未执行所有命令)。
我在做什么错?
解决方法
用户数据脚本以root
用户身份运行。
如果希望为登录时将存在的用户定义环境变量,则应在每个用户的.profile
文件中定义它们。如果您始终以ec2-user
身份登录,则将其添加到/home/ec2-user/.profile
就足够了。
请参阅:How to permanently set environmental variables - Unix & Linux Stack Exchange
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。