AWS EC2用户数据未执行(使用python sdk boto)
我搜索了很多,似乎没有人遇到过这个问题。
可能是我的代码有问题,但我真的找不到。
这是我的 user-data-script.sh 文件
#!/bin/sh
su root
cd /var
mkdir www
这是我用来启动实例的 Python 脚本
#!/usr/bin/python
import boto.ec2
def get_script(filename='user-data-script.sh'):
return open(filename).read()
def launch():
connection = boto.ec2.connect_to_region('us-east-1')
return connection.run_instances(
image_id = 'ami-6ba27502',
instance_type = 't1.micro',
key_name = 'forSSH',
security_groups = ['default'],
user_data=get_script(),
)
if __name__ == '__main__':
launch()
在实例准备好后,我通过 SSH 连接进去,却找不到 /var/www :(
这是 /var/log/cloud-init.log 文件中的最后几行
[CLOUDINIT] cloud-init-cfg[INFO]: cloud-init-cfg ['all', 'final']
[CLOUDINIT] __init__.py[DEBUG]: handling rightscale_userdata with freq=None and args=[]
[CLOUDINIT] __init__.py[DEBUG]: handling scripts-per-once with freq=None and args=[]
[CLOUDINIT] __init__.py[DEBUG]: handling scripts-per-boot with freq=None and args=[]
[CLOUDINIT] __init__.py[DEBUG]: handling scripts-per-instance with freq=None and args=[]
[CLOUDINIT] __init__.py[DEBUG]: handling scripts-user with freq=None and args=[]
补充说明:我并不是在设置 HTTP 服务器,
su root; cd /var; mkdir www
只是我尝试的一些操作。
1 个回答
0
user_data 脚本是以管理员身份运行的,所以你不需要输入 "su root" 这个命令。