我一直在Jenkins创建一些Multibranch Pipeline项目
我已经"升级"以使用GitHub组织项目.
如何禁用旧的Multibranch Pipeline项目?我没有在任何地方看到任何禁用按钮.
由于我无法在回复中添加屏幕截图,我正在编辑我的问题以包含屏幕截图,以显示我安装了最新版本的Pipeline插件,2.16:
随着docker stats时间的推移你可以看到容器的内存使用情况.
有没有办法找到运行时内存使用率最高的值docker stats?
有没有办法通过系统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
我最近通过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)
但没有运气.
我们有一个包含一堆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文件进行代码覆盖".
我们希望用户使用他们的用户名/密码以及另一种形式的多因素身份验证(例如 Google Auth(或 Authy))来登录 Jenkins。
我们没有找到任何支持此功能的插件。
我们正在使用 AWS,因此我们考虑的事情之一是将 ALB 放在 Jenkins 前面,然后放置,但这可能会干扰从 github 获取 POST 请求以触发构建。
关于如何在 Jenkins 上启用 MFA 有什么想法吗?
最重要的是:当控制台输出中遇到某个字符串时,有没有办法立即停止构建?
我们有一个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 在遇到此消息时可以停止/中止构建,那真的很酷.
有没有办法做到这一点?
我有大约 100 个目标群体。
我希望在任何目标组的主机不健康时收到警报。
我不想创建 100 个 CloudWatch 警报(每个目标组 1 个)。
有没有办法创建一个单一的 CloudWatch 警报来提醒我任何目标组后面的任何主机都不健康?
@marcin 建议数学指标,但没有爱。AWS 最多可以计算 10 件事...我有超过 10 个目标组:(
我们有一个包含一堆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目录中的单元测试结果(测试次数,失败次数等).
有任何想法吗?
我有一个 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。
所以我的问题是:
抱歉那些类似的问题。
我很确定 AWS ELB 不能取代 nginx 在这里所做的事情,但我想我会把它扔在那里,以防 ELB 也可以为我解决这个问题。
我创建了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
我有一个声明性詹金斯管道。我想在构建的“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) 我们有 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)