小编pka*_*mol的帖子

无业游民:供供需者使用的多种剧本

是否可以/有效地以下列形式为一个无业游民的预备供应商运行多个剧本:

 config.vm.define "repo", primary: true do |d|
    d.vm.hostname = "some.hostname"
    # Create a private network, which allows host-only access to the machine
    # using a specific IP.
    d.vm.network :private_network, ip: "10.10.2.90"
    d.vm.provision 'ansible' do |ansible|
      ansible.config_file = 'ansible/ansible.cfg'
      ansible.playbook = 'ansible/playbook1.yml'
      ansible.playbook = 'ansible/playbook2.yml'
      ansible.sudo = true
      ansible.inventory_path = 'ansible/inventory/site'
      ansible.host_key_checking = false
    end
  end
Run Code Online (Sandbox Code Playgroud)

provisioning vagrant ansible vagrantfile vagrant-provision

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

gitlab-runner:本地执行时添加ssh密钥

我正在尝试ci通过docker执行器在本地运行管道以进行调试:

gitlab-runner exec docker <job_name>
Run Code Online (Sandbox Code Playgroud)

在某个时间点,它需要克隆一个私有git存储库。

我正在使用gitlab 建议的典型配方。

variables:
    MY_PRIVATE_KEY: <my_private_key>

before_script:
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
  - eval $(ssh-agent -s)
  - ssh-add <(echo "$MY_PRIVATE_KEY")
  - mkdir -p ~/.ssh
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
Run Code Online (Sandbox Code Playgroud)

但是,当尝试将密钥添加到代理时:

$ ssh-add <(echo "$MY_PRIVATE_KEY")
Enter passphrase for /dev/fd/63: Running after script...
ERROR: Job failed: exit code 1
FATAL: exit code 1 …
Run Code Online (Sandbox Code Playgroud)

git gitlab-ci gitlab-ci-runner

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

SonarQube:在覆盖率报告期间忽略文件

我想提供一个ui项目的覆盖率报告。

该项目主要由.ts受版本控制的文件组成。

gulp用于检查覆盖率的命令生成.js文件,然后检查覆盖率。(以及一份覆盖率报告......报告这些文件)

这些.js文件不受版本控制,并且在生成时与.ts文件混合(即,只要有.ts文件,.js就会在其旁边生成一个文件)。

这会产生以下问题:

sonarqube生成覆盖率报告时,到我上面的报告(由 指向sonar.javascript.lcov.reportPaths),.ts文件被添加(当然有0.0%覆盖率),这会破坏实际的 cov 值。

有没有办法/模式来指示声纳:

a) 对.ts文件进行代码分析

b)生成覆盖率报告时忽略所有 .ts文件?

code-coverage sonarqube

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

尽管已安装 Ansible 未能找到 boto3 和 botocore

以下任务:

  - name: Fetch dump file from S3
      aws_s3:
        bucket: mybucket
        object: somedump.sql
        dest: /tmp/somedump.sql
        mode: get
      delegate_to: "{{ ec2_instance_ip }}"
Run Code Online (Sandbox Code Playgroud)

失败:

致命:[localhost -> 22.33.111.88]:失败!=> {"changed": false, "msg": "这个模块需要 boto3 和 botocore"}

$ ssh ubuntu@22.33.111.88
$ pip freeze
boto3==1.7.41
botocore==1.10.41

$ pip3 freeze
blinker==1.3
boto3==1.7.41
botocore==1.10.41
Run Code Online (Sandbox Code Playgroud)

目标机器是ubuntu/xenial这样我也负责安装python-minimal(鉴于机器只有开箱即用python3

因此,在目标机器上:

$(which python) --version
Python 2.7.12
Run Code Online (Sandbox Code Playgroud)

我已经在附加和不附加的情况下运行了上述游戏:

  vars:
    ansible_python_interpreter: /usr/bin/python3
Run Code Online (Sandbox Code Playgroud)

在任务结束时...

python amazon-s3 ansible ansible-2.x

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

AWS Cloudformation:有条件地创建资源属性

我知道可以通过使用条件来有条件地(还有什么?)创建资源。

我试图找到一种方法,尽管可以有条件地创建资源的属性。

在我的情况下,我正在EC2使用默认public ip assignment =的子网中创建多个实例false

有时,尽管出于调试目的,我还是希望实例获得公共IP。

现在,我必须在SG / Subnet和NetworkInterfaces下面的属性中进行评论(这些属性不能一起使用)

  myEC2:
    Type: AWS::EC2::Instance
    Metadata:
      Comment: My EC2 Instance
      AWS::CloudFormation::Init:
        config:
          commands:
            01_provision:
              command:
                !Sub |
                  sed -i "s/somestring/${somevar}/" /some/path/
    CreationPolicy:
      ResourceSignal:
        Timeout: PT4M
    Properties:
      ImageId: !FindInMap [ MyAamiMap, 'myami', amiid ]
      InstanceType: "t2.2xlarge"
      # SubnetId: !Ref SBNDemo1
      # SecurityGroupIds: [!Ref SGInternalDemo]
      NetworkInterfaces:
        - AssociatePublicIpAddress: "true"
          DeviceIndex: "0"
          GroupSet:
            - Ref: "SGInternalDemo"
          SubnetId:
            Ref: "SBNDemo1"
      UserData:
        "Fn::Base64":
          !Sub |
            #!/bin/bash -xe
            # Start …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation

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

GCP 中的错误:无法更改实例组的实例模板

我正在尝试按照教程的建议为 GKE 实例组设置新模板,但出现以下错误:

我复制了一个现有的模板,只是在上面修改了一个标签,保存了它,然后运行:

$ gcloud compute instance-groups managed set-instance-template gke-some-nodepool1-1436e076-grp --template gke-some-nodepool1-7bdaa55f-1 --zone=us-east4-b
ERROR: (gcloud.compute.instance-groups.managed.set-instance-template) Could not fetch resource:
 - Invalid resource usage: 'Secondary ranges specified in InstanceTemplate must be the same as already set on Instance Group Manager. Expected: sre-inception-cluster-range Actual: '.
Run Code Online (Sandbox Code Playgroud)

事实证明,新的(克隆)模板确实具备别名IP范围字段集(一样的原始模板)。

似乎是模板复制机制上的错误?

google-compute-engine google-cloud-platform

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

python: pycodestyle (ex pep8) vs pylint 严格性

我有一个python项目要检查PEP8一致性。

我的setyp.cfg是以下内容:

[pycodestyle]
count = True
ignore = E266, W504
max-line-length = 80
statistics = True
exclude = .venv,./build%
Run Code Online (Sandbox Code Playgroud)

经过一些清理,我的pycodestyle支票现在没有错误或警告(当然忽略了那些)

~/Workspace/my-app  master ?                                                                                                                        2h36m
?  pycodestyle .
(.venv)
~/Workspace/my-app  master ?
Run Code Online (Sandbox Code Playgroud)

但是,pylint针对我的项目运行会产生大量错误:

其中一些仅用于演示目的)

************* Module somemodule.commands
src/somemodule/commands.py:98:0: C0330: Wrong continued indentation (add 16 spaces).
                            format(gcp_project)))
                            ^               | (bad-continuation)
src/somemodule/commands.py:1:0: C0111: Missing module docstring (missing-docstring)
src/somemodule/commands.py:21:-1: W0105: String statement has no effect (pointless-string-statement)
src/somemodule/commands.py:29:4: C0103: Variable name "p" doesn't …
Run Code Online (Sandbox Code Playgroud)

python pep8 pylint python-3.x pycodestyle

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

与 MongoDB go 客户端一起使用时 bson struct 标签的必要性

我正在观看一篇关于如何创建使用 MongoDB 进行持久化的 Go Restful API 的教程(更准确地说是这个)。

讲师在他的模型(结构)中同时 json使用和bson标签,例如

type NoteUpdate struct {
    ID        string `json:"id,omitempty" bson:"_id,omitempty"`
    Title     string `json:"title" bson:"title,omitempty"`
    Content   string `json:"content" bson:"content,omitempty"`
    ChangedAt int64  `json:"changed_at" bson:"changed_at"`
}

Run Code Online (Sandbox Code Playgroud)

然而官方的 go driver示例并没有这样做。

事实上,根本没有使用结构标签。

使用标签的目的/用处是什么bson

我想到的一件事是,如果有人想要创建自定义 mongo_id字段,在这种情况下,bson应该声明与该结构字段的显式映射。

标签还有其他附加值吗bson

go mongodb bson mongo-go

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

正则表达式中的最小长度

我很清楚,如果需要最少 4 个字符,则应使用此量词来指示正则表达式的最小长度{4,}

我正在尝试编译一个正则表达式,go以允许

  • 总共最少4个字符,包括连字符

  • 仅字母、数字和连字符

  • 最后一个字符不应连字符

所以建议我使用这个:

^[a-zA-Z0-9-]*[a-zA-Z0-9]$
Run Code Online (Sandbox Code Playgroud)

这似乎可以完成工作。

现在,考虑到我想强制至少 4 个字符,我对其进行了如下修改:

^[a-zA-Z0-9-]*[a-zA-Z0-9]{4,}$
Run Code Online (Sandbox Code Playgroud)

然而,考虑到下面的模式,这似乎并不能完成工作

eee0-lll
Run Code Online (Sandbox Code Playgroud)

匹配 (根据我的要求它应该)

我面临的限制之一是go不允许进行环视断言。

regex go

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

列出已安装图表的 helm 依赖项

Helm 提供了在浏览图表文件时列出图表依赖项的选项。

\n

因此,如果我位于 的文件夹上方my-chart,我可以执行

\n
\xe2\x96\xb6 helm dependency list my-chart\nNAME    VERSION REPOSITORY          STATUS\ncommon  0.12.6  file://../common/   ok\n
Run Code Online (Sandbox Code Playgroud)\n

如何获取已安装图表的依赖关系,即通过从实际部署的版本中检索此信息?(即在我的集群上运行的)

\n

kubernetes kubernetes-helm

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