Я использую AWS CodeDeploy для развертывания кода в наших инстансах AWS Amazon Linux. Я следил за этой статьей базы знаний https://aws.amazon.com/premiumsupport/knowledge-center/codedeploy-agent-non-root-profile/, чтобы агент выполнялся в контексте пользователя ec2 вместо root.
Перед внесением изменений сценарий в файле yml выполнялся, как ожидалось (но нам нужно, чтобы сценарий выполнялся в некорневом контексте), и установка runas: часть файла appspec.yml, похоже, не выполняла сценарий в ec2- пользовательский контекст, как ожидалось
appspec.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
После внесения изменения эта ошибка теперь появляется, а не при выполнении сценария, указанного в файле appspec.
LifecycleEvent - AfterInstall
Script - deploy/script/deploy-veddor-api.sh
[stderr]Password: su: Authentication failure
содержимое deploy-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
Мне нужна помощь, чтобы выяснить, что мне нужно сделать, чтобы сценарий deploy-veddor-api.sh действительно запускался в контексте пользователя ec2.