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


当前回答

詹金斯对库贝努特斯和多克

kubectl exec PODID——namespace= Jenkins -it——/bin/bash将允许您直接访问运行Jenkins的容器,但您将没有根访问权限,sudo, vi和许多命令不可用,因此需要一个解决方案。

用kubectl描述pod[…]找到运行Pod的节点和容器ID (docker://…)

SSH进入节点 使用docker exec -ti -u root——/bin/bash以root权限访问容器 apt-get更新 Sudo apt-get安装vim

第二个区别是Jenkins配置文件被放置在与持久卷挂载点对应的不同路径中,即/var/jenkins_home,这个位置可能在将来会改变,运行df检查它。

然后禁用安全性-在/var/jenkins_home/jenkins/config.xml文件中将true改为false。

<useSecurity>false</useSecurity>

现在重新启动Jenkins就足够了,这个操作将导致容器和Pod死亡,它将在几秒钟内重新创建,并更新配置(并且由于持久卷,所有的机会都像vi,更新被擦除)。

整个解决方案已经在谷歌Kubernetes Engine上进行了测试。 更新 请注意,您也可以运行ps -aux,即使没有root访问权限,密码也会以纯文本显示。

jenkins@jenkins-87c47bbb8-g87nw:/$ps -aux
[...]
jenkins [..] -jar /usr/share/jenkins/jenkins.war --argumentsRealm.passwd.jenkins=password --argumentsRealm.roles.jenkins=admin
[...]

其他回答

步骤1:进入目录cd .jenkins/secrets,然后你会得到一个'initialAdminPassword'。

step-2: nano initialAdminPassword

你会得到一个密码

我发现有问题的文件位于/var/lib/jenkins中,名为config.xml,修改后解决了这个问题。

要非常简单地禁用安全性和启动向导,请使用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直到服务器启动才存在。

很多时候你没有权限编辑config.xml文件。

最简单的方法是返回config.xml,然后使用sudo命令删除。

使用命令sudo /etc/init.重启jenkinsd / jenkins重启

这将禁用Jenkins中的所有安全性,登录选项将消失

将< usesecsecurity >true</ usesecsecurity >更改为< usesecsecurity >false</ usesecsecurity >是不够的,你应该删除<authorizationStrategy>和<securityRealm>元素,并通过执行sudo service jenkins restart重启jenkins服务器。

请记住,仅将< usesecsecurity >设置为false可能会给您带来问题,因为这些说明在这里的官方文档中提到了。