小编sha*_*eoh的帖子

使用Jenkins DSL添加参数"用于复制工件的构建选择器"

我正在将Jenkins的工作从手动配置转换为DSL,这意味着我正在尝试创建一个DSL脚本来创建今天的工作.

该作业当前已参数化,其中一个参数的类型为"用于复制工件的构建选择器".我可以在作业XML中看到它是copyartifact插件,特别是我需要使用BuildSelectorParameter.

然而,Jenkins DSL API没有使用此插件设置参数的指导 - 它只是帮助使用它来创建构建步骤,这不是我需要的.

我也无法在API中的参数选项下找到任何与此相关的内容.

我想在DSL种子脚本中包含一些内容,它将在生成的作业中创建一个与图像中的参数匹配的参数.

参数

如果我需要使用配置块,那么欢迎使用任何提示,因为对于初学者来说,这方面的文档是没有用的.

groovy jenkins-plugins jenkins-job-dsl

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

Groovy脚本无法从Jenkins DSL作业调用Slack通知参数

我尝试第一次使用Jenkins Job DSL插件来创建一些基本的作业“模板”,然后再介绍更复杂的内容。

Jenkins在Windows 2012服务器上运行。Jenkins版本是1.650,我们正在使用Job DSL插件版本1.51。

理想情况下,我希望对种子作业进行参数化,以便在运行该种子时,用户可以输入四项内容:作业DSL脚本位置,生成的作业的名称,用于通知失败的Slack通道以及一封电子邮件。故障通知的地址。

前两个很好:我可以在groovy脚本中调用参数,例如,脚本可以理解job("${JOB_NAME}")并使用我在运行种子作业时为作业输入的名称。

但是,当我尝试使用Slack频道执行相同的操作时,groovy脚本似乎不想播放。请注意,如果我指定一个Slack通道而不是尝试调用一个参数,它将正常工作。

我的Job DSL脚本在这里:

job("${JOB_NAME}") {
    triggers {
        cron("@daily")
    }
    steps {
        shell("echo 'Hello World'")
    }
    publishers {
    slackNotifier {
      room("${SLACK_CHANNEL}")
      notifyAborted(true)
      notifyFailure(true)
      notifyNotBuilt(false)
      notifyUnstable(true)
      notifyBackToNormal(true)
      notifySuccess(false)
      notifyRepeatedFailure(false)
      startNotification(false)
      includeTestSummary(false)
      includeCustomMessage(false)
      customMessage(null)
      buildServerUrl(null)
      sendAs(null)
      commitInfoChoice('NONE')
      teamDomain(null)
      authToken(null)
    }
  }
    logRotator {
        numToKeep(3)
        artifactNumToKeep(3)
    publishers {
        extendedEmail {
            recipientList('me@mydomain.com')
            defaultSubject('Seed job failed')
            defaultContent('Something broken')
            contentType('text/html')
            triggers {
              failure ()
              fixed ()
              unstable ()
                stillUnstable {
                    subject('Subject')
                    content('Body')
                    sendTo {
                        developers()
                        requester()
                        culprits() …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins-job-dsl slack

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

Nginx HTTP基本身份验证,特定IP地址除外

我正在为运行的Web应用程序设置基本身份验证。

该应用程序使用nginx 1.12.2以及Apache 2.2.15(尽管这是一个测试实例,而生产实例使用1.12.2和2.4.6)。它们都在CentOS 7服务器上运行。

我一直在这里使用教程来做到这一点。我设法使身份验证正常工作,并且在浏览器中导航至该站点时,弹出对话框询问用户名和密码。但是,我无法使用IP白名单-无论我从哪里连接都要求提供凭据。

目的是使我们网络上或通过我们的VPN连接的任何人都不必输入这些凭据。似乎应该很简单,但我无法使其正常工作。

本质上,我们需要192.168.1.1-192.168.1.255范围内的任何人都可以访问它,以及10.8.0.x范围内的VPN地址。

在尝试IP地址控件之前,我必须处理nginx conf文件中的位置,然后放置身份验证信息以使其起作用,并发现它必须位于我添加的部分中。但是,IP控件不起作用就像声明的那样。我看不到我在这里想念的东西。

以下是内容 /etc/nginx/sites-available/myapp.conf

upstream myapplication-3.3.2 {
        server 127.0.0.1:18805;
}

server {
  listen 80;
  server_name mydomain.com;
  location '/.well-known/acme-challenge' {
    default_type "text/plain";
    root  /srv/letsencrypt;
  }
  location / {
    return 301 https://$server_name$request_uri;
  }
}

server {
        listen 18804;
        location / {
                return 301 https://$host$request_uri;
        }
}


server {
        listen 80;
        location / {
                return 301 https://$host$request_uri;
        }
}

server {
        listen 443 ssl;
        server_name mydomain.com;

        access_log /var/log/nginx/myapplication3.access.log;
        error_log /var/log/nginx/myapplication3-errors.log;

        ssl on;
        ssl_certificate_key …
Run Code Online (Sandbox Code Playgroud)

nginx basic-authentication

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