是否有一种方法来重置所有(或只是禁用安全设置)从命令行没有用户/密码,因为我已经设法完全锁定自己的詹金斯?


当前回答

最简单的解决方案是完全禁用安全性-将/var/lib/jenkins/config.xml文件中的true更改为false。

<useSecurity>true</useSecurity>

实现相同功能的一行代码:

sed -i 's/<useSecurity>true<\/useSecurity>/<useSecurity>false<\/useSecurity>/g' /var/lib/jenkins/config.xml

然后重启Jenkins:

sudo service jenkins restart

然后转到管理面板,再次设置所有内容。

如果你在Kubernetes pod中运行Jenkins并且不能运行service命令,那么你可以通过删除pod重新启动Jenkins:

kubectl delete pod <jenkins-pod-name>

一旦命令发出,Kubernetes将终止旧的吊舱并启动一个新的吊舱。

其他回答

要非常简单地禁用安全性和启动向导,请使用JAVA属性:

-Djenkins.install.runSetupWizard=false

这样做的好处是你可以在Docker镜像中使用它,这样你的容器就会立即启动,没有登录屏幕:

# Dockerfile
FROM jenkins/jenkins:lts
ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false

请注意,正如其他人所提到的,Jenkins的config.xml在映像中的/var/jenkins_home中,但是使用sed从Dockerfile中修改它会失败,因为(可能)config.xml直到服务器启动才存在。

我会在解决方案的基础上增加一些改进:

https://stackoverflow.com/a/51255443/5322871

在我的场景中,它部署了带有nfs卷的Swarm集群,为了执行密码重置,我做了以下工作:

附着在豆荚上:

$ docker exec -it <pod-name> bash

使用python生成哈希密码(不要忘记在你的引用密码之外指定字母b,方法hashpw需要一个以字节为单位的参数):

$ pip install bcrypt
$ python
>>> import bcrypt
>>> bcrypt.hashpw(b"yourpassword", bcrypt.gensalt(rounds=10, prefix=b"2a"))
'YOUR_HASH'

一旦进入容器,找到所有config.xml文件:

$ find /var/ -type f -iname "config.xml"

一旦确定,修改字段的值(在我的情况下,config.xml在另一个位置):

$ vim /var/jenkins_home/users/admin_9482805162890262115/config.xml
...
<passwordHash>#jbcrypt:YOUR_HASH</passwordHash>
...

重新启动服务:

docker service scale <service-name>=0
docker service scale <service-name>=1

希望这对任何人都有帮助。

为了删除Windows操作系统中jenkins的默认安全性,

您可以遍历在/users/{UserName}/.jenkins中创建的Config.xml文件。

在这个文件中,您可以更改代码

<useSecurity>true</useSecurity>

To,

<useSecurity>false</useSecurity>

如果你使用矩阵权限(可能很容易适应其他登录方法),在不禁用安全性的情况下重置它:

在config.xml中,将disableSignup设置为false。 重启詹金斯。 去詹金斯的网页,注册一个新用户。 在config.xml中,复制<permission>hudson.model.Hudson. xml中的一个。管理:username</permission>行,用新用户替换username。 如果它是私有服务器,在config.xml中将disableSignup设置为true。 重启詹金斯。 进入Jenkins网页,以新用户身份登录。 重置原用户密码。 以原用户登录。

可选的清理:

删除新用户。 删除config.xml中临时的<permission>行。

在此回答过程中,没有任何证券受到损害。

在El-Capitan中,config.xml不能在

/var/lib/jenkins/

它可在

~ / .jenkins

然后,如前所述,打开config.xml文件并进行以下更改

将< usesecsecurity >true</ usesecsecurity >替换为< usesecsecurity >false</ usesecsecurity > 删除<authorizationStrategy>和<securityRealm> 保存它并重新启动jenkins(sudo service jenkins restart)