一、解决jenkins忘记用户密码问题
#1.找到存密码的文件
[root@jenkins ~]# cd /var/lib/jenkins/users/elainafang_4555949760451263805/
[root@jenkins elainafang_4555949760451263805]# ll
总用量 4
-rw-r--r-- 1 jenkins jenkins 2846 4月 15 07:43 config.xml
[root@jenkins elainafang_4555949760451263805]# vim config.xml
#2.将密码内容替换成123456的密码内容
<passwordHash>#jbcrypt:$2a$10$2LvNPMgFiYAyT/CeE5FwnOUkQz4SbTd9Myq/pWf5qAQtz0MWe6K86</passwordHash>
替换成 <passwordHash>#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq</passwordHash>
#3.重新加载内面用123456密码登录后在修改密码
二、用户权限
1.创建用户
2.创建权限组
使用权限组,需要安装Role-Based Strategy权限插件
1)启用Role-Based Strategy权限插件
2)创建及管理权限组
3)分配角色组权限
4)使用通配符分配权限
.* : 匹配以什么开头的项目
- 测试:先创建角色一夜暴富001分配所有以shang开头的项目(shang.*)
创建test1项目做为参考
3.凭证管理
1)添加SSH凭证
#1.生成密钥对
[root@jenkins ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:wWPiKZ++fxoqfnhxZkld85G2juHp93VTI95a4odCN3A root@jenkins
The key's randomart image is:
+---[RSA 2048]----+
| . |
| . o + |
| . =. . + o |
| . +.o...Eo |
| . o.S. .o* ..|
| o..= .=o+ o|
| .o=. ...oo+o|
| o.o. ...o.=.+|
| ..++ooo .+...|
+----[SHA256]-----+
#2.将私钥添加jenkins(不能有空格)
[root@jenkins ~]# cat /root/.ssh/id_rsa
见下图
#3.将公钥添加gitlab
[root@jenkins ~]# cat /root/.ssh/id_rsa.pub
见下下图
*******重点注意:前提需要安装git工具***************
yum install git -y
2)通过SSH连接部署代码,构建项目(从gitlab上拉取现成源代码部署项目)
- 先到gitlab上复制项目源代码的仓库ssh链接地址
- 打开Jenkins选择要部署的项目
#可在服务器上查看代码文件
[root@jenkins ~]# cd /var/lib/jenkins/workspace/
[root@jenkins workspace]# ll
总用量 0
drwxr-xr-x 3 jenkins jenkins 35 4月 15 16:36 test1
drwxr-xr-x 2 jenkins jenkins 6 4月 15 16:37 test1@tmp
[root@jenkins workspace]# cd test1
[root@jenkins test1]# ll
总用量 4
-rw-r--r-- 1 jenkins jenkins 45 4月 15 16:36 README.md
3)添加HTTP凭证
4)通过HTTP连接部署代码,构建项目(从gitlab上拉取现成源代码部署项目)
5)登录服务器SSH(从另一台服务器上拉取源代码)
此处以JenkinsSSH连接gitlab为例
#1.先在服务器上做免密登录
在Jenkins服务器上生成密钥对,将公钥推送到gitlab服务器
[root@jenkins ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.12.40
6)将从gitlab远程仓库拉取好源代码的项目部署到其他的服务器上(gitlab)