为了自动化我们的部署,我想基于给定的ChangeSetId重建应用程序.一旦这个构建完成,我想得到构建的工件(.exe),所以我们可以部署它们.为了这个问题,我将重点放在"从构建中获取工件"部分.
出于DevOps的目的,我想使用PowerShell,因为它应该能够访问TFS API库,因为MS建议使用它.
环境
我在我们的On Premise TFS 2015服务器上设置了Builds(它工作正常) - 并在此构建之后添加了VSO任务 'Publish artifacts'.到现在为止还挺好.发布的工件将存储在服务器上,这基本上意味着我必须下载连接到构建的工件 - 每个现有的构建都将链接其工件 - 这比我书中的UNC更好.
没有来我的挑战; 我如何以程序方式访问这些工件,第3步?
我刚刚用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
参数.
如何解决这个问题?
我们最终会得到数十个微服务(大多数是基于Akka的),我不确定如何最好地管理他们的部署.具体而言,它们被构建为彼此独立并且尽可能专门和分布.
我的问题源于这样一个事实:它们都对于自己的JVM来说太小了; 即使我们将它们托管在AWS nano实例上,如果您考虑冗余,我们仍然会使用大约40台机器,并且根本不需要如此高的数量.三个中型实例可以(并且确实)轻松处理整个工作负载.
目前,我只是随机地将它们分组到"容器"应用程序中,然后在较大的JVM上运行这些容器应用程序.
但是,必须有一个更好的方法.我不知道Akka的任何应用程序服务器,你可以"部署演员",所以我想了解其他人如何在生产中运行Akka微服务(特别是如何管理部署).
这可能不仅限于Scala和Akka,但大多数其他平台都有专门的应用服务器来部署这些东西.
我是码头工人的新手,所以这对你来说似乎是非常基本的 - 无论如何 - 它此刻吓坏了我.
我决定在容器上开发一个新的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) 我是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中一个众所周知的错误,但我安装了最新版本。有任何想法吗?
我的问题是关于如何在项目中组织正面和背面.据我所知,有两种方法可以做到这一点
uglify
,concat
,compilation
(typescript
到javascript
)...Access-Control-Allow-Origin
.这样,正面和背面可以部署在2个不同的主机中.要使用的工具是npm和gulp/grunt目前,选项2和3没有很多文档.此外,该typescript
插件还没有准备好.
哪种方式更适合scala play + angular2开发?
随着.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) 在普罗米修斯配置中,我有以下规格的工作:
- 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变量的作用是什么?
期望的行为如下:
所需的解决方案将有两个管道,第二个管道由第一个管道的成功触发。
如果您有任何其他想法,我很高兴听到!
提前致谢
amazon-web-services devops aws-codecommit aws-codepipeline serverless
运行时警告: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
一周前它工作正常,现在我开始遇到问题。
devops ×10
azure-devops ×2
.net-core ×1
akka ×1
angularjs ×1
ansible ×1
deployment ×1
docker ×1
gevent ×1
greenlets ×1
jvm ×1
kubernetes ×1
minikube ×1
msbuild ×1
powershell ×1
prometheus ×1
provisioning ×1
python ×1
sbt ×1
scala ×1
serverless ×1
tfs-2015 ×1
typescript ×1
virtualbox ×1