标签: continuous-deployment

当我进行部署插槽交换时,为什么azure会重新启动网站?

我在Azure网站上运行了一个.net 4.5网站.我已经设置了暂存部署.我对这两个站点进行了预热,然后运行交换过程(来自azure portal和Azure powershell).无论我尝试什么交换过程重新启动我的网站(两者),他们需要大约3分钟启动.

我的印象是,部署交换应该让网站"保持温暖",没有停机时间?我的网站大约3分钟不可用!

据我所知,生产和临时插槽具有相同的应用程序设置等.

任何建议或指示将不胜感激.

continuous-integration azure continuous-deployment azure-web-sites

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

Docker和Ansible如何结合起来实现Continuos Delivery/Continuous Deployment

我是配置管理和部署工具的新手.我必须为我曾经掌握过的最有趣的项目之一实施持续交付/持续部署工具.

首先,单独地,我很自在AWS,我知道它是什么Ansible,它背后的逻辑和目的.我没有相同程度的理解,Docker但我明白了.我经历了很多互联网资源,但我无法了解全局.

我一直在努力的是他们如何融合在一起.使用Ansible,我可以管理我的基础设施作为代码; 构建EC2实例,安装包......我甚至可以通过拉动代码,修改配置文件和启动Web服务器来部署完整的应用程序.Docker它本身就是一个打包应用程序的工具,并确保它可以在任何部署它的地方运行.

我的问题是:

Docker(或Ansible和Docker)如何扩展持续集成流程!?

假设我们有一个源代码存储库,团队成员完成了一项功能,他们推动了他们的工作.Jenkins检测到这一点,运行所有接受/单元/集成测试套件,如果它们全部通过,则将其声明为稳定版本.Docker如何适合这里?我的意思是当团队推动他们的工作时,Jenkins是否必须在应用程序中提取编码的Docker文件源,构建应用程序的映像,启动容器并针对它运行所有测试,或者以经典方式运行测试,如果一切都很好然后它从Docker文件构建Docker镜像并将其保存在私人场所?Jenkins应该使用xyz标记最终图像吗?

Docker容器配置:

假设我们有一个Jenkins存储在某处的图像,如何处理将相同的图像部署到不同的环境,甚至是不同的配置参数(Vhosts配置,数据库主机,队列URL,S3端点等......)最灵活的是什么如何在不破坏Docker原则的情况下处理这个问题?这些配置是在构建时还是基于它的容器启动时支持在映像中,如果是这样,它们是如何注入的?

Ansible和Docker:

Ansible提供了一个Docker管理Docker容器的模块.假设我解决了上面提到的问题,当我想部署我的应用程序的新版本xtz时,我告诉Ansible从存储它的位置拉出该图像,启动应用程序容器,以便如何注入配置设置!?Ansible是否必须在运行之前登录Docker镜像(这对我来说听起来很疯狂)并且使用其Jinja2模板与经典主机相同!?如果没有,这是如何处理的?!

对不起,如果这是一个很长的问题,或者我拼错了什么,但这是我大声思考的问题.过去两周我被封锁了,我无法弄清楚正确的工作流程.我希望这能成为未来读者的参考.

请阅读您的经验和解决方案非常有用,因为这看起来像是一个常见的工作流程.先感谢您.任何帮助深表感谢.

amazon-web-services continuous-deployment continuous-delivery ansible docker

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

使用TeamCity持续部署

我最近在TeamCity中设置了CI服务器,现在想要将其用于下一步,即持续部署.基本上,我们为每个客户提供一套宁静的服务和大约3个Web应用程序.所有客户都获得3种环境QA,UAT和Prod.我们希望能够在测试通过后自动部署我们的构建.我不是在寻找自定义脚本选项来做到这一点.我见过很多SO.我们正在寻找的是像UDeploy这样的解决方案,但价格较低.有人知道UDeploy的替代品吗?或者与TeamCity一起使用的其他持续部署插件?

谢谢,

deployment teamcity continuous-deployment

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

如何获得运行时访问正在运行的Clojure应用程序的版本号?

我有一个用Clojure编写的Web服务,该服务不断交付.为了使我们的自动部署工具能够知道已部署了哪个版本的代码库,Web服务应该提供一种方法来查询它是哪个版本.该版本被声明为Leiningen构建工具中项目设置的一部分,如下所示:

(defproject my-web-service "1.2-SNAPSHOT"
  ; ... rest of project.clj
  )
Run Code Online (Sandbox Code Playgroud)

代码库打包为JAR文件.

我们的开发人员不希望在每次提交时增加版本号.相反,我们希望只要在我们的持续集成服务器(在本例中为Jenkins)上触发新构建,它就会自动递增.例如,当版本控制签入提示此代码库的第四十二个版本时,版本是1.2.42.

对于任何已构建和部署的特定JAR,我希望允许以某种方式查询版本号(例如,使用HTTP请求,但这是一个实现细节).响应应包括字符串1.2.42.

如何使正在运行的应用程序可以使用该版本号?

(可能重复,但不包括Jenkins方面:在应用程序中嵌入来自leiningen项目的版本字符串)

continuous-integration clojure leiningen continuous-deployment jenkins

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

如何在travis部署脚本中运行aws configure?

我试图让travis-ci运行一个自定义部署脚本,用于awscli将部署推送到我的登台服务器.

在我的.travis.yml文件中,我有这个:

before_deploy:
  - 'curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"'
  - 'unzip awscli-bundle.zip'
  - './awscli-bundle/install -b ~/bin/aws'
  - 'export PATH=~/bin:$PATH'
  - 'aws configure'
Run Code Online (Sandbox Code Playgroud)

我已经设置了以下环境变量:

AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION
Run Code Online (Sandbox Code Playgroud)

travis-ciWeb界面中使用正确的值.

但是当aws configure运行时,它会停止并等待用户输入.如何告诉它使用我定义的环境变量?

configuration amazon-web-services continuous-deployment travis-ci aws-cli

16
推荐指数
2
解决办法
6917
查看次数

GitLab CI手动启动作业(部署)

是否可以将gitlab ci作业标记为手动启动?

我需要它来部署应用程序,但我想决定它是否将被部署

continuous-deployment continuous-delivery gitlab gitlab-ci gitlab-ci-runner

15
推荐指数
2
解决办法
8977
查看次数

在 GitHub Actions 上的构建阶段安装私有存储库

我正在使用 GitHub Actions 部署到 Azure。在这个项目中,我使用我们自己的私有存储库,该存储库托管在 GitHub 上。这些存储库将在构建期间安装,它们的链接存储在 中requirements.txt,例如:

git+ssh://git@github.com/org-name/package-name.git
Run Code Online (Sandbox Code Playgroud)

在本地,安装需求没有问题,因为我可以通过 SSH 访问这些私有存储库。但是我如何在 GitHub 操作中构建期间访问这些内容。

我收到错误:

Collecting git+ssh://****@github.com/org-name/package-name.git (from -r requirements.txt (line 1))
  Cloning ssh://****@github.com/org-nam/package-name.git to /tmp/pip-req-build-9nud9608
ERROR: Command errored out with exit status 128: git clone -q 'ssh://****@github.com/org-name/package-name.git' /tmp/pip-req-build-9nud9608 Check the logs for full command output.
Error: Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为它是一个私人存储库。

github continuous-deployment github-actions

15
推荐指数
2
解决办法
6355
查看次数

Github 的“环境”和“存储库”秘密之间的区别?

在 GitHub文档中,它指出机密的优先级从低到高 ( Environment> Repository> Organization),它还指出Organization机密可用于组织中的所有存储库。但它没有说明任何关于EnvironmentRepository秘密的东西。

我的问题是:

  1. EnvironmentRepositorysecret和有什么不一样?
  2. Environment什么时候应该使用秘密?
  3. Repository什么时候应该使用秘密?

continuous-integration github environment-variables continuous-deployment github-actions

15
推荐指数
2
解决办法
1762
查看次数

自动验收测试 - UI或API?

我在过去几天一直在研究自动验收测试,了解BDD&JBehave,FitNesse&Slim,Selenium和WebDriver等.

我刚刚看到这个,他演示了如何使用FitNesse的编写和维护这样的测试视频由罗伯特C.马丁.接近尾声时,有人问这些测试是否会触及用户界面.Martin接着解释说,对UI的耦合验收测试成本很高,因为对UI的更改非常频繁.我还可以猜测,这些测试只能在UI开发之后编写,这将使测试人员按照定义落后于计划.

我不得不问:替代方案是什么?Martin似乎暗示测试应该是一个隐藏的层,它会操纵应用程序的业务层.我的理解是,这需要额外的工作,更不用说它会暴露一个新的API,需要在生产环境中保护一次.

可以通过应用程序服务访问业务层就足够了吗?

你有什么经验吗?

感谢分享!

automated-tests qa continuous-deployment

14
推荐指数
2
解决办法
5364
查看次数

詹金斯未能建立下游工作

我正试图从我目前的工作中触发下游工作

pipeline {
  stages {
    stage('foo') {
      steps{
        build job: 'my-job', propagate: true, wait: true
      }
     }
  }
}
Run Code Online (Sandbox Code Playgroud)

目的是等待工作结果,然后根据结果失败或成功.詹金斯总是对这条消息失败Waiting for non-job items is not supported.上面提到的工作没有任何参数,并且使用multibranch管道插件定义为我的其余工作.

我能想到的是,这种类型的jenkins项目不支持作为构建步骤输入,但这似乎违反直觉并且会被证明对我来说是一种阻碍.任何人都可以确认这是否确实如此?

如果是这样,有人可以提出任何变通方法吗?

谢谢

continuous-integration continuous-deployment jenkins

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