小编whe*_*ere的帖子

如何在 Azure DevOps 中获取带斜杠的分支名称?

Azure Devops 提供了两个变量,其中包含有关当前 git 分支名称的信息:$(Build.SourceBranchName)$(Build.SourceBranch).

虽然SourceBranch包含对分支的完整引用,但SourceBranchName预计仅包含短分支名称。

不幸的是,当分支名称包含斜杠 ( /)时,行为有点出乎意料:

+---------------------------------------------------------------------------------------------------------+
| Situation                     | Git branch name  | Build.SourceBranch          | Build.SourceBranchName |
|---------------------------------------------------------------------------------------------------------|
| branch name contains no slash | mybranch         | refs/heads/mybranch         | mybranch               |
| branch name contains slash    | release/mybranch | refs/heads/release/mybranch | mybranch               |
+---------------------------------------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

斜线之前的分支名称部分不被视为分支名称的一部分。我的同事指出,这是Azure Devops 记录在案的行为

Git repo 分支或拉取请求:引用中的最后一个路径段。例如,在 refs/heads/master 这个值是 master。在 refs/heads/feature/tools 这个值是 tools。

我不确定这种行为是否特别有用:我想签出分支,并且需要分支名称包含斜杠。此外,如果删除斜线之前的部分,则可能会混淆实际路径,因为名称可能不明确。

我需要包含斜杠的分支名称。有什么简单的方法可以得到吗?为了安全起见,我是否总是必须与完整的裁判一起工作?

git azure azure-devops

11
推荐指数
4
解决办法
6259
查看次数

如何在Terraform中使用动态资源名称?

我想为几个开发和生产环境使用相同的terraform模板.

我的方法:据我所知,资源名称必须是唯一的,terraform在内部存储资源的状态.因此,我尝试使用变量作为资源名称 - 但似乎不支持.我收到一条错误消息:

$ terraform plan
var.env1
  Enter a value: abc

Error asking for user input: Error parsing address 'aws_sqs_queue.SqsIntegrationOrderIn${var.env1}': invalid resource address "aws_sqs_queue.SqsIntegrationOrderIn${var.env1}"
Run Code Online (Sandbox Code Playgroud)

我的terraform模板:

variable "env1" {}

provider "aws" {
        region = "ap-southeast-2"
}

resource "aws_sqs_queue" "SqsIntegrationOrderIn${var.env1}" {
        name = "Integration_Order_In__${var.env1}"
        message_retention_seconds = 86400
        receive_wait_time_seconds = 5
}
Run Code Online (Sandbox Code Playgroud)

我认为,无论是我的方法是错误还是语法.有任何想法吗?

terraform

9
推荐指数
2
解决办法
9691
查看次数

如何授予 AKS 通过 terraform 访问 ACR 的权限?

问题和细节

如何允许 Azure 中的 Kubernetes 集群通过 terraform 与 A​​zure 容器注册表通信?

我想从我的 Azure 容器注册表加载自定义图像。不幸的是,当 Kubernetes 应该从 ACR 下载图像时,我遇到了权限错误。

到目前为止我尝试过的

我的实验没有 terraform (az cli)

在我通过 az cli 将 acr 附加到 aks 后,一切正常:

az aks update -n myAKSCluster -g myResourceGroup --attach-acr <acrName>

我的 terraform 实验

这是我的地形配置;我已经剥离了一些其他的东西。它本身就起作用。

terraform {
  backend "azurerm" {
    resource_group_name  = "tf-state"
    storage_account_name = "devopstfstate"
    container_name       = "tfstatetest"
    key                  = "prod.terraform.tfstatetest"
  }
}

provider "azurerm" {
}
provider "azuread" {
}
provider "random" {
}

# define the password
resource "random_string" …
Run Code Online (Sandbox Code Playgroud)

terraform service-principal azure-aks azure-acr

8
推荐指数
3
解决办法
7981
查看次数

如何在 Azure DevOps 管道中安装 Java?

我的 Azure DevOps 管道中的一个步骤需要在代理上安装 Java。

我在这里找到了“Java Tool Installer”任务:

https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/java-tool-installer?view=azure-devops

然而,这看起来更像是一个 SDK 安装程序。我只需要一个Java运行环境。我正在寻找类似Python安装程序任务的东西:

steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '3.6'
Run Code Online (Sandbox Code Playgroud)

Java 有什么东西可以接近这个吗?

java azure-devops azure-pipelines

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

AWS CLI --输出文本是水平的而不是垂直的

我正在运行以下命令来输出到文本,但输出是水平的。有没有办法使这个输出垂直,每行一个 id ?我这样做是为了描述工作正常的实例,我不确定这种情况有什么不同。我的原因是,就我而言,它更容易使用。当然如果可以的话。

\n\n

和输出是垂直的,但table不是。很好奇这是为什么。JSONtext

\n\n

aws ec2 describe-network-interfaces \xe2\x80\x93query \'NetworkInterfaces[].NetworkInterfaceId\' --filters "Name=status, Values=available" --output text

\n\n

电流输出:

\n\n
\n\n
eni-1   eni-2   eni-3\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

期望的输出:

\n\n
\n\n
   eni-1\n   eni-2\n   eni-3\n
Run Code Online (Sandbox Code Playgroud)\n

amazon-ec2 amazon-web-services

5
推荐指数
1
解决办法
1244
查看次数

通过 bash 过滤 json - 不区分大小写

我有 json 代码,需要通过属性DNSName的值对其进行过滤。过滤器必须不区分大小写。

我怎样才能做到这一点?有没有可能用jq解决它?

这是我创建json代码的方式:

aws elbv2 describe-load-balancers --region=us-west-2 | jq
Run Code Online (Sandbox Code Playgroud)

我未过滤的源 json 代码如下所示:

{
    "LoadBalancers": [
        {
            "IpAddressType": "ipv4", 
            "VpcId": "vpc-abcdabcd", 
            "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:000000000000:loadbalancer/app/MY-LB1/a00000000000000a", 
            "State": {
                "Code": "active"
            }, 
            "DNSName": "MY-LB1-123454321.us-west-2.elb.amazonaws.com", 
            "SecurityGroups": [
                "sg-00100100", 
                "sg-01001000", 
                "sg-10010001"
            ], 
            "LoadBalancerName": "MY-LB1", 
            "CreatedTime": "2018-01-01T00:00:00.000Z", 
            "Scheme": "internet-facing", 
            "Type": "application", 
            "CanonicalHostedZoneId": "ZZZZZZZZZZZZZ", 
            "AvailabilityZones": [
                {
                    "SubnetId": "subnet-17171717", 
                    "ZoneName": "us-west-2a"
                }, 
                {
                    "SubnetId": "subnet-27272727", 
                    "ZoneName": "us-west-2c"
                }, 
                {
                    "SubnetId": "subnet-37373737", 
                    "ZoneName": "us-west-2b"
                }
            ]
        }, 
        {
            "IpAddressType": "ipv4", 
            "VpcId": "vpc-abcdabcd", 
            "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:000000000000:loadbalancer/app/MY-LB2/b00000000000000b", …
Run Code Online (Sandbox Code Playgroud)

bash amazon-elb jq

5
推荐指数
1
解决办法
3305
查看次数

如何手动将文件发布到 Azure Artifacts?

我有一个在本地计算机上手动创建的文件。我在多个 Azure DevOps 管道中需要它。

我想将它用作“神器”。

我知道如何从 Azure DevOps 管道中发布工件,但我只想从我的计算机上传这个特定文件。我该怎么做?

azure-devops azure-pipelines azure-artifacts

5
推荐指数
1
解决办法
3983
查看次数

如何通过Terraform获取现有EC2实例的实例ID / ARN?

我正在使用Terraform进行一些基础架构部署:

data "aws_instance" "ec2_my_admin_instance" {
  filter {
    name = "tag:TfServerType"
    values = ["myAdmin"]
  }
}


output "theId" {
  value = "${data.aws_instance.ec2_my_admin_instance.instance_id}"
}
output "type" {
  value = "${data.aws_instance.ec2_my_admin_instance.instance_type}"
}
output "placement_group" {
  value = "${data.aws_instance.ec2_my_admin_instance.placement_group}"
}
output "availability_zone" {
  value = "${data.aws_instance.ec2_my_admin_instance.availability_zone}"
}
output "arn" {
  value = "${data.aws_instance.ec2_my_admin_instance.arn}"
}
Run Code Online (Sandbox Code Playgroud)

但是,未显示最重要的值(id,arn):

Outputs:

availability_zone = ap-southeast-2b
type = m4.large
Run Code Online (Sandbox Code Playgroud)

我有想念吗?

amazon-ec2 terraform

4
推荐指数
2
解决办法
6765
查看次数

如何从 windows kubernetes pod 容器复制文件

我在将文件从 kubernetes pod 容器(Windows节点)复制到 Windows 10 上的本地 linux 子系统时遇到了一些困难:

t@11DT:/mnt/c/dev/auto$ kubectl cp a8677:c:\testlog2.txt .
tar: Removing leading drive letter from member names
error: tar contents corrupted
t@11DT:/mnt/c/dev/auto$ kubectl cp a8677:/c/testlog2.txt ./
tar: /c/testlog2.txt: Couldn't find file: No such file or directory
tar: Error exit delayed from previous errors.
t@11DT:/mnt/c/dev/auto$ kubectl cp a8677:c:\testlog2.txt ./
tar: Removing leading drive letter from member names
error: tar contents corrupted
t@11DT:/mnt/c/dev/auto$ kubectl cp a8677:c:/testlog2.txt ./
tar: Removing leading drive letter from member names …
Run Code Online (Sandbox Code Playgroud)

windows kubernetes

4
推荐指数
1
解决办法
3018
查看次数

如何在 Azure DevOps 工件的轮版本号中包含分支名称?

我的目标是为 python 轮发布提供正常版本号,例如1.0.0,并为特定分支提供特定于分支的版本号,例如1.0.0.dev1+hg.5.b11e5e6f0b0b.

不幸的是,Azure DevOps 将大多数版本号视为无效而拒绝,并显示以下两条错误消息之一:

HTTPError: 400 Client Error: Bad Request - The package version provided is invalid. Versions should conform to the format described in PEP 440 and be under 128 characters. (DevOps Activity ID: 0000000-AAAA-2222-3333-11111111111) for url: https://pkgs.dev.azure.com/sample/_packaging/sample_libraries/pypi/upload

for version numbers like:

version='1.0.0.1.dev', ok
version='1.0.0.1.dev1', ok
version='1.0.0.1.dev_2', ok
version='1.0.0.1.dev_2_b', FAIL
version='1.0.0.1.dev_2-3', FAIL
version='1.0.0.1.dev_2.3', FAIL
version='1.0.0.1.dev_2.3', FAIL
version='1.0.0.d1.dev', FAIL
version='1.0.0.d.dev', FAIL
version='1.0.0.1d1.dev', FAIL
version='1.0.0.1d1.dev1', FAIL
version='1.0.0.1.dev1-3', FAIL
version='1.0.0.1.dev1.3', FAIL
version='1.0.0.1.dev1.3', FAIL
version='1.0.0.1.1.3', ok
version='1.0.0.1.1-3.3', …
Run Code Online (Sandbox Code Playgroud)

python artifact python-wheel azure-devops

4
推荐指数
1
解决办法
2317
查看次数