通过 Jenkins 初始密码编写脚本

Scripting through Jenkins initial password

我正在尝试设置 Chef 配方来安装和管理 Jenkins 服务器。到目前为止,我可以安装服务器并管理它的配置,以便它在端口 80 上侦听。

我现在的问题是我无法通过初始管理员密码将其写入脚本,因此我无法实际访问服务器。

到目前为止,我已经有了可以找到密码并将网页提交回Jenkins的脚本blow,但是Jenkins总是声称密码不正确。

有没有比抓取 Jenkins 的网页更简单的方法来完成这项工作?也许是一种在完全安装后避免出现此密码屏幕的方法?

谢谢,

比尔

$hostName = $env:computername

    if(-not (Test-Path 'C:/Program Files (x86)/Jenkins/secrets/initialAdminPassword'))
    {
        exit -1
    } else {
        $password = Get-Content 'C:/Program Files (x86)/Jenkins/secrets/initialAdminPassword'
    }

    $loginPage = Invoke-WebRequest -Uri "http://$hostName/login?from%2f" -UseBasicParsing -SessionVariable session

    $xmlPage = ([xml]$loginPage.Content)

    $xmlPage.SelectNodes('//input[@name = "j_password"]').setAttribute('value',$password)

    $actionPath = $xmlPage.SelectNodes('//form').action

    $responsePage = Invoke-WebRequest -Uri "http://$hostName/$actionPath" -UseBasicParsing -WebSession $session -Body ($xmlPage.SelectNodes('//input').OuterXML) -Method Post

创建文件 ${JENKINS_HOME}/jenkins.install.InstallUtil.lastExecVersion 并将内容设置为 2.0 不带任何行终止符.
此外,您可以使用以下键启动 Jenkins -Djenkins.install.runSetupWizard=false 以避免初始设置向导。

How to "Unlock Jenkins"? or

另外,看这里,flag好像修改了一下:https://groups.google.com/forum/#!msg/jenkinsci-users/Pb4QZVc2-f0/ywKqZVf9MgAJ