【问题标题】:Create file and persist environment variable via Amazon EC2 User Data script通过 Amazon EC2 用户数据脚本创建文件和持久化环境变量
【发布时间】:2019-11-27 09:34:02
【问题描述】:

我对 userdata 在实例创建期间可用于 AWS 机器有一点困惑。所以我有一个 bash 脚本,我在其中生成一个文件,如下所示:

#!/bin/bash
echo "Creating a file" >> /files/test.txt
export MY_VARIABLE=/files/test.txt

现在我在使用boto3 ec2 实例创建时将此脚本作为 userdata 变量传递:

import boto3
ec2 = s.resource('ec2')

with open('script.sh', r) as file:
    user_data = file.read()
res = ec2.create_instances(... UserData=user_data)

我是否正确假设通过脚本创建的文件和环境变量将可用于创建的实例?

【问题讨论】:

    标签: bash amazon-web-services amazon-ec2 boto3


    【解决方案1】:

    当实例首次启动时,用户数据脚本以root 用户身份运行。

    很可能实例上没有/files/目录,所以文件创建会失败。您应该先创建该目录。

    EXPORT 可能不起作用,因为脚本以root 运行,而您通常会以ec2-user 登录。要为用户保留环境变量,您需要将其添加到 profile 文件中。

    见:How to permanently set environmental variables

    【讨论】:

      猜你喜欢
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多