我是 codedeploy 的新手,我计划将多个应用程序部署到单个实例。我正在使用 cloudformation 模板创建代码部署,但找不到任何用于部署多个应用程序修订版的说明。这是我想做的:
“指定位置不存在脚本:/opt/codedeploy-agent/deployment-root/76b33ccc-594b-4d58-a1b8-e40d054c64b7/d-AVYMCK28I/deployment-archive/scripts/Applicationstoptest.sh”
这是我遇到的错误,有人可以帮我解决这个问题吗
我在 Github 上托管了一个 PHP 项目,我尝试使用 AWS Codepipeline 和 ElasticBeanstalk 设置持续集成。
到目前为止,我能够从 github 获取存储库内容并将其部署到 ElasticBeanstalk。但我需要在部署之前运行 shell 脚本,该脚本将更新 config.json 文件并更新环境变量。
这就是我试图在管道中实现的目标:
我有什么想法可以让它发挥作用吗?
谢谢
shell amazon-web-services amazon-elastic-beanstalk aws-code-deploy aws-codepipeline
我正在 EC2 实例上运行 Ubuntu,并尝试设置代码部署来运行脚本以在 appspec.yml 中配置部署。然而,这些钩子脚本似乎没有运行。当我检查代码部署错误日志时,我看到错误消息InstanceAgent::Plugins::CodeDeployPlugin::HookExecutor: Script at specified location: scripts/applicationstart.sh is not executable. Trying to make it executable.
这非常令人困惑,因为我的脚本非常简单,我不确定为什么它们不被接受。这是在 appspec.yml 文件中调用它们的位置:
version: 0.0
os: linux
files:
- source: /
destination: /home/ubuntu/teller-install
hooks:
BeforeInstall:
- location: scripts/beforeinstall.sh
timeout: 300
runas: root
ApplicationStart:
- location: scripts/applicationstart.sh
timeout: 300
runas: root
Run Code Online (Sandbox Code Playgroud)
这是我调用的两个脚本:
#!/bin/bash
cd /home/ubuntu/teller-install/Server && npm install
exit 0
Run Code Online (Sandbox Code Playgroud)
第二个:
#!/bin/bash
pm2 start /home/ubuntu/teller-install/Server/app.js
exit 0
Run Code Online (Sandbox Code Playgroud)
部署成功,但脚本未运行。
这是我在 codedeploy-agent 日志文件中收到的错误消息:
2017-06-01 23:59:01 WARN [codedeploy-agent(3504)]: InstanceAgent::Plugins::CodeDeployPlugin::HookExecutor: Script at specified location: scripts/applicationstart.sh …Run Code Online (Sandbox Code Playgroud) codedeploy 在几次部署(php 应用程序)后失败并出现错误
“无法分配内存 - su”,但在实例中它播种了 51% 的内存正在使用中。
可能是什么原因?
Error.
InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error during perform: Errno::ENOMEM - Cannot allocate memory - su - /usr/share/ruby/open3.rb:211:in `spawn'
/usr/share/ruby/open3.rb:211:in `popen_run'
/usr/share/ruby/open3.rb:99:in `popen3'
/opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/hook_executor.rb:141:in `execute_script'
/opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/hook_executor.rb:115:in `block (2 levels) in execute'
/opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/hook_executor.rb:103:in `each'
/opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/hook_executor.rb:103:in `block in execute'
[centos@ip-10-196-21-200 codedeploy-agent]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda1 41926416 21195568 20730848 51% /
devtmpfs 487892 0 487892 0% /dev
tmpfs 507480 0 507480 0% /dev/shm
tmpfs 507480 38336 469144 8% /run
tmpfs 507480 0 507480 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 AWS CodeDeploy。我用aws deploy push --debug命令。要上传的文件约为 250 KB。但上传尚未完成。以下是显示的日志。
2017-10-27 11:11:40,601 - MainThread - botocore.auth - DEBUG - CanonicalRequest:
PUT
/frontend-deployer/business-services-0.0.1-SNAPSHOT-classes.jar
partNumber=39&uploadId=.olvaJkxreDZf1ObaHCMtHmkQ5DFE.uZ9Om0sxZB08YG3tqRWBxmGLTFWSYQaj9mHl26LPJk..Stv_vPB5NMaV.zAqsYX6fZz_S3.uN5J4FlxHZFXoeTkMiBSYQB2C.g
content-md5:EDXgvJ8Tt5tHYZ6Nkh7epg==
host:s3.us-east-2.amazonaws.com
x-amz-content-sha256:UNSIGNED-PAYLOAD
x-amz-date:20171027T081140Z
content-md5;host;x-amz-content-sha256;x-amz-date
UNSIGNED-PAYLOAD
...
2017-10-27 11:12:12,035 - MainThread - botocore.endpoint - DEBUG - Sending http request: <PreparedRequest [PUT]>
2017-10-27 11:12:12,035 - MainThread - botocore.awsrequest - DEBUG - Waiting for 100 Continue response.
2017-10-27 11:12:12,189 - MainThread - botocore.awsrequest - DEBUG - 100 Continue response seen, now sending request body.
Run Code Online (Sandbox Code Playgroud)
尽管文件相当小 (250 KB),上传也无法完成。
另一方面,通过aws …
我正在使用 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 上下文中实际运行。
我设置了 CodePipeline 来构建静态 Vue 站点并将其从我的 Github 存储库部署到 S3 存储桶。但由于构建的文件具有散列名称(例如 app.2c71f2bb.js),因此每次部署后,旧文件仍保留在存储桶中。我想知道处理这个问题的常用方法是什么?我将如何去做?
amazon-web-services aws-code-deploy aws-codepipeline aws-codebuild
我在尝试通过以下方式安装 AWS 代码部署代理时遇到一些错误:
wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install
./install auto
Run Code Online (Sandbox Code Playgroud)
我知道 AWS 文档说 16.04 或 18.04。但想知道我是否是第一个尝试它的人。
Traceback (most recent call last):
8: from ./install:33:in `<main>'
7: from ./install:33:in `new'
6: from /usr/lib/ruby/2.7.0/logger.rb:389:in `initialize'
5: from /usr/lib/ruby/2.7.0/logger.rb:389:in `new'
4: from /usr/lib/ruby/2.7.0/logger/log_device.rb:18:in `initialize'
3: from /usr/lib/ruby/2.7.0/logger/log_device.rb:83:in `set_dev'
2: from ./install:21:in `method_missing'
1: from ./install:21:in `map'
./install:22:in `block in method_missing': undefined method `path' for #<IO:<STDOUT>> (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
如果有人有小费就好了。
最好的,谢谢
我想在我的 CodeDeploy 管道中使用 AWS 系统管理器存储参数,删除我对 Lightsail 的最后一次提交。
? 1. 我创建了一个 SSM 参数:MySecureString。
参数被设定在SecureString与KMS加密集合上Actual account与alias/aws/ssm作为ID。
我SecureString的设置为:postgres://user:password@endpoint.rds.amazonaws.com:5432/myDatabase
? 2. 我创建了一个供 CodeDeploy 实例使用的 IAM 策略
前往 IAM 并创建了一个附加到的 JSON 策略MySpecificCodeDeployUser:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"ssm:GetParameter"
],
"Resource": [
"arn:aws:kms:*:<accountID>:key/alias/aws/ssm",
"arn:aws:ssm:us-east-1:<accountID>:parameter/MySecureString"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
? 3.测试MySpecificFCodeDeployUser访问SSM MySecureString:
键入aws configure以登录MySpecificFCodeDeployUser并尝试在我的本地计算机上运行此命令:
aws --region=us-east-1 ssm get-parameter --name …Run Code Online (Sandbox Code Playgroud) amazon-web-services aws-code-deploy amazon-kms amazon-lightsail aws-systems-manager
aws-code-deploy ×10
amazon-ec2 ×1
amazon-kms ×1
amazon-s3 ×1
aws-cli ×1
bash ×1
linux ×1
node.js ×1
ruby ×1
shell ×1
ubuntu-20.04 ×1