gpt4 book ai didi

linux - CloudFormation如何导出变量

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:27 25 4
gpt4 key购买 nike

以下是我们模板的一部分。我们在那里导出一个路径变量。但是,从模板运行,这不起作用。如果我通过 SSH 连接到服务器并运行同一行,它就可以工作并且我可以使用 gradle。但仅仅从模板来看,它不知何故没有被执行。其他 chmod 命令有效,因此该 block 显然已执行。非常感谢任何帮助。

...
"LaunchConfiguration": {
"Type": "AWS::AutoScaling::LaunchConfiguration",
"Metadata": {
"AWS::CloudFormation::Init": {
"config": {
"packages": {
"yum": {
"java-1.8.0-openjdk-devel": []
}
},
"sources": {
"/opt": "https://services.gradle.org/distributions/gradle-3.4.1-bin.zip",
"/home/ec2-user": "https://github.com/ABC/XYZ/archive/master.zip"
},
"files": {
"/tmp/gradle_config": {
"content": {
"Fn::Join": ["",
[
"#!/bin/bash -ex\n",
"chmod -R 755 gradle-3.4.1/\n",
"export PATH=$PATH:/opt/gradle-3.4.1/bin\n" //<<<< This does not work
]
]
},
"mode": "000500",
"owner": "root",
"group": "root"
},
"/tmp/app_config": {
"content": {
"Fn::Join": ["",
[
"#!/bin/bash -ex\n",
"chmod -R 777 XYZ-master/\n"
]
]
},
"mode": "000500",
"owner": "root",
"group": "root"
}
},
"commands": {
"01_config": {
"command": "/tmp/gradle_config",
"cwd" : "/opt"
},
"02_config": {
"command": "/tmp/app_config",
"cwd" : "/home/ec2-user"
}
}
}
}
}, ...

最佳答案

我找到了解决方案。所有这些行都以 root 用户身份执行。因此,export PATH... 不适合我的 ec2-user。我处理的方法是将路径变量(全局)放入 /etc/environment 文件中。

在我的代码片段中,只需替换

“导出 PATH=$PATH:/opt/gradle-3.4.1/bin\n”,

"echo\"PATH=$PATH:/opt/gradle-3.4.1/bin\">>/etc/environment"",

关于linux - CloudFormation如何导出变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42784123/

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