标签: devops

Docker 使用 entrypoint.sh 传递参数 Docker 入口点

我试图将一个参数传递给我的 docker 入口点,但它失败了,这些是我遵循的步骤

Docker Build Command : docker build -t "DBDNS" --build-arg  db=sample
Run Code Online (Sandbox Code Playgroud)

在 Dockerfile 中

ARG db
ENV database ${db}
ENTRYPOINT ["/docker/entrypoint.sh", ${db}]
Run Code Online (Sandbox Code Playgroud)

此 bash 的错误:1: bash: [/var/www/html/.docker/entrypoint.sh,: not found

实际上文件存在并为 entrypoint.sh 传递参数导致问题。任何线索

-----------ENTRYPOINT---------------------
#!/usr/bin/env bash

echo "Entrypoint stuff"
echo "----------------"
echo "NEW APP DB CLONE FROM  $1"
echo "sites/files permission changes"
echo "--------------------------------------"
Run Code Online (Sandbox Code Playgroud)

docker devops

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

如何使用kops恢复kubernetes集群?

如何使用 kops 恢复 kubernetes 集群?我的 s3 存储桶中有 kubernetes 状态文件。

有没有办法使用kops恢复kubernetes集群?

kubernetes devops kops

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

Terraform 嵌套模块调用和输出

我正在处理基础设施配置,所以我将模块称为嵌套。

有我的文件系统树。

   ??? main.tf
   ??? modules
       ??? client.tf
       ??? in
          ??? main.tf
Run Code Online (Sandbox Code Playgroud)

我的文件显示如下。

   #main.tf 
   module "my_vpc" {
          source = "./modules"
   }

   # modules/client.tf
   provider "aws" {
          region = "us-east-2"
   }

   module "inner" {
          source = "./in"
   }

  # in/main.tf

  provider "aws" {
        region = "us-east-2"
  }

  resource "aws_vpc" "main" {
        cidr_block = "10.0.0.0/16"
  }

  output "vpc_id" {
      value = "${aws_vpc.main.id}"
  }
Run Code Online (Sandbox Code Playgroud)

所以就我而言,我想从 in/main.tf 中的资源创建模块中获取输出。但是当我运行 terraform apply 命令时,没有输出。

我该如何解决这个问题?

amazon-web-services terraform devops infrastructure-as-code

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

将 cURL 命令转换为 ansible

我有两个 cURL 命令,我试图将它们转换为 Ansible。它们看起来像这样:

curl -v -ik --header "Content-Type: application/json" --header "X-Application-Username: my_username" --header "X-Application-Password: my_password" --request PUT --data '{"enabled":"False","persisted" : true,"concurrentExecution" : false, "type" : "cron","schedule" : "0/10 * * * * ?","invokeService" : "provisioner","invokeContext" : { "action" : "someAction","source" : "path/to/resource"}}' "https://localhost:8443/path/to/url/that/I/need"


curl -v -ik --header "Content-Type: application/json" --header "X-Application-Username: my_username" --header "X-Application-Password: my_password" --request PUT --data '{"enabled":"True","persisted" : true,"concurrentExecution" : false, "type" : "cron","schedule" : "0/10 * * * * ?","invokeService" : "provisioner","invokeContext" : { "action" : …
Run Code Online (Sandbox Code Playgroud)

curl ansible devops

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

Terraform 计划自动化中的人类可读输出

我已经通过 github/jenkins 设置了一个自动化,以通过 jenkins 发布 repo 的 terraform 计划的输出,作为对 github 中拉取请求的评论。整个编排效果很好,除了 terraform plan 的输出不是人类可读的,并且在这种自动化中没有为您提供在终端中运行时的样子。我使用了几种方法,例如将 terraform show 用于计划文件,然后将其抓取到自定义文件中并将其作为评论发布到 GitHub PR 中。在每种情况下,输出都包含一些二进制字符。

我什至使用了 terraform-plan-parser https://github.com/lifeomic/terraform-plan-parser 但这不适用于 terraform 0.12 并且与以下问题有关:- https://github.com/lifeomic /terraform-plan-parser/issues/31

在自动化中检索任何 terraform 计划的输出以便可以引用它的最佳方法是什么,但是需要在应用完成之前进行检查。在我看来,它只适用于终端。

这里的任何帮助或建议将一如既往地受到高度赞赏。

terraform devops

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

版本“extensions/v1beta1”中的种类“DaemonSet”没有匹配项

我正在尝试在主节点上安装 flannel 并出现以下错误。

无法识别“ https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml ”:“extensions/v1beta1”版本中的“DaemonSet”种类没有匹配项

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml

配置文件:

apiVersion: kubeadm.k8s.io/v1beta1 kind: ClusterConfiguration 网络: podSubnet: 10.244.0.0/16 apiServerExtraArgs: service-node-port-range: 8000-31274 ~

kubernetes devops flannel

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

在一个容器中运行多个类似的进程有意义吗?

简要背景以提供有关该问题的上下文。

目前,我和我的团队正在将我们的微服务迁移到 k8s,以减少必须维护多个部署工具和管道的工作。

我们计划迁移的微服务之一是 ETL worker,它监听 SQS 上的消息并执行多阶段处理。

它是使用 PHP Laravel 构建的,我们使用 supervisord 来控制在 aws ec2 上的每个工作实例上运行多少进程。每个进程基本上都会执行一个 laravel 命令来轮询不同的队列以获取新消息。我们还定期调整进程数量,以最大限度地利用每个实例的计算能力。

所以问题是:

迁移到 k8s 时,这种部署方法是否仍然可行?是否仍然需要“最大化”计算使用率?我们是否最好使用“容器方式”在每个容器中运行 1 个进程(不确定这个工具叫什么。runit?)

我从多个来源(例如https://devops.stackexchange.com/questions/447/why-it-is-recommended-to-run-only-one-process-in-a-container)读到,理想的是一个容器只运行 1 个进程。还有恢复崩溃进程的情况,以及运行 supervisord 可能会如何干扰容器执行恢复的方式。但我不太确定它是否适用于我们的用例。

containers docker kubernetes devops

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

用于具有多种项目类型的解决方案的 Azure Devops Build Pipeline

我有一个包含以下内容的解决方案

  • 几个Asp.net项目(微服务和网关)

  • .net Core + Angular 8(前端)

当我在 Visual Studio 中点击构建按钮时,每个项目都被构建。我创建了一个 repo 并上传了解决方案。现在我试图弄清楚如何设置管道来构建每个微服务并将它们部署到单个 Azure Web 应用程序。

我有以下用于 Angular 项目的管道。我应该像这样定义单独的任务吗?有没有办法在这里复制visual studio build?

# ASP.NET
# Build and test ASP.NET projects.
# Add steps that publish symbols, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/apps/aspnet/build-aspnet-4

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: Npm@1
  inputs:
    command: install
    workingDir: 'd:\a\1\s\Ok.Web\ClientApp'

- task: Npm@1
  inputs:
    command: custom
    workingDir: 'd:\a\1\s\Ok.Web\ClientApp'
    customCommand: run build …
Run Code Online (Sandbox Code Playgroud)

azure devops azure-devops angular8

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

Windows 10 中 jfrog-artifactory-oss-7.3.2 中的默认端口 (8081) 更改为不同的端口

我已经在 Windows 10 中安装了 jfrog-artifactory-oss-7.3.2。默认端口已更改为以下文件中的 8285。(8285端口可用)

  1. C:\jfrog-artifactory-oss-7.3.2-windows\artifactory-oss-7.3.2\app\artifactory\tomcat\conf/server.xml
  2. C:\jfrog-artifactory-oss-7.3.2-windows\artifactory-oss-7.3.2\app\misc\tomcat/server.xml.template
  3. C:\jfrog-artifactory-oss-7.3.2-windows\artifactory-oss-7.3.2\app\misc\tomcat/server.xml

一旦执行 artifactory.bat 服务器就可以正常运行了。我在 catalina 日志中没有看到任何日志错误,无论是访问、访问服务等日志文件。

但浏览器给出以下错误。

***** HTTP 状态 404 – 未找到类型状态报告消息 /ui/ 描述 源服务器未找到目标资源的当前表示或不愿意透露该表示存在。Apache Tomcat/8.5.51 *****

如果我改回默认端口(8081),它将完美运行。

如果有人遇到过这样的问题,请分享您的想法和解决方案。

deployment port repository artifactory devops

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

如何在 Azure DevOps YAML 的条件下使用数组

我有一个模板,它为每个环境定义了一组分支,以便我可以控制哪些分支导致部署到特定环境。例如,我想要部署到生产的唯一分支是 master,但对于 UAT,我想要 release、hotfix 和 master。我已经设置了一个父模板,它在“每个”循环中调用下游模板。在部署模板中,我想将允许的分支数组与当前分支进行比较,以确定是否继续。这是传递分支数组的父模板的一部分:

- template: pipeline-templates/environment-pipeline.yml
  parameters:
    envs: 
      - name: devtest
        branches: 
        - 'refs/heads/master'
        - 'refs/heads/develop'
        - 'refs/heads/hotfix/'
        - 'refs/heads/release/'
      - name: nightly
        branches: 
        - 'refs/heads/master'
        - 'refs/heads/develop'
        - 'refs/heads/hotfix/'
        - 'refs/heads/release/'
      - name: qa
        branches: 
        - 'refs/heads/master'
        - 'refs/heads/hotfix/'
        - 'refs/heads/release/'
      - name: prod
        branches: 
        - 'refs/heads/master'
Run Code Online (Sandbox Code Playgroud)

environment-pipeline.yml下面,然后调用每个环境的部署模板。

parameters:
  - name: envs # collection of environments to create/deploy
    type: object
    default:
      env:
        name: ''
        branches: []

stages:
- ${{ each env in parameters.envs }}: …
Run Code Online (Sandbox Code Playgroud)

yaml azure devops

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