如何“解锁詹金斯”?

时间:2016-03-12 17:21:17

标签: jenkins

我在Windows上安装Jenkins 2,安装完成后,页面打开,URL为:
http://localhost:8080/login?from=%2F

页面内容如下:
enter image description here

问题:
如何“解锁詹金斯”?

PS:我在文档和谷歌中找到了答案。

33 个答案:

答案 0 :(得分:23)

从Jenkins 2.0版开始,您可以使用

-Djenkins.install.runSetupWizard=false 

阻止此屏幕。

记入文件

  

jenkins.install.runSetupWizard - 设置为false以跳过安装向导。请注意,这会使Jenkins在默认情况下不安全。   仅限开发模式:设置为true以在Jenkins开发期间不跳过显示设置向导。

有关Jenkins属性的更多详细信息,请参阅此Jenkins Wiki page

答案 1 :(得分:5)

上述一些说明似乎已经过时了。从发布的2.0版开始,创建以下文件将导致Jenkins跳过解锁屏幕:

${JENKINS_HOME}/jenkins.install.InstallUtil.lastExecVersion

此文件必须包含字符串2.0 ,不包含任何行终结符。我不确定这是否是必需的,但Jenkins也将所有者/组设置为与Jenkins服务器相同,因此模仿也可能是件好事。

需要创建upgraded.last_exec_version个文件。

答案 2 :(得分:5)

  1. 打开文件:e:\ Program Files(x86)\ Jenkins \ secrets \ initialAdminPassword
  2. 复制内容文件:47c5d4f760014e54a6bffc27bd95c077
  3. 粘贴输入:http://localhost:8080/login?from=%2F
  4. DONE enter image description here

答案 3 :(得分:5)

检查https://wiki.jenkins-ci.org/display/JENKINS/Logging以查看Jenkins记录其文件的位置。

e.g。对于Linux,请使用命令:less /var/log/jenkins/jenkins.log

向下滚动到该部分:“Jenkins初始设置是必需的。已创建管理员用户...以继续安装:

[randompasswordhere] < ---复制并粘贴

<强>的Linux

默认情况下,日志应该在/var/log/jenkins/jenkins.log中可用,除非在/ etc / default / jenkins(对于* .deb)或/ etc / sysconfig / jenkins(对于* / rpm)进行自定义

<强>窗

默认情况下,日志应为%JENKINS_HOME%/jenkins.out and %JENKINS_HOME%/jenkins.err,除非在%JENKINS_HOME%/ jenkins.xml中自定义

Mac OS X

日志文件应位于/var/log/jenkins/jenkins.log,除非在org.jenkins-ci.plist中自定义

答案 4 :(得分:2)

我已经看到了很多对这个问题的回应,其中大多数都是实际的解决方案,但是当jenkins实际上作为一个没有Application容器的独立CI运行时,它们解决了这个问题:

java -jar jenkins.war

但是当在这种情况下运行Tomcat时,由于软件在容器上运行,因此Jenkins日志显示在catalina日志上。 所以你需要转到日志文件夹:

C:\Program Files\tomcat_folder\Tomcat 8.5\logs\catalina.log 

就我个人而言。只需向中间滚动即可查找生成的密码,该密码本质上是一个令牌并复制并粘贴到解锁jenkins。

我希望这可以解决你的问题。

答案 5 :(得分:2)

我假设您使用java -jar jenkins.war手动运行jenkins.war,然后默认情况下所有日志记录信息都输出到标准输出,只需键入令牌即可解锁jenkins2.0。 enter image description here

如果您没有使用java -jar jenkins.war运行jenkins,则可以始终按照此Official Document查找正确的日志位置。

答案 6 :(得分:2)

  1. 打开您的终端并在下面键入代码以找到所有容器。

    docker容器列表-a

  2. 您会发现 jenkinsci / blueocean 和/或 docker:dind (如果不是)

    'use strict'; const functions = require('firebase-functions'); const {WebhookClient} = require('dialogflow-fulfillment'); const {Card, Suggestion} = require('dialogflow-fulfillment'); const mysql = require('mysql'); process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => { const agent = new WebhookClient({ request, response }); console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers)); console.log('Dialogflow Request body: ' + JSON.stringify(request.body)); function welcome(agent) { agent.add(`Welcome to my agent!`); } function fallback(agent) { agent.add(`I didn't understand`); agent.add(`I'm sorry, can you try again?`); } function connectToDatabase(){ const connection = mysql.createConnection({ host: '***.***.***.***', user: '*************', password: '*********', database: '****************' }); return new Promise((resolve, reject) => { connection.connect(); resolve(connection); }); } function queryDatabase(connection){ return new Promise((resolve, reject) => { connection.query('SELECT * FROM Data', (error, results, fields) => { resolve(results); }); }); } function handleReadDB(agent){ return connectToDatabase() .then(connection => { return queryDatabase(connection) .then(result => { console.log(result); connection.end(); }); }); } let intentMap = new Map(); intentMap.set('Default Welcome Intent', welcome); intentMap.set('Default Fallback Intent', fallback); intentMap.set('ReadDB', handleReadDB); // intentMap.set('your intent name here', googleAssistantHandler); agent.handleRequest(intentMap); });

    docker container run --name jenkins-docker --rm --detach ^
    --privileged --network jenkins --network-alias docker ^
    --env DOCKER_TLS_CERTDIR=/certs ^
    --volume jenkins-docker-certs:/certs/client ^
    --volume jenkins-data:/var/jenkins_home ^
    --volume "%HOMEDRIVE%%HOMEPATH%":/home ^
    docker:dind

    and

  3. 运行命令

    docker run jenkinsci / blueocean 要么 docker运行docker:dind

  4. 复制并粘贴密钥。

答案 7 :(得分:1)

我在安装目录中的以下文件中找到了令牌:

<jenkins install dir>\users\admin\config.xml

和元素

<jenkins.install.SetupWizard_-AuthenticationKey>
<key> THE KEY </key>
</jenkins.install.SetupWizard_-AuthenticationKey>

答案 8 :(得分:1)

使用lil快捷方式转到文件夹:

cmd + shift + g

然后插入 / Users / Shared / Jenkins

你可以看到秘密文件夹 - 可能表明它被锁定了。

解锁:右键单击文件夹,然后单击信息+单击底部的锁定。现在你可以改变窗口底部显示的权利

希望有所帮助:)

问候,斯蒂芬妮^ __ ^

答案 9 :(得分:1)

如果无法在C:\Windows\System32\config\systemprofile\.jenkins\secrets\initialAdminPassword位置找到Jenkins密码

通过在Tomcat服务器上安装Jenkins通用战争,请尝试以下

解决方案: 将环境变量JENKINS_HOME设置为您的詹金斯路径说

JENKINS_HOME ="C:/users/username/apachetomcat/webapps/jenkins"

Jenkins.war放置在Tomcat的webapp文件夹中,然后启动Tomcat, 初始管理员密码在路径中生成

C:\Program Files (x86)\Apache Software Foundation\Tomcat 9.0\webapps\jenkins\secrets\initialAdminPassword

答案 10 :(得分:1)

另一种绕过解锁屏幕的方法是将UpgradeWizard状态复制到InstallUtil的最后执行版本,添加内容为“ false”的install.runSetupWizard文件,并将config.xml installStateName从NEW更新为RUNNING。 / p>

var imgData = new Image();
imgData = "/var/www/site/images/photo.png";

var doc = new jsPDF("l","mm", [85, 53]);
doc.addImage(imgData , 'png', 25, 10, "25", "23");
var string = doc.output('bloburi');
$('.preview-pane').attr('src', string);

作为参考,这是我用来运行jenkins的命令:

docker exec -it jenkins bash
sed -i s/NEW/RUNNING/ /var/jenkins_home/config.xml
echo 'false' > /var/jenkins_home/jenkins.install.runSetupWizard
cp /var/jenkins_home/jenkins.install.UpgradeWizard.state /var/jenkins_home/jenkins.install.InstallUtil.lastExecVersion
exit
docker restart jenkins

您还需要使用根URL更新配置:

docker run --rm --name jenkins --network host -u root -d -v jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean:1.16.0

答案 11 :(得分:1)

在mac使用中:

sudo more /Users/Shared/Jenkins/Home/secrets/initialAdminPassword

答案 12 :(得分:1)

当您在Windows上使用Docker并使用Gi​​t-Bash时,此方法效果很好

假设类似:

# docker run --detach --publish 8080:8080 --volume jenkins_home:/var/jenkins_home --name jenkins jenkins/jenkins:lts

执行以获取容器ID,例如“ d56686cb700d”

# docker ps -l

现在告诉Docker返回该容器ID的日志中写入的密码:

# docker logs d56686cb700d 2>&1 | grep -A5 -B5 Admin
  • 2>&1将stderr重定向到stdout
  • -A5在其中带有“ Admin”的行之后包括5行
  • -B5在其中带有“ Admin”的行之前包含5行

输出示例:

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

47647383733f4387a0d53c873334b707

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

答案 13 :(得分:1)

你可能会在catalina.out中看到它。我在tomcat中安装了Jenkins战争,我可以在catalina.out中看到这个。

答案 14 :(得分:1)

阻止安装向导的一种方法是在$JENKINS_HOME中执行以下操作:

  1. 创建名为.last_exec_version
  2. 的空文件
  3. 创建名为upgraded的文件
    • 如果留空,横幅会提示您升级&#34;到2.0(这意味着安装一堆像Pipeline这样的新插件)
    • 如果该文件的内容为2.0,您将不会收到任何横幅广告,并且它将像普通的旧Jenkins安装一样
  4. 请记住,此向导可以防止在安装过程中未经授权访问Jenkins。但是,如果您希望使用Ansible / Puppet / etc等部署Jenkins的自动安装,则绕过此向导非常有用。

    这是针对Jenkins 2.0-beta-1进行测试的 - 因此这些说明可能无法在未来的测试版或稳定版中使用。

答案 15 :(得分:0)

以防万一,如果您安装/升级了新版本的jenkins,而又无法在服务器上找到管理员凭据,则...

如果您使用的是旧版本的jenkins,并在其顶部尝试重新安装/升级新版本的jenkins,

“ JENKINS_HOME”下的文件,即-

  1. $ {JENKINS_HOME} /jenkins.install.InstallUtil.lastExecVersion
  2. $ {JENKINS_HOME} /jenkins.install.UpgradeWizard.state

将导致詹金斯跳过解锁(或管理员凭据屏幕),并且网页直接要求您输入用户名和密码。即使在服务器上,您也找不到“ $ {JENKINS_HOME} / secrets / initialAdminPassword”。

在这种情况下,请不要惊慌。只需尝试在新安装/升级的jenkins服务器中使用旧的管理员用户凭据即可。

简而言之,如果您在旧版本的jenkins服务器中具有admin身份,则在升级jenkins服务器之后,新服务器将不会要求您再次设置admin用户的密码。实际上,它只会使用旧的信用证。

答案 16 :(得分:0)

我在下面的目录下找到它。完整的问题详细信息https://github.com/jenkinsci/ibm-security-appscansource-scanner-plugin/issues/2

C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Jenkins\.jenkins

答案 17 :(得分:0)

第1步:在Mac上打开终端

第2步:连接或粘贴

sudo cat **/Users/Shared/Jenkins/Home/secrets/initialAdminPassword**

第3步:它将要求输入密码,输入您的mac密码,然后输入

第4步:将生成一个密钥。

第5步:将安全令牌复制并粘贴到Jenkins

第6步:点击继续

答案 18 :(得分:0)

我已经使用Brew设置了Jenkins,但是当我重新启动Mac时,Jenkins要求输入 initialAdminPassword (问题截图)

问题是它不是在 sercret 目录下生成的。

因此,我发现使用以下命令在{strong> 8080 端口上运行的Jenkins进程,并使用$ sudo lsof -i -n -P | grep TCP(66是进程ID)将其终止。

然后,我从https://jenkins.io/download/

下载了最新的jenkins .war 文件。

执行的命令:$ sudo kill 66(确保您位于jenkins.war目录中)。

就是这样,一切正常。

答案 19 :(得分:0)

jenkins.err 中打开 C:\Program Files\Jenkins\ 文件。 在该文件中检查这一行之后的哈希键

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

并将其粘贴到 jenkins 提示中。为我工作。

答案 20 :(得分:0)

在 Ubuntu 18.04.5 LTS (Bionic Beaver) - Ubuntu Releases 中解决 docker 容器的这个问题

1- 通过 ssh 或其他方法连接到您的 docker 服务器或 ubuntu 服务器

2- 运行 sudo docker ps

3- 复制容器名称参数(“NAMES”)

4- 运行 sudo docker 记录“your_parameters_NAMES_VALUES”

5- 找到以下句子“需要 Jenkins 初始设置。已创建管理员用户并生成密码。 请使用以下密码继续安装:"并复制密码

答案 21 :(得分:0)

如果有人选择将Jenkins作为 Docker 容器运行,可能会遇到与我相同的问题。
因为accessing-the-jenkins-blue-ocean-docker-container完全不同,所以 常见问题是while(true) { boolean flag = driver.findElement(By.id("id_name")).isDisplayed(); if(flag) break; }
您需要通过/var/lib/jenkins/secrets: No such file or directory访问,Docker提供的链接非常有用 除非Jenkins可能未指定,否则您可能需要使用容器ID。

<docker-container-name>

docker exec -it jenkins-blueocean bash

可以访问docker exec -it YOUR_JENKINS_CONTAINER_ID bash

密码就在那里。

答案 22 :(得分:0)

问题可以在最新版本中修复:我的是2.4。该错误是由于URL中的%2fjenkins%2f。之前的版本与%2fjenkins一起出现,并且过去也出现了同样的错误。他们已解决此问题,但URL已从%2fjenkins更改为%2fjenkins%。因此,作为URL中的摘要,目前%2fjenkins%即将到来。在传递管理员密码之前,将其更改为%2fjenkins。与此一起添加.last_exec_version空文件。

答案 23 :(得分:0)

如果你没有在那里找到它,那么大多数jenkins会告诉你initialAdminPassword的路径,然后你必须检查jenkins日志

在日志中你会看到

05-May-2017 01:01:41.854 INFO [Jenkins初始化线程] jenkins.install.SetupWizard.init

Jenkins初始设置是必需的。已创建管理员用户并生成密码。 请使用以下密码继续安装:

7c249e4ed93c4596972f57e55f7ff32e

也可以在以下网址找到:/opt/tomcat/.jenkins/secrets/initialAdminPassword

答案 24 :(得分:0)

以下方法在2.42.2

上不再有效

创建一个名为.last_exec_version的空文件 创建名为upgrade的文件 如果留空,横幅将提示您“升级”到2.0(这意味着安装一堆像Pipeline这样的新插件) 如果该文件的内容是2.0,您将不会收到任何横幅,它将像常规的旧Jenkins安装一样

答案 25 :(得分:0)

  1. 打开Mac上的终端并打开新窗口(命令+ T)
  2. 粘贴sudo cat / Users / Shared / Jenkins / Home / secrets / initialAdminPassword
  3. 它会要求输入密码,输入您的密码(我给了我的密码,我还没有检查是否有其他密码可用)并输入
  4. 将生成密钥。
  5. 复制密钥并将其粘贴到要求您输入管理员密码的位置
  6. 点击“继续”

答案 26 :(得分:0)

如果您已经在Tomcat上安装了Jenkins,那么Installation of Jenkins on Tomcat

然后转到Tomcat文件夹/ webapps / secrets,打开initialAdminPassword。

请注意,如果您使用过密码,则不会再次看到密码。我建议重新启动该过程,请参阅上面的链接。

祝你好运......!

答案 27 :(得分:0)

https://issues.jenkins-ci.org/browse/JENKINS-35981

在浏览器中尝试使用%2Fjenkins%2F而不是%2Fjenkins

答案 28 :(得分:0)

- &gt;如果您使用的是linux计算机,请以 root 用户身份登录:sudo su

- &gt;然后转到以下路径:cd /var/lib/jenkins/secrets

- &gt;只需查看IntialAdminPassword文件,即可看到密钥。

- &gt;将密钥粘贴到jenkins窗口中,它将被解锁。

答案 29 :(得分:0)

转到C:\ Program Files(x86)\ Jenkins \ secrets

然后使用notepad ++打开文件initail Admin Password并粘贴其内容。

多数民众赞成

答案 30 :(得分:-1)

我申请秘密后,我得到问题访问/詹金斯。找不到理由。下面说它由Jetty提供动力。

我做了这些安装步骤。 wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add - sudo sh -c&#39; echo deb http://pkg.jenkins.io/debian-stable二进制/&gt; /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install jenkins

那么这个 sudo apt-get update sudo apt-get install jenkins

答案 31 :(得分:-1)

打开终端 转到安装jenkins.war的路径 键入命令-java -jar jenkins.war -httpPort = 8080 打开浏览器并输入localhost:8080 Jenkins的初始设置是必需的。已创建管理员用户,并已生成密码。 请使用以下密码继续安装:

0bfe918e0e374af983d60bf0882ca0db

这也可以在以下位置找到:/Users/hunger-box/.jenkins/secrets/initialAdminPassword

使用此密码作为您的密码-0bfe918e0e374af983d60bf0882ca0db

答案 32 :(得分:-3)

Jenkins初始设置是必需的。已创建管理员用户并生成密码。

请使用以下密码继续安装:

c3ca6360fa014c5d9143286484696217

也可以在以下位置找到: C:\ Users \ arvind.jenkins \ secrets \ initialAdminPassword

转到此文件夹,您将找到系统生成的密码副本并将其粘贴。