gpt4 book ai didi

shell - Cloudformation 无法识别 UserData 脚本中的 Shell 变量

转载 作者:行者123 更新时间:2023-12-03 07:32:40 25 4
gpt4 key购买 nike

我注意到使用 CloudFormation 的 UserData 属性运行的脚本无法识别 EC2 实例的 shell 变量。例如,下面的模板部分在配置时不会打印任何值。有什么办法可以解决这个问题吗?

UserData:
Fn::Base64: !Sub |
#!/bin/bash
echo HOME: $HOME
echo USER: $USER
echo PATH: $PATH

最佳答案

注意cloud-init所在的环境的User-Data Script执行的脚本通常不包含 HOMEUSER 变量,因为脚本是在非登录 shell 中以 root 身份执行的。

尝试在 UserData 中使用 env 命令来查看可用环境变量的完整列表:

Description: Output shell variables.
Resources:
Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-9be6f38c # amzn-ami-hvm-2016.09.1.20161221-x86_64-gp2
InstanceType: m3.medium
UserData:
Fn::Base64: !Sub |
#!/bin/bash
env

在 Amazon Linux AMI 上(请注意,结果将取决于您正在运行的 AMI!),我在 Console Output 中得到以下输出:

TERM=linux
PATH=/sbin:/usr/sbin:/bin:/usr/bin
RUNLEVEL=3
runlevel=3
PWD=/
LANGSH_SOURCED=1
LANG=en_US.UTF-8
PREVLEVEL=N
previous=N
CONSOLETYPE=serial
SHLVL=4
UPSTART_INSTANCE=
UPSTART_EVENTS=runlevel
UPSTART_JOB=rc
_=/bin/env

关于shell - Cloudformation 无法识别 UserData 脚本中的 Shell 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42078866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com