标签: devops

从Powershell启动vNext构建并获取工件

为了自动化我们的部署,我想基于给定的ChangeSetId重建应用程序.一旦这个构建完成,我想得到构建的工件(.exe),所以我们可以部署它们.为了这个问题,我将重点放在"从构建中获取工件"部分.

出于DevOps的目的,我想使用PowerShell,因为它应该能够访问TFS API库,因为MS建议使用它.

环境

我在我们的On Premise TFS 2015服务器上设置了Builds(它工作正常) - 并在此构建之后添加了VSO任务 'Publish artifacts'.到现在为止还挺好.发布的工件将存储在服务器上,这基本上意味着我必须下载连接到构建的工件 - 每个现有的构建都将链接其工件 - 这比我书中的UNC更好.

没有来我的挑战; 我如何以程序方式访问这些工件,第3步?

  1. 获取ChangeSetId的源代码
  2. 具有给定配置的MSBuild应用程序
  3. 使用PowerShell获取构建工件
  4. 使用版本管理(Powershell)部署到环境

msbuild powershell tfs-2015 devops

11
推荐指数
2
解决办法
4410
查看次数

Ansible使用systemd而不是服务模块

我刚刚用Ansible 2.2和Debops弄湿了,我遇到了以下问题.我有一个主机test-host,我部署了一个MySQL服务器(使用geerlingguy.mysql).

该角色使用以下处理程序重新启动服务:

---
- name: restart mysql
  service: "name={{ mysql_daemon }} state=restarted sleep=5"
Run Code Online (Sandbox Code Playgroud)

我认为,它使用Ansibles 服务模块来重启服务器.但是,失败了:

unsupported parameter for module: sleep
Run Code Online (Sandbox Code Playgroud)

所以只是为了排除那个自定义角色的任何怪异,我试图像这样直接执行模块:

ansible test-host -b -m service -a 'name=mysql sleep=5 state=restarted'
Run Code Online (Sandbox Code Playgroud)

结果相同.

使用更详细的输出显示运行Ansible(除其他外):

Running systemd
Using module file /usr/local/lib/python2.7/site-packages/ansible-2.2.0-py2.7.egg/ansible/modules/core/system/systemd.py
Run Code Online (Sandbox Code Playgroud)

因此,似乎使用该systemd模块而不是service(查看模块显示它确实是别名service).并且,瞧,systemd不支持sleep参数.

如何解决这个问题?

ansible devops

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

部署Scala/Akka微服务的规范方法是什么?

我们最终会得到数十个微服务(大多数是基于Akka的),我不确定如何最好地管理他们的部署.具体而言,它们被构建为彼此独立并且尽可能专门和分布.

我的问题源于这样一个事实:它们都对于自己的JVM来说太小了; 即使我们将它们托管在AWS nano实例上,如果您考虑冗余,我们仍然会使用大约40台机器,并且根本不需要如此高的数量.三个中型实例可以(并且确实)轻松处理整个工作负载.

目前,我只是随机地将它们分组到"容器"应用程序中,然后在较大的JVM上运行这些容器应用程序.

但是,必须有一个更好的方法.我不知道Akka的任何应用程序服务器,你可以"部署演员",所以我想了解其他人如何在生产中运行Akka微服务(特别是如何管理部署).

这可能不仅限于Scala和Akka,但大多数其他平台都有专门的应用服务器来部署这些东西.

deployment jvm scala akka devops

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

docker-compose:如何立即查看文件更改(开发时)

我是码头工人的新手,所以这对你来说似乎是非常基本的 - 无论如何 - 它此刻吓坏了我.

我决定在容器上开发一个新的web项目,当然我想到了docker.完成教程并阅读一些Dockerfiles之后,我决定使用docker-compose.

我想要多个撰写文件,一个用于开发,一个用于生产等等.现在我设法使用3种不同的服务来编排基本的php/mysql/redis应用程序.主要的应用程序是基于PHP并在项目src中维护.Mysql和Redis只是配置了基本映像,不需要任何业务逻辑.

我可以建造容器并将它们带出来

建立:

docker-compose -f compose-Development.yml build
Run Code Online (Sandbox Code Playgroud)

达:

docker-compose -f compose-Development.yml up
Run Code Online (Sandbox Code Playgroud)

主应用程序容器中的许多文件都是由gulp(模板,css等)构建的,代码将存在于javascript和php中.

我注意到,当我更改文件时,我的应用状态不会改变.我将不得不重建并重新启动我的容器.

有了Vagrant的一些经验,我会在开发期间寻找某种共享源.但是我如何实现这一目标呢?

我的应用程序Vagrantfile(用于开发)看起来像这样:

FROM webdevops/php-nginx:7.1
COPY ./ /app
COPY docker/etc/ /opt/docker/etc

# php config...
RUN ln -sf /opt/docker/etc/php/php.Development.ini /opt/docker/etc/php/php.ini

WORKDIR /app/
EXPOSE 80
Run Code Online (Sandbox Code Playgroud)

撰写文件:

version: "3"
services:

  app:
    build:
      context: .
      dockerfile: Dockerfile.Development
    links:
      - mysql
      - redis
    volumes:
      - ./data/fileadmin:/app/public/fileadmin
      - ./data/uploads:/app/public/uploads
    env_file:
      - docker/env/All.yml
      - docker/env/Development.yml
    ports:
      - "80:80"
    restart: always

  # Mysql Container
  mysql:
    build:
      context: docker/mysql/
      dockerfile: …
Run Code Online (Sandbox Code Playgroud)

provisioning docker docker-compose devops

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

如何解决minikube start的VM问题?

我是Kubernetes的初学者,并从教程开始。我安装了VM,并期望能够通过使用以下命令来启动集群:

minikube start
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误:

Starting local Kubernetes v1.10.0 cluster...
Starting VM...
E0911 13:34:45.394430   41676 start.go:174] Error starting host: Error 
creating host: Error executing step: Creating VM.
: Error setting up host only network on machine start: The host-only 
adapter we just created is not visible. This is a well known 
VirtualBox bug. You might want to uninstall it and reinstall at least 
version 5.0.12 that is is supposed to fix this issue.
Run Code Online (Sandbox Code Playgroud)

它说这是Virtualbox中一个众所周知的错误,但我安装了最新版本。有任何想法吗?

virtualbox kubernetes devops minikube

11
推荐指数
2
解决办法
6954
查看次数

如何结合play框架和angular2?

我的问题是关于如何在项目中组织正面和背面.据我所知,有两种方法可以做到这一点

  1. 使用web-jars依赖项和sbt插件将前端和后端组合在一个项目中.因此,SBT将运行像所有必要的操作uglify,concat,compilation(typescriptjavascript)...
  2. 将正面和背面分开并单独展开.在这种情况下,后端必须添加标头Access-Control-Allow-Origin.这样,正面和背面可以部署在2个不同的主机中.要使用的工具是npm和gulp/grunt
  3. 混合1和2.仍然使用相同的存储库用于正面和背面,但正面是由外部工具构建和生成的,如npm,bower和gulp/grunt

目前,选项2和3没有很多文档.此外,该typescript插件还没有准备好.

哪种方式更适合scala play + angular2开发?

sbt playframework angularjs typescript devops

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

DevOps托管管道无法构建.NET Core 2.2

随着.NET Core 2.2发布,我希望能够在我们的Microsoft托管的DevOps(Azure)管道中构建这样的项目.但恢复步骤失败,说不支持2.2:

2018-12-11T14:57:49.0856135Z        "D:\a\1\s\My.Project\My.Project.csproj" (Restore target) (1) ->
2018-12-11T14:57:49.0857867Z        "D:\a\1\s\MyProject.EntityFramework\MyProject.EntityFramework.csproj" (_GenerateRestoreGraphProjectEntry target) (2:3) ->
2018-12-11T14:57:49.0858029Z        (_CheckForUnsupportedNETCoreVersion target) -> 
2018-12-11T14:57:49.0858191Z          C:\Program Files\dotnet\sdk\2.1.402\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(137,5): error NETSDK1045: The current .NET SDK does not support targeting .NET Core 2.2.  Either target .NET Core 2.1 or lower, or use a version of the .NET SDK that supports .NET Core 2.2. [D:\a\1\s\MyProject.EntityFramework\MyProject.EntityFramework.csproj]
2018-12-11T14:57:49.0858287Z 
2018-12-11T14:57:49.0858338Z 
2018-12-11T14:57:49.0858398Z        "D:\a\1\s\My.Project\My.Project.csproj" (Restore target) (1) ->
2018-12-11T14:57:49.0858504Z        "D:\a\1\s\My.Project\My.Project.csproj" (_GenerateRestoreGraphProjectEntry target) (1:5) ->
2018-12-11T14:57:49.0858645Z          C:\Program Files\dotnet\sdk\2.1.402\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(137,5): error NETSDK1045: The …
Run Code Online (Sandbox Code Playgroud)

.net-core devops azure-devops azure-devops-hosted-agent

10
推荐指数
2
解决办法
2530
查看次数

Prometheus scrape_timeout的使用

在普罗米修斯配置中,我有以下规格的工作:

- job_name: name_of_my_job
     scrape_interval: 5m
     scrape_timeout: 30s
     metrics_path: /metrics
     scheme: http
Run Code Online (Sandbox Code Playgroud)

创建指标的脚本需要 3 分钟才能完成,但从普罗米修斯我看不到指标。scrape_timeout变量的作用是什么?

configuration devops prometheus

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

如何使用 AWS CodeCommit、CodeBuild、CodePipeline 根据另一个管道成功调用管道

期望的行为如下:

  • 推送代码更改
  • 为每个无服务器组件运行单元测试
  • 如果所有测试均成功,则将组件部署到暂存环境中并将构建标记为成功
  • 听取此更改并使用 Gherkin 运行验收测试套件
  • 如果所有测试均成功,则将组件部署到 UAT/Prod 环境中并将构建标记为成功

所需的解决方案将有两个管道,第二个管道由第一个管道的成功触发。

如果您有任何其他想法,我很高兴听到!

提前致谢

amazon-web-services devops aws-codecommit aws-codepipeline serverless

10
推荐指数
2
解决办法
6897
查看次数

Greenlet 运行时错误和在 docker 中部署的应用程序不断启动所有工作人员

运行时警告:greenlet.greenlet 大小已更改,可能表示二进制不兼容。预期来自 C 头文件的 144,来自 PyObject 的 152

所有工人都被解雇了。

2020-09-28T14:09:41.864089908Z [2020-09-28 14:09:41 +0000] [31] [INFO] 使用 pid 启动 worker:31 2020-09-28T14:09:4429309303 -28 14:09:43 +0000] [32] [INFO] 使用 pid 启动 worker:32 2020-09-28T14:09:44.317436676Z [2020-09-28 14:09:44 +0000] [33] INFO] 使用 pid 启动 worker:33 2020-09-28T14:09:44.795236476Z [2020-09-28 14:09:44 +0000] [34] [INFO] 使用 pid 启动 worker:34

一周前它工作正常,现在我开始遇到问题。

python gevent greenlets devops azure-devops

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