标签: devops

使用服务主体 - invalid_client 从发布管道运行 Azure CLI 脚本

我有一个 Azure CLI 脚本,它在 Cloud Shell 中运行得很好,但当我尝试将其包含在 devops 发布管道中时遇到了麻烦。出于调试目的,我已将脚本简化为仅作为服务主体登录,然后检索版本...

az login --service-principal -u http://[Service Principal name] -p [Service Principal password] --tenant [Service Principal tenant GUID]
az --version
Run Code Online (Sandbox Code Playgroud)

...但它仍然会出现同样的错误。

以下是我的Azure CLI任务的属性:

脚本类型:Shell
脚本位置:Inline script
内联脚本:[如上所述]
脚本参数:
访问脚本中的服务主体详细信息:false
使用全局 Azure CLI 配置:false
工作目录:
标准错误失败:false
已启用:true
出现错误时继续:false*
环境变量:

错误是:

2020-06-15T12:46:39.8710944Z ##[错误]错误代​​码:[1]
2020-06-15T12:46:39.8724737Z ##[错误]错误:Azure 登录失败
2020-06-15T12:46:39.8728448 Z ##[error]脚本失败,出现错误:获取令牌请求返回 http 错误:401 和服务器响应:{“error”:“invalid_client”,“error_description”:“AADSTS7000222:提供的客户端密钥已过期。请访问 Azure用于为应用程序创建新密钥的门户,或考虑使用证书凭据来提高安全性: https: //learn.microsoft.com/azure/active-directory/develop/active-directory-certificate-credentials
跟踪 ID:d0f42793-739e- 4ce9-9118-5049086aa800
相关 ID:2ad50471-9c2a-4c02-a4d0-189efad2f0c8
时间戳:2020-06-15 12:46:39Z","error_codes":[7000222],"timestamp":"2020-06-15 …

azure azure-cli devops azure-pipelines-release-pipeline

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

保护后端 API 端点(MERN 应用程序)

我使用 MERN 制作了一个全栈 Web 应用程序,并使用 Kubernetes 集群进行部署。

除了一个问题之外,该应用程序运行良好。也就是说,我(作为用户)能够从浏览器访问 API,例如www.domain-name/api/orders,它为我提供了 JSON 响应。

这是我不想要的。我需要隐藏/限制它。

我使用 NGINX-INGRESS 进行路由:

apiVersion: extensions/v1beta1
kind: Ingress
metadata: 
    name: ingress-service 
    annotations: 
        kubernetes.io/ingress.class: nginx 
        nginx.ingress.kubernetes.io/use-regex: 'true'
spec: 
    rules: 
        - host: shopify.dev 
          http: 
            paths:
                - path: /api/users/?(.*) 
                  backend: 
                    serviceName: auth-srv 
                    servicePort: 3000
                - path: /api/orders/?(.*)
                  backend: 
                    serviceName: orders-srv
                    servicePort: 3000
                - path: /?(.*) 
                  backend: 
                    serviceName: client-srv
                    servicePort: 3000 
Run Code Online (Sandbox Code Playgroud)

由于请求 /api 和 /* (前端)都是通过 nginx-ingress 路由的,这是应该如何工作的?解决这个问题的办法是什么?

node.js docker kubernetes devops nginx-ingress

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

如何使用ansible设置postgres密码

通常我会这样做:

sudo -su postgres
psql
\password
\q
Run Code Online (Sandbox Code Playgroud)

更改 postgres 密码。现在我想使用 ansible 自动执行此步骤。

postgresql ansible devops

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

在 Nginx access.log 中获取每个 IP 每个请求的请求计数

我有运行 nginx Debian GNU/Linux 9的 unix 服务器

我试图在 Nginx access.log 文件中获取每个 IP 每个请求的请求计数以进行分析,所以我有 2 个问题:

  1. 是否有一个unix命令可以从日志文件(整个文件)中按每个IP每个请求获取此信息?
  2. 还可以按日期过滤吗?我的意思是获取某一天每个请求每个 IP 的请求计数。所以希望我能得到这样的东西
IP        count
127.0.0.1 4
127.0.0.2 5
127.0.0.3 6
Run Code Online (Sandbox Code Playgroud)

我发现了这个,但它只计算 ips

sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
Run Code Online (Sandbox Code Playgroud)

unix nginx devops

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

如何在 DevOps/VSTS 中自动启动之前成功的版本

如果当前版本失败了,如何自动运行之前成功的版本?

在此输入图像描述

例如:如果A(当前版本)失败,则自动触发B(先前成功版本)版本。从另一个发布定义触发。

devops azure-devops azure-pipelines devops-services azure-devops-extensions

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

列出过去一年的 Jenkins 作业构建详细信息以及触发构建的用户

是否有任何简单的方法可以使用 API 或脚本来获取过去一年在所有作业上执行的所有构建的列表以及触发构建作为报告的用户?

api scripting groovy jenkins devops

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

证书管理器 证书创建停留在创建新的证书请求资源

我在 GKE 上使用 cert-manager v1.0.0,我尝试使用 acme 的暂存环境,它工作正常,但是当转移到生产时,我可以发现创建的证书卡在 Created new CertificateRequest resources 上,之后没有任何变化

我希望看到证书的创建成功,并将证书的状态从 false 更改为 true,就像暂存中发生的那样

环境详情::

Kubernetes 版本 (v1.18.9): Cloud-provider/provisioner (GKE): cert-manager 版本 (v1.0.0): 安装方法 (helm)

这是我的 clusterIssuer yaml 文件

apiVersion: cert-manager.io/v1

kind: ClusterIssuer

metadata:
  name: i-storage-ca-issuer-prod
  namespace: default
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: MY_EMAIL_HERE
    privateKeySecretRef:
      name: i-storage-ca-issuer-prod
    solvers:
    - http01:
        ingress:
          class: gce
Run Code Online (Sandbox Code Playgroud)

这是我的入口 yaml 文件

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: i-storage-core
  namespace: i-storage
  annotations:
    kubernetes.io/ingress.global-static-ip-name: i-storage-core-ip
    cert-manager.io/cluster-issuer: i-storage-ca-issuer-prod
  labels:
    app: i-storage-core
spec:
  tls:
  - hosts:
    - …
Run Code Online (Sandbox Code Playgroud)

ssl kubernetes devops kubernetes-ingress cert-manager

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

在 Azure DevOps 管道中,如何使用从 addSpnToEnvironment 参数返回的服务原理详细信息登录到 AZ CLI?

我本质上必须运行一个 Python 脚本,该脚本将 AZ CLI 命令嵌入到脚本中,并从模​​块中生成为进程subprocess。为了运行这些命令,我​​需要登录到 AZ CLI。

我的管道中有一个 AZ CLI 任务,其中的设置为addSpnToEnvironment = true 我提供了$env:servicePrincipalId,$env:servicePrincipalKey$env:tenantId。我的问题是,现在如何使用这些详细信息登录到 AZ CLI,以便在任务中维护上下文,并且我的 Python 脚本中的 AZ CLI 命令可以识别这一点并可以执行?

azure devops azure-devops azure-pipelines azure-service-principal

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

从发布 (CD) 管道触发构建 (CI) 管道?

我知道从发布管道触发构建管道是非常规的,但就我而言,这是我的需要。在 Azure DevOps 中,我有一个触发发布管道的构建管道,然后在发布中完成所有阶段后,我想触发另一个构建管道。该构建管道将负责更新我的 git 存储库中的 json 文件。为了能够访问 git 存储库并进行更改/提交,我需要使用构建管道。我有一个解决方法,可以在发布管道中克隆 git 存储库并进行更新,但这“感觉不对”。我希望找到更好的解决方案。

注意:在 git commit 消息中我将有[skip ci],所以不会有触发器或管道的无限循环......

git continuous-integration azure continuous-deployment devops

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

不得与 sudo 一起运行

您好,我是 github actions 的新手,我正在尝试使用 Github action 创建 CICD pipline。我正在使用数字海洋水滴作为我的服务器,并且我正在尝试创建一个跑步者,如 github->settings->actions 中所述

当我写下以下命令时 ./config.sh --url https://github.com/basobaasnepal/BasobaasWeb --token DFGFSDF234sf3fg45hd

我得到了这个: 不能使用 sudo 运行

我尝试将 root 用户更改为非 root 用户,但没有成功。我也尝试export {AGENT_ALLOW_RUNASROOT="1"}

pipeline digital-ocean devops github-actions

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