小编gra*_*aii的帖子

如何禁用Jenkins Multibranch Pipeline项目

我一直在Jenkins创建一些Multibranch Pipeline项目

我已经"升级"以使用GitHub组织项目.

如何禁用旧的Multibranch Pipeline项目?我没有在任何地方看到任何禁用按钮.

这是我的意思的截图: 在此输入图像描述

由于我无法在回复中添加屏幕截图,我正在编辑我的问题以包含屏幕截图,以显示我安装了最新版本的Pipeline插件,2.16:

在此输入图像描述

jenkins jenkins-plugins jenkins-pipeline

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

如何从docker stats中找到MAX内存?

随着docker stats时间的推移你可以看到容器的内存使用情况.

有没有办法找到运行时内存使用率最高的值docker stats

docker

17
推荐指数
3
解决办法
3125
查看次数

如何通过groovy脚本获取运行jenkins构建的列表?

有没有办法通过系统Groovy脚本获取Jenkins中的RUNNING构建列表?我尝试循环繁忙的执行程序,但是从执行程序对象,我无法获取构建对象:

def busyExecutors = Jenkins.instance.computers
                                .collect { 
                                  c -> c.executors.findAll { it.isBusy() }
                                }
                                .flatten() // reminder: transforms list(list(executor)) into list(executor)

busyExecutors.each { e -> 
  println('=====print out methods of executor object=======');
  println e.metaClass.methods*.name.sort().unique();

}
Run Code Online (Sandbox Code Playgroud)

我也可以针对我感兴趣的JOB:

def item = hudson.model.Hudson.instance.getItem("my_job");
println item.metaClass.methods*.name.sort().unique(); 
Run Code Online (Sandbox Code Playgroud)

但是,我将不得不循环遍历100s(如果不是更多)构建并询问每个构建是否正在运行.

必须有一种更容易/更好的方法来获取正在运行的构建列表.

有很多关于如何通过System Groovy Scripts(我写的一些)做各种事情的信息,但我无法弄清楚如何获得正在运行的构建列表:

如何使用groovy在jenkins中获取当前正在运行的作业节点名称

https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Script+Console

https://gist.github.com/dnozay/e7afcf7a7dd8f73a4e05

如何让詹金斯/哈德森的工作监视其他一些工作,并决定是否建立?

groovy jenkins

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

如何在ElasticSearch中获取已关闭索引的列表?

我最近通过Elasticsearch中的Head插件关闭了一个索引.我没有删除它.

我想重新打开它,但上帝禁止我忘记我关闭了哪个索引.

如何获取我关闭的所有索引的列表?

我试过了:

curl -s localhost:9200/_stats  | grep logstash-2013.12.05
curl -s localhost:9200/_status | grep logstash-2013.12.05
Run Code Online (Sandbox Code Playgroud)

但没有运气.

elasticsearch

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

如何告诉Sonar使用我的LCOV文件进行代码覆盖

我们有一个包含一堆javascript文件的Jenkins作业.我们通过grunt构建我们的项目,在构建结束时,我们运行JSCover来运行我们的单元测试并收集代码覆盖率.一切正常.我们得到一个不错的LCOV文件.

我们现在想将LCOV文件上传到Sonar,我不知道该怎么做.我们正在从Jenkins构建我们的项目作为一个自由风格的项目.

我试着玩声纳的各种项目属性,但没有爱:

# project metadata (required)
sonar.projectKey=my.project
sonar.projectName=My Project
sonar.projectVersion=1.0
# path to source directories (required)
sonar.sources=src

# The value of the property must be the key of the language.
sonar.language=java (I tried js and javascript, but no love. Plugin is not installed.  Actually, I don't care about the language, since I am already generating the LCOV file during the build.  I just need Sonar to use this LCOV file.)

# Advanced parameters
sonar.javascript.jstestdriver.reportsfolder=target/surefire-reports
sonar.javascript.jstestdriver.coveragefile=target/test-coverage/jscover.lcov
sonar.dynamicAnalysis=reuseReports
Run Code Online (Sandbox Code Playgroud)

我怀疑问题出在"高级参数"下,但我不知道如何告诉Sonar,"请使用我的LCOV文件进行代码覆盖".

javascript jenkins jscoverage sonarqube

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

如何配置 Jenkins 使用 MFA/2FA

我们希望用户使用他们的用户名/密码以及另一种形式的多因素身份验证(例如 Google Auth(或 Authy))来登录 Jenkins。

我们没有找到任何支持此功能的插件。

我们正在使用 AWS,因此我们考虑的事情之一是将 ALB 放在 Jenkins 前面,然后放置,但这可能会干扰从 github 获取 POST 请求以触发构建。

关于如何在 Jenkins 上启用 MFA 有什么想法吗?

authentication jenkins

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

停止/中止构建在控制台输出中遇到某些文本的时刻

最重要的是:当控制台输出中遇到某个字符串时,有没有办法立即停止构建?

我们有一个maven构建,它使用maven目标site-deploy(它通过ssh将java doc上传到远程服务器).

每一次在蓝色的月亮中构建都会失败,并且由于这个失败,控制台输出文件是~12 + gigs,它们会记录我们的驱动器,这反过来会导致我们的Jenkins主机因磁盘空间不足而死机.

日志文件被一遍又一遍地重复以下消息填满:


警告:远程主机识别已更改!

有可能是某人做的很棒!

有人可能正在偷听你(中间人攻击)!

RSA主机密钥也可能刚刚更改.

远程主机发送的RSA密钥的指纹是3d:69:41:8a:ec:d1:4c:d9:75:ef:7d:71:b7:7d:61:d0.

请联系您的系统管理员.

在known_hosts中添加正确的主机密钥以删除此消息.

是否要删除旧密钥并插入新密钥?(是/否):


我们正在修复构建过程,以便我们不会收到此错误消息,但如果Jenkins 在遇到此消息时可以停止/中止构建,那真的很酷.

有没有办法做到这一点?

jenkins

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

为多个目标组创建单个 cloudwatch 警报?

我有大约 100 个目标群体。

我希望在任何目标组的主机不健康时收到警报。

我不想创建 100 个 CloudWatch 警报(每个目标组 1 个)。

有没有办法创建一个单一的 CloudWatch 警报来提醒我任何目标组后面的任何主机都不健康?

@marcin 建议数学指标,但没有爱。AWS 最多可以计算 10 件事...我有超过 10 个目标组:(

在此输入图像描述

amazon-web-services amazon-cloudwatch

5
推荐指数
0
解决办法
992
查看次数

如何告诉Sonar使用我的万无一失的报告来获取单元测试结果

我们有一个包含一堆javascript文件的Jenkins作业.我们通过grunt构建我们的项目,在构建结束时,我们运行JSCover来运行我们的单元测试并收集代码覆盖率.一切正常.我们得到了一个很好的LCOV文件,我们在target/surefire-reports /目录中得到了一堆TEST - *.xml.

声纳显示代码覆盖率结果,但它不显示通过/失败甚至执行的测试数量.

我如何告诉声纳使用万无一失的报告?我想通过设置这个属性,它会消耗它,但没有爱:

sonar.surefire.reportsPath=target/surefire-reports
Run Code Online (Sandbox Code Playgroud)

这是我的项目属性文件:

# project metadata (required)
sonar.projectKey=pure.cloud.browser.app
sonar.projectName=Pure Cloud Browser App
sonar.projectVersion=1.0
# path to source directories (required)
sonar.sources=src
sonar.exclusions=js/lib/**,js/test/lib/**,js/test/tools/**
# The value of the property must be the key of the language.
sonar.language=js

# Advanced parameters
sonar.surefire.reportsPath=target/surefire-reports
sonar.javascript.lcov.reportPath=target/test-coverage/jscover.lcov
sonar.dynamicAnalysis=reuseReports
Run Code Online (Sandbox Code Playgroud)

谢谢你,Fabrice,在我之前的问题中建议我以下链接:https: //github.com/SonarSource/sonar-examples/tree/master/projects/languages/javascript/javascript-sonar-runner-JsTestDriver但我可以找不到方法告诉Sonar以某种方式显示存储在surefire-reports目录中的单元测试结果(测试次数,失败次数等).

有任何想法吗?

javascript surefire sonarqube

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

如何在 443 上进行 nginx 直通并将 80 重定向到 443?

我有一个 winstone 服务器 (Jenkins) 监听 8443。Jenkins 有一个有效的证书,Jenkins 正在成功执行证书终止:

JENKINS_ARGS="--httpPort=-1 --httpsKeyStore=/secure/jenkins.keystore --httpsKeyStorePassword=MY_PASSWORD --httpsPort=8443"
Run Code Online (Sandbox Code Playgroud)

唯一的问题是用户现在必须去:https : //example.com : 8443

我不想在 URL 中使用该端口号。我想要:

https://example.com:8443 -> https://example.com
https://example.com      -> https://example.com
http://example.com       -> https://example.com
Run Code Online (Sandbox Code Playgroud)

所以我想我会在运行 Jenkins 的同一个实例上运行 nginx。

所以我的问题是:

  1. 我是否必须重新配置 jenkins 以不执行证书终止,以便 nginx 仅执行此操作?
  2. nginx 可以在没有证书的情况下将 80 和 443 重定向到 localhost:8443(因为 Jenkins 正在执行证书终止)?
  3. nginx 和 Jenkins 都需要终止证书吗?

抱歉那些类似的问题。

我很确定 AWS ELB 不能取代 nginx 在这里所做的事情,但我想我会把它扔在那里,以防 ELB 也可以为我解决这个问题。

ssl redirect nginx winstone

3
推荐指数
1
解决办法
3979
查看次数

如果使用AWS弹性IP地址,Cassandra无法联系种子...仅适用于私有IP地址

我创建了3个实例,其中3个弹性IP地址指向这些实例.

我做了一个ysc安装的dsc:dsc12.noarch 1.2.13-1 @datastax

/etc/cassandra/default.conf/cassandra.yaml有: - 种子:[弹性IP列表]

但是当我通过"service cassandra start"启动cassandra时,我在/var/log/cassandra/cassandra.log中看到:...启动时遇到的异常:无法联系任何种子!...确定"nodetool status"显示:无法连接到"127.0.0.1:7199":连接被拒绝

但是:如果我更改种子的值以使用实例的"私有IP",那么cassandra就可以了.我希望弹性IP可以正常工作,但事实并非如此.

你知道为什么吗?

我希望弹性IP工作的原因是我提前知道IP地址,因此当我使用Puppet配置机器时,我可以预先填充cassandra.yaml文件中的种子.机器启动后我才知道私有IP地址:(

这几乎与以下内容重复:带有弹性IP地址的Amazon EC2上的Cassandra

cassandra datastax-enterprise datastax

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

Jenkins 声明式管道:后脚本条件

我有一个声明性詹金斯管道。我想在构建的“post”部分有一个条件。

詹金斯文件的帖子部分是否可以有“脚本块”?

当我这样说时,不会发生错误,但不会发送 hipchat 消息。即使说“如果主分支,hipchatSend,否则hipchatSend”,也不会发送hipchat消息。哎呀,如果我用“echo”语句替换 hipchatSend ,也不会发生任何事情。

post {
  always {
    script {
      if (env.BRANCH_NAME == "master") {
        hipchatSend color: 'RED', credentialId: 'HipChat-Jenkins-Token',
                    message: 'I am master branch',
                    room: 'Master-Commit-Room,',
                    sendAs: '', 
                    server: '',
                    v2enabled: true
      }
      if (env.BRANCH_NAME == "release/my-release") {
        hipchatSend color: 'RED', credentialId: 'HipChat-Jenkins-Token',
                    message: 'I am release branch',
                    room: 'Release-Commit-Room,',
                    sendAs: '',
                    server: '',
                    v2enabled: true
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-pipeline

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

opennssl s_client 显示错误的证书:浏览器显示正确

我们有 2 个域指向同一个公共 AWS ELB,在该 ELB 后面有 nginx,它将请求重定向到正确的服务器。

当我们在浏览器(Chrome/Safari/等)中点击 sub.domainA.com 时,一切正常,但是当我们使用 openssl 等工具时,我们会收到证书错误:

openssl s_client -host sub.domainA.com -port 443 -prexit -showcerts

CONNECTED(00000003)
depth=0 /OU=Domain Control Validated/CN=*.domainB.com
verify error:num=20:unable to get local issuer certificate
verify return:1
Run Code Online (Sandbox Code Playgroud)

由于某种原因,domainA 正在使用domainB 证书,我不知道为什么。

我几乎 100% 确定问题出在我们的 nginx 配置上(更具体地说,没有默认服务器块)

这是我们的 nginx 配置:

worker_processes  auto;

error_log  /var/log/nginx/error.log;
error_log  /var/log/nginx/error.log warn;
error_log  /var/log/nginx/error.log notice;
error_log  /var/log/nginx/error.log info;

events {
    worker_connections  1024;
}

http {
    include       /usr/local/openresty/nginx/conf/mime.types;
    default_type  application/octet-stream;
...
    #
    # DomainB
    #

    server {
        ssl on;
        ssl_certificate …
Run Code Online (Sandbox Code Playgroud)

nginx

0
推荐指数
1
解决办法
1366
查看次数