jenkins用户权限、凭证管理、部署远程仓库代码到服务器上

0.安装gitlab

0.环境:10.0.0.60

1.安装gitlab
[root@gitlab opt]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.0.3-ce.0.el7.x86_64.rpm

2.安装GitLab
# 安装依赖包
[root@gitlab opt]#  yum install -y curl policycoreutils-python openssh-server perl
[root@gitlab opt]# yum install postfix -y
# 关闭防火墙
[root@gitlab opt]#  systemctl disable --now firewalld
# 关闭selinux
[root@gitlab opt]#  sed -i 's#enforcing#disabled#g' /etc/sysconfig/selinux
# 临时关闭
[root@gitlab opt]#  setenforce 0
# 安装
[root@gitlab opt]#  yum install -y gitlab-ce-13.0.3-ce.0.el7.x86_64.rpm 
# 修改配置文件
[root@gitlab opt]# vim /etc/gitlab/gitlab.rb 
external_url 'http://10.0.0.60'
nginx['listen_port'] = 80
# 刷新配置(默认启动)
gitlab-ctl reconfigure
#查看详细信息(客户端工具)
[root@gitlab opt]# gitlab-ctl 
#查看服务
[root@gitlab opt]# gitlab-ctl service-list
#查看服务状态
[root@gitlab opt]# gitab-ctl status
#停止服务
[root@gitlab opt]# gitlab-ctl stop nginx
#开启服务
[root@gitlab opt]# gitlab-ctl start nginx

jenkins知识

一、用户权限

1.创建用户

系统管理 —> 用户管理 —> 新建用户

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.创建权限组

使用权限组,需要安装Role-Based Strategy权限插件

1、 启用授权策略插件
系统管理 —> 全局安全配置 —> 授权策略 —> Role-Based Strategy
2、创建及管理权限组
系统管理 —> Manage and Assign Roles —> Manage Roles —> 各个角色(权限组)

1)启用Role-Based Strategy权限插件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2)创建及管理权限组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3)分配角色组权限

系统管理 —> Manage and Assign Roles —> Assign Roles

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4)使用通配符分配权限

.* : 匹配以什么开头的项目

1.创建jyh1用户:

在这里插入图片描述

2.创建jyh1的管理权限组

在这里插入图片描述

3.创建分配角色

在这里插入图片描述
在这里插入图片描述

4.登录jyh1账号测试

在这里插入图片描述

3.凭证管理

1.Username with password:用户名和密码
2.SSH Username with private key: 使用SSH用户和密钥
3.Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径 设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。
4.Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token Certificate:通过上传证书文件的方式
5.X.509:证书,一般使用第三方云服务时使用。
6.Certificate:docker私有仓库密码存储类型。

系统管理 —> Manage Credentials —> 系统凭证 —> 全局凭证 —> 添加凭证

1)通过http连接部署代码,构建项目(从gitlab上拉取现成源代码部署项目)

系统管理 —> Manage Credentials —> 系统凭证 —> 全局凭证 —> 添加凭证 —> Username with Password

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.生成秘钥对
[root@jenkins admin_6297016367257135384]# ssh-keygen
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:6nv6J93ZcRL+ladaQfLif9Ubm27kVPlChDY2/M9Bb0U root@jenkins
The key's randomart image is:
+---[RSA 2048]----+
|           . . .E|
|            B ...|
|           o.=o +|
|             ++o+|
|        S   .oo=*|
|       .   . .=*X|
|      .  . ..o=BO|
|     .  o o ooo*o|
|      +=.o  ..+o |
+----[SHA256]-----+
[root@jenkins admin_6297016367257135384]# 
[root@jenkins admin_6297016367257135384]# cd 
[root@jenkins ~]# ll -a .ssh/
总用量 8
drwx------  2 root root   38 726 15:38 .
dr-xr-x---. 7 root root  238 726 15:38 ..
-rw-------  1 root root 1675 726 15:38 id_rsa
-rw-r--r--  1 root root  394 726 15:38 id_rsa.pub
[root@jenkins ~]# cat id_rsa
cat: id_rsa: 没有那个文件或目录
[root@jenkins ~]# ll -a .ssh/id_rsa
-rw------- 1 root root 1675 726 15:38 .ssh/id_rsa
[root@jenkins ~]# cat .ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAr1Zyq9AsDEyNPQV7o2ciGZgz0L0rOpSJ95pSSnJjUE6BQQkl
rd+R0m6yMaGbHLB8JYzGzMj6XBsTu4jAMCoAQJZrffrucGAOFuX49DE1n3hKgob3
+dtS20mZ1KGn8Q6TVowVuRieawIN/8PL6QoCZ7J3+7JVQD/B5W1Z2/QqAnpHriQi
Fzef2iDH2kaV0PPaExvkD5iEBN4bAjONc3apAH4r1uI9PQhHdSrFmmEm9J/KdNKe
7upZixRukHUuAoeZCIHo4enQgAG16A6qnIsM4drLPe/tcNWs1+i/TaQ+ocFZq3zF
knalIiu8UOHZ4PIVBDmqFjLrDRmVWBgukTOfdQIDAQABAoIBAEOLuwtDW+S1DOgI
F7RAQ9u2TafJaEDd/jR7p930KRxD0fla68AK06NMb6s9BYNM3dadX+x+NCyNZdGm
AdvMImK/T9OtenOiHWtm1rxDxNOVRKb6FceUXVwLA47tY8QyiEIcHzY6LLUuinQQ
WpqA96I5F43ICp2AslKPCMH6UsC29UVCv91M9gvO76RQHapcCV/CN05MFhB+ZfDX
VNDnhI0QqBzbzC2uTUKOnkKi+Ak+ivPBbnwaTrUk1oxdjXM+mlWU8rD5gZFvIQK/
tNLcv7jsPealvNTIxa6NL/BGYVEVe0BoS5fGOWZDqvKd/BJ9vK9Qdpl0KRwySUfh
0PWl0PUCgYEA3aA1Jf+0UNNW7S5Oh8GVnHG3KAOWLuhKNif4qmW1xiJ7OTPpqmHF
5G4AdujNIHkmLEubP1Zv54qOatAtrTLxGBfSpz58aKZaEF8hdpc2vGDrfRELQ20/
fi7PslwdNSVBB7llF63KuG7+FFvwyK/LGpvHWh0s43lLkiMHWxreGvMCgYEAyohX
WkUdC4xhewACnu7VHM9XVtYPsW3FztDzB43/ndwfl0q5nXpot0f6757BozYaSpiB
zrEzh4OgNXweUS0TlSWfKWeuej6UXcbQENHalHv8prJ1ZSEBm+IlUy1jxmBVur3o
TlhUBVB/N/hCETKDTz9RY6esmc9pp2ZQV+yTpfcCgYACepE9nI+Ku+JkArmUISEo
P8lZpDigy65Qzr+kQED5N1eDe0YoxrEs7eIJcm8g5tn7ctkIq1HTGCShozRvlHtH
1rRfdH51uS6Wskmwht5w2vCnVHJ4zZcBNUrTZt5YwtLoYDV2P1ZeG7exyJl31SeD
Y6ymIF9pJ+kleEjTxwgm6wKBgQC52QafVRBkCnthDQ9anDp+51xz2JYp8Fs1ftOk
OQ844kcy42UUNsFkfe6sd3ektv7FONDUxBJO5d/bdHu1bbGsiQtWSUf38PjgXJGM
/aSf4G5k4RmMpQ7+5jPt8Za+8KN6as2DJtZi0g0LZQnrEfkgfS/ITJK7yXJgJCjR
pcuO3QKBgHz9CEbXGN+1Prk1qHvzOgHMJKvspun6isnw6mKZCfqcV4c1kRqi/Q4c
uTn1p/V5tES6M7zjoaG4tniVrcMPDQEe/WdlXhCuIjyCebGCV/VSHElLxYZPjzrd
MI595InSxw1TbhFfm6vfTkglubPmYkltFLNWOqzxoaPsNzv1MRGl
-----END RSA PRIVATE KEY-----


2.将私钥添加jenkins(不能有空格)
[root@jenkins ~]# cat /root/.ssh/id_rsa
见下图

3.将公钥添加gitlab
[root@jenkins ~]# cat /root/.ssh/id_rsa.pub 
见下下图


*******重点注意:前提需要安装git工具***************
yum install git -y

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 先到gitlab上复制项目源代码的仓库http链接地址

在这里插入图片描述

  • 打开Jenkins选择要部署的项目

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在jenkins的目录中可以看见代码
[root@jenkins ~]# cd /var/lib/jenkins/workspace/
[root@jenkins workspace]# ll
总用量 0
drwxr-xr-x 3 jenkins jenkins 35 726 20:29 shnaghai-004
drwxr-xr-x 2 jenkins jenkins  6 726 20:30 shnaghai-004@tmp
[root@jenkins workspace]# cd shnaghai-004
[root@jenkins shnaghai-004]# ll
总用量 4
-rw-r--r-- 1 jenkins jenkins 14 726 20:29 README.md


2)通过SSH连接部署代码,构建项目(从gitlab上拉取现成源代码部署项目)

系统管理 —> Manage Credentials —> 系统凭证 —> 全局凭证 —> 添加凭证 —> ssh username with private key

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 先到gitlab上复制项目源代码的仓库ssh链接地址
    在这里插入图片描述
  • 打开Jenkins选择要部署的项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@jenkins ~]# cd  /var/lib/jenkins/workspace/
[root@jenkins workspace]# ll
drwxr-xr-x 3 jenkins jenkins 35 726 21:13 shnaghai-005
drwxr-xr-x 2 jenkins jenkins  6 726 21:13 shnaghai-005@tmp
[root@jenkins workspace]# cd shnaghai-005
[root@jenkins shnaghai-005]# ll
总用量 4
-rw-r--r-- 1 jenkins jenkins 24 726 21:13 README.md

3)登录服务器SSH(从另一台服务器上拉取源代码)

此处以JenkinsSSH连接gitlab为例

1.先在服务器上做免密登录
在Jenkins服务器上生成密钥对,将公钥推送到gitlab服务器
[root@jenkins ]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.0.0.60

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4) 将从gitlab远程仓库拉取好源代码的项目部署到其他的服务器上(gitlab)

1.有时候后端的代码需要编译,手动先假设编译一下
在这里插入图片描述
在这里插入图片描述
2.进入jenkins查看一下:
[root@jenkins ~]# cd /var/lib/jenkins/workspace/shnaghai-005
[root@jenkins shnaghai-005]# ll
总用量 8
-rw-r–r-- 1 jenkins jenkins 13 7月 26 22:10 deamon.html
-rw-r–r-- 1 jenkins jenkins 24 7月 26 21:13 README.md
[root@jenkins shnaghai-005]# cat deamon.html
假设编译
[root@jenkins shnaghai-005]# ###

结论:在构建以前所有的执行的都是在jenkins服务上执行,构建后的操作都是在部署的服务器上执行。
构建后的操作:在这里插入图片描述在这里插入图片描述

在这里插入图片描述

[root@gitlab ~]# hostname -I
10.0.0.60 172.16.1.60
[root@gitlab ~]#
[root@gitlab ~]# pwd
/root
[root@gitlab ~]# ll
总用量 710068
-rw-r–r-- 1 root root 22 7月 26 22:25 deamon.html
[root@gitlab ~]# cat deamon.html
假设在执行命令

5) 简单部署====一般不可取

jenkins=======》gitlab上

1.准备nginx的目录

[root@gitlab ~]# mkdir -p /usr/share/nginx/html

2.在jenkins上系统管理=系统配置publish ssh over 配置ssh-server
在这里插入图片描述
3.在jenkins选择对应的项目右键点击配置
构建后操作==
在这里插入图片描述
在这里插入图片描述

jenkins查看
[root@jenkins ~]# cd /var/lib/jenkins/workspace/shnaghai-005
[root@jenkins shnaghai-005]# ll
总用量 8
-rw-r--r-- 1 jenkins jenkins 13 726 23:13 deamon.html
-rw-r--r-- 1 jenkins jenkins 24 726 21:13 README.md
[root@jenkins shnaghai-005]# cat deamon.html 
假设编译
[root@jenkins shnaghai-005]# cat README.md 
# hello wordld project


gitlab查看
[root@gitlab html]# cd /usr/share/nginx/html/
[root@gitlab html]# ll
总用量 8
-rw-r--r-- 1 root root 123 726 23:32 deamon.html
-rw-r--r-- 1 root root  24 726 23:15 README.md
drwxr-xr-x 3 root root  19 726 23:31 usr
[root@gitlab html]# cat deamon.html 
假设编译
假设在执行命令
假设在执行命令
假设在执行命令
假设在执行命令
假设在执行命令
[root@gitlab html]# cat README.md 
# hello wordld project

[root@gitlab html]# cd usr/
[root@gitlab usr]# ll
总用量 0
drwxr-xr-x 3 root root 19 726 23:31 share
[root@gitlab usr]# cd share/
[root@gitlab share]# ll
总用量 0
drwxr-xr-x 3 root root 18 726 23:31 nginx
[root@gitlab share]# cd nginx/
[root@gitlab nginx]# ll
总用量 0
drwxr-xr-x 2 root root 42 726 23:31 html
[root@gitlab nginx]# cd html/
[root@gitlab html]# ll
总用量 8
-rw-r--r-- 1 root root 13 726 23:32 deamon.html
-rw-r--r-- 1 root root 24 726 23:32 README.md

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值