我正在使用 AWS CodeDeploy 将代码部署到我们的 AWS Amazon Linux 实例。我遵循了这篇知识库文章https://aws.amazon.com/premiumsupport/knowledge-center/codedeploy-agent-non-root-profile/让代理在 ec2-user 上下文而不是 root 中执行
在进行更改之前,yml 文件中的脚本按预期执行(但我们需要脚本在非 root 上下文中执行)并且设置 runas: appspec.yml 文件的部分似乎没有执行 ec2- 中的脚本用户上下文符合预期
应用程序规范.yml:
version: 0.0
os: linux
files:
- source: /
destination: /home/ec2-user/veddor/api
owner: ec2-user
hooks:
AfterInstall:
- location: deploy/script/deploy-veddor-api.sh
timeout: 300
runas: ec2-user
Run Code Online (Sandbox Code Playgroud)
进行更改后,现在显示此错误,而不是执行 appspec 文件中指定的脚本
LifecycleEvent - AfterInstall
Script - deploy/script/deploy-veddor-api.sh
[stderr]Password: su: Authentication failure
Run Code Online (Sandbox Code Playgroud)
部署-veddor-api.sh 的内容
cp /home/ec2-user/veddor/api/deploy/config/Config-roddev.php /home/ec2-user/veddor/api/app/config/Config.php
cd /home/ec2-user/veddor/api
chmod +x ./composer.phar
php ./composer.phar install
Run Code Online (Sandbox Code Playgroud)
我正在寻求帮助来弄清楚我需要做什么才能让脚本 deploy-veddor-api.sh 在 ec2-user 上下文中实际运行。