标签: aws-code-deploy

如何配置 appspec.yml 文件来部署应用程序而不是单个页面?

我正在阅读有关如何使用 AWS CodeDeploy 直接从 BitBucket 部署代码的AWS 博客文章。大部分内容都相当简单,直到我提到了 appspec.yml 文件。我知道其目的是描述要部署的内容以及如何部署,但我不明白如何为应用程序(而不仅仅是一个简单的页面)执行此操作。根据我以前的经验,会有一系列步骤,例如

  1. 从仓库拉取
  2. 针对 X 项目运行 MSBuild。
  3. 针对 X 项目运行测试。
  4. 将构建工件复制到 S3。
  5. 停止 Web 服务器上的应用程序池。
  6. 运行 cmd 文件来部署构建工件。
  7. 在 Web 服务器上启动应用程序池。
  8. 清理/构建后步骤。

我假设我上面编写的步骤与此处详细介绍的appspec.yml 文件中的“文件”和“挂钩”部分之间存在某种相关性。不幸的是,我无法在头脑中找出两者之间的映射,我发现的每一篇博客文章、在线文档和视频几乎都只是说“你需要这个文件”并指出一个移动一个静态文件的示例并且有一个或两个钩子。我不知道如何集成部署的实际构建部分。

任何人都可以提供一个示例 appspec.yml 文件来说明完整的应用程序部署,而不是简单的复制粘贴,或者向我指出一个可以更好地解释此过程的资源吗?

msbuild bitbucket amazon-web-services aws-code-deploy

1
推荐指数
1
解决办法
4641
查看次数

Ubuntu ec2 实例无法运行 userdata 脚本

我正在尝试执行一个脚本,该脚本需要在 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

1
推荐指数
1
解决办法
7866
查看次数

即使成功,如何获取 CodeDeploy 事件日志?

我使用 AWS CodeDeploy 处理部署过程。当 appspec.yml 中指定的脚本之一出现故障时,您会得到这个漂亮的小日志输出,返回 STDOUT:

在此处输入图片说明

但是,当所有事件都成功时,似乎没有办法看到STDOUT:

在此处输入图片说明

即使部署事件成功,有没有办法查看所有 STDOUT?

logging stdout amazon-web-services aws-code-deploy

1
推荐指数
1
解决办法
778
查看次数

如何在 buildspec.yml 中正确定义阶段和命令?

目前,我正期待着将自己的项目迁移到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)

java gradle amazon-web-services docker aws-code-deploy

1
推荐指数
1
解决办法
1835
查看次数

使用 CodeDeploy EC2 部署 golang 应用程序

我正在尝试使用 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)

go amazon-web-services aws-code-deploy

1
推荐指数
1
解决办法
1169
查看次数

有人在Ubuntu上成功使用过codedeploy吗?

我正在尝试在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)

ubuntu aws-code-deploy

0
推荐指数
1
解决办法
1685
查看次数

如何在Jenkins中使用特定修订来检出git repo

我用git,s3和aws-codedeploy运行Jenkins.对于s3上的部署构建应用程序,它会触发aws codedeploy以用于后期部署过程.以上设置运行完美.

每当我运行jenkins工作时我都会遇到问题,我的工作一直克隆git repo然后将构建/内容的zip上传到s3然后aws-codedeploy在我的服务器上部署完整的zip.

但是我希望当我运行jenkin工作时,它只需要特定的git修订克隆不是为了完整的内容而只用它来构建部署.

请帮我解决上述问题.提前致谢...

git jenkins aws-code-deploy

0
推荐指数
1
解决办法
1万
查看次数

CodeDeploy 脚本在指定位置不存在 - appspec.yml

我正在尝试使用 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”的文件中,该文件位于我的应用程序的根目录中。

我错过了什么?还是做错了?如果有人能在正确的方向上帮助我,我将不胜感激!

deployment amazon-ec2 amazon-web-services aws-code-deploy

0
推荐指数
1
解决办法
3946
查看次数

在 AWS EC2 上安装 CodeDeploy 代理时出错

在我新创建的 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)

ubuntu rpm amazon-ec2 amazon-web-services aws-code-deploy

-1
推荐指数
1
解决办法
1385
查看次数