AWS EC2用户数据未执行(使用python sdk boto)

0 投票
1 回答
523 浏览
提问于 2025-04-18 11:32

我搜索了很多,似乎没有人遇到过这个问题。

可能是我的代码有问题,但我真的找不到。

这是我的 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" 这个命令。

撰写回答