我正在阅读有关如何使用 AWS CodeDeploy 直接从 BitBucket 部署代码的AWS 博客文章。大部分内容都相当简单,直到我提到了 appspec.yml 文件。我知道其目的是描述要部署的内容以及如何部署,但我不明白如何为应用程序(而不仅仅是一个简单的页面)执行此操作。根据我以前的经验,会有一系列步骤,例如
我假设我上面编写的步骤与此处详细介绍的appspec.yml 文件中的“文件”和“挂钩”部分之间存在某种相关性。不幸的是,我无法在头脑中找出两者之间的映射,我发现的每一篇博客文章、在线文档和视频几乎都只是说“你需要这个文件”并指出一个移动一个静态文件的示例并且有一个或两个钩子。我不知道如何集成部署的实际构建部分。
任何人都可以提供一个示例 appspec.yml 文件来说明完整的应用程序部署,而不是简单的复制粘贴,或者向我指出一个可以更好地解释此过程的资源吗?
我正在尝试执行一个脚本,该脚本需要在 Ubuntu 14.04 ec2 实例上运行,只要实例或其在自动缩放组中的映像启动-
#!/bin/bash-x
REGION=`curl http://169.254.169.254/latest/dynamic/instance- identity/document|grep region|awk -F\" '{print $4}'`
sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev
cd
wget http://ftp.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
tar -xzvf ruby-2.3.1.tar.gz
cd ruby-2.3.1/
./configure
make
sudo make install
apt-get install apache2
cd /home/ubuntu
wget https://aws-codedeploy-$REGION.s3.amazonaws.com/latest/install
chmod +x ./install
./install auto
Run Code Online (Sandbox Code Playgroud)
但脚本永远不会运行。我去了 cloud-init-output.log 文件,以下是日志详细信息-
Cloud-init v. 0.7.5 running 'modules:final' at Mon, 12 Dec 2016 15:54:20 +0000. Up 36.92 seconds.
2016-12-12 15:54:20,432 - util.py[WARNING]: …Run Code Online (Sandbox Code Playgroud) bash amazon-web-services cloud-init ubuntu-14.04 aws-code-deploy
我使用 AWS CodeDeploy 处理部署过程。当 appspec.yml 中指定的脚本之一出现故障时,您会得到这个漂亮的小日志输出,返回 STDOUT:
但是,当所有事件都成功时,似乎没有办法看到STDOUT:
即使部署事件成功,有没有办法查看所有 STDOUT?
目前,我正期待着将自己的项目迁移到AWS,并且我已经将其上传到CodeCommit。下一步是利用 CodePipeline 和 CodeBuild 进行构建和测试。
我有一个用 Java 编写的简单微服务build.gradle
buildscript {
repositories {
mavenCentral()
gradlePluginPortal()
}
dependencies {
classpath 'org.springframework.boot:spring-boot-gradle-plugin:2.1.1.RELEASE'
classpath 'com.bmuschko:gradle-docker-plugin:4.2.0'
}
}
apply plugin: 'idea'
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'com.bmuschko.docker-spring-boot-application'
compileJava {
sourceCompatibility = 11
targetCompatibility = 11
}
group 'com.polubentcev.messenger'
version '1.0'
docker {
springBootApplication {
baseImage = 'openjdk:11-jre-slim'
}
}
repositories {
mavenLocal()
mavenCentral()
jcenter()
}
def messengerVersion = '1.0'
def springBootVersion = '2.1.2.RELEASE'
dependencies {
compile 'com.polubentcev.messenger:messenger-util-model:'+messengerVersion
compile …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 CodeDeploy 将一个简单的 golang Web 服务器部署到 EC2。部署失败并出现以下错误{\"error_code\":6,\"script_name\":\"scripts/start.sh\",\"message\":\"Script at specified location: scripts/start.sh failed to close STDOUT\"。CodeDeploy相关文件:
应用程序规范.yml
version: 0.0
os: linux
files:
- source: /main.go
destination: /app/
- source: /index.html
destination: /app/
- source: /config.json
destination: /app/
- source: /webserver.log
destination: /app/
hooks:
BeforeInstall:
- location: scripts/cleanup.sh
timeout: 180
runas: root
AfterInstall:
- location: scripts/build.sh
timeout: 180
runas: root
ApplicationStart:
- location: scripts/start.sh
timeout: 180
runas: root
Run Code Online (Sandbox Code Playgroud)
脚本/cleanup.sh
sudo rm /app -rf
sudo mkdir /app
sudo chown -R ec2-user:ec2-user …Run Code Online (Sandbox Code Playgroud) 我正在尝试在ubuntu上使用AWS codedeploy.代理无法启动.这是Userdata看起来像:
"UserData" : {
"Fn::Base64" : {
...
"# Install the AWS CodeDeploy Agent.\n",
"aws s3 cp 's3://aws-codedeploy-us-east-1/latest/codedeploy-agent.noarch.rpm' . \n",
"apt-get install alien",
"alien /root/codedeploy-agent.noarch.rpm",
"dpkg -i codedeploy-agent_1.0-2.727_all.deb
> codedeploy-agent.log"****
Run Code Online (Sandbox Code Playgroud) 我用git,s3和aws-codedeploy运行Jenkins.对于s3上的部署构建应用程序,它会触发aws codedeploy以用于后期部署过程.以上设置运行完美.
每当我运行jenkins工作时我都会遇到问题,我的工作一直克隆git repo然后将构建/内容的zip上传到s3然后aws-codedeploy在我的服务器上部署完整的zip.
但是我希望当我运行jenkin工作时,它只需要特定的git修订克隆不是为了完整的内容而只用它来构建部署.
请帮我解决上述问题.提前致谢...
我正在尝试使用 CodeDeploy 在 AWS 上部署我的应用程序。
这是我的 appspec.yml 文件:
version: 0.0
os: linux
files:
- source: /
destination: /home/ec2-user/todos // <== this dir already exists in my instance
hooks:
ApplicationStop:
...
BeforeInstall:
- location: scripts/prerequisites
timeout: 1200
runas: root
AfterInstall:
...
ApplicationStart:
...
ValidateService:
...
Run Code Online (Sandbox Code Playgroud)
我不断收到以下错误:
错误代码:ScriptMissing
脚本名称:脚本/先决条件
消息:指定位置不存在脚本:/opt/codedeploy-agent/deployment-root/2e557520-7ffe-4881-8c7c-991952c56e05/d-UWR3Z01FE/deployment-archive/scripts/prerequisites
日志尾部:LifecycleEvent - BeforeInstall
我的脚本存储在名为“scripts”的文件中,该文件位于我的应用程序的根目录中。
我错过了什么?还是做错了?如果有人能在正确的方向上帮助我,我将不胜感激!
在我新创建的 EC2 实例 (Ubuntu 14.04) 上安装 CodeDeploy 代理时,我rpm在执行安装或重新安装 AWS CodeDeploy 代理指南中的步骤时遇到了错误。
命令:
wget https://aws-codedeploy-us-west-2.s3.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto
Run Code Online (Sandbox Code Playgroud)
错误:
sudo: unable to resolve host ip-10-0-88-56
I, [2016-08-12T01:22:00.600236 #30533] INFO -- : Starting Ruby version check.
I, [2016-08-12T01:22:00.600470 #30533] INFO -- : Starting update check.
I, [2016-08-12T01:22:00.600565 #30533] INFO -- : Checking AWS_REGION environment variable for region information...
I, [2016-08-12T01:22:00.600645 #30533] INFO -- : Checking EC2 metadata service for region information...
I, [2016-08-12T01:22:00.627237 #30533] INFO …Run Code Online (Sandbox Code Playgroud) amazon-ec2 ×2
ubuntu ×2
bash ×1
bitbucket ×1
cloud-init ×1
deployment ×1
docker ×1
git ×1
go ×1
gradle ×1
java ×1
jenkins ×1
logging ×1
msbuild ×1
rpm ×1
stdout ×1
ubuntu-14.04 ×1