【发布时间】:2018-10-09 17:55:20
【问题描述】:
我需要通过 EC2 实例上的用户数据安装 python3 和 django。我知道我可以使用 Cloudformation 或直接在 EC2 上执行此操作,但我需要通过用户数据安装和部署它。我正在创建 VPC 和自动缩放器,但我需要自动安装和部署 python3 和 django。
这是我所拥有的,但它似乎不起作用。
UserData="""#!/bin/bash
yum install httpd php php-mysql -y
echo y | sudo yum install python36 python36-virtualenv python36-pip
sudo pip install --upgrade pip
python3 -m venv venv
source ./venv/bin/activate
pip install django
pip install --upgrade pip
yum update -y
service httpd start
chkconfig httpd on
adduser Eteram
我试过用双引号把它们括起来,但还是不行。
我基本上是在尝试安装 python3 和 django 并部署一个能够访问 django 管理 url 的测试应用程序。
如果我在 EC2 上运行上述命令,它运行得很好。但是当我将它包含在用户数据中时,在我登录 EC2 并检查云初始化日志后,我看到以下内容:
/var/lib/cloud/instance/scripts/part-001: line 3: echo y | sudo yum install python36 python36-virtualenv python36-p
ip: command not found
/var/lib/cloud/instance/scripts/part-001: line 4: sudo pip install --upgrade pip: command not found
/var/lib/cloud/instance/scripts/part-001: line 5: python3 -m venv venv: command not found
/var/lib/cloud/instance/scripts/part-001: line 6: source ./venv/bin/activate: No such file or directory
/var/lib/cloud/instance/scripts/part-001: line 7: pip install django: command not found
/var/lib/cloud/instance/scripts/part-001: line 8: pip install --upgrade pip: command not found
【问题讨论】:
-
这将以 root 身份运行,因此可能不需要 sudo。 AMI 可能甚至没有 sudo?此外,您应该使用
yum install -y而不是回显 y。 -
好点,现在试试..谢谢。
标签: python django amazon-web-services amazon-ec2 boto3