0
点赞
收藏
分享

微信扫一扫

linux12Devops --> 03Jenkins实战


文章目录

  • ​​一、Jenkins​​
  • ​​1.安装Jenkins​​
  • ​​2.登录​​
  • ​​3.安装插件​​
  • ​​4.优化​​
  • ​​二、解决jenkins忘记用户密码问题​​
  • ​​三、用户权限 (RBAC权限)​​
  • ​​1.创建用户和修改密码​​
  • ​​2.创建权限组​​
  • ​​1)启用Role-Based Strategy权限插件​​
  • ​​2)创建及管理权限组​​
  • ​​3)分配角色组权限​​
  • ​​4)使用通配符分配权限​​
  • ​​3.凭证管理​​
  • ​​1)添加SSH凭证​​
  • ​​2)通过SSH连接部署代码,构建项目(从gitlab上拉取现成源代码部署项目)​​
  • ​​3)添加HTTP凭证​​
  • ​​4)通过HTTP连接部署代码,构建项目(从gitlab上拉取现成源代码部署项目)​​
  • ​​5)登录服务器SSH(从另一台服务器上拉取源代码)​​
  • ​​6)将从gitlab远程仓库拉取好源代码的项目部署到其他的服务器上(gitlab)​​

一、Jenkins

官网: https://pkg.jenkins.io/redhat-stable/

Jenkins是一个自动化部署的工具。依赖于Java开发的,由各种组件组成的一个自动化部署工具。

linux12Devops --> 03Jenkins实战_depovs

1.安装Jenkins

#1.安装Java
[root@jenkins jenkins]# yum install java-1.8.0-openjdk* -y

#2.安装Jenkins
方式一
# 安装Jenkins(推荐,因为yum默认为新版本,不建议安装太新的版本)
[root@jenkins jenkins]]# mkdir packages && cd packages
[root@jenkins jenkins]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.249.1-1.1.noarch.rpm
[root@jenkins jenkins]# yum localinstall -y jenkins-2.249.1-1.1.noarch.rpm
[root@jenkins jenkins]# systemctl restart jenkins

方式二
# yum方式安装需要安装认证 Key
[root@jenkins jenkins]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# 安装Jenkins
[root@jenkins jenkins]# yum install jenkins
[root@jenkins jenkins]# systemctl restart jenkins

2.登录

[root@jenkins jenkins]# cat /var/lib/jenkins/secrets/initialAdminPassword
e59b14429016454f8ec2e5e7a34f6449

linux12Devops --> 03Jenkins实战_系统管理_02

3.安装插件

linux12Devops --> 03Jenkins实战_git_03


linux12Devops --> 03Jenkins实战_服务器_04


linux12Devops --> 03Jenkins实战_服务器_05


linux12Devops --> 03Jenkins实战_depovs_06

#1.安装插件
#添加插件
[root@gitlab jenkins]# tar -xf /opt/plugins.tar.gz -C /var/lib/jenkins/plugins
# 授权jenkins用户
[root@gitlab ~]# chown -R jenkins.jenkins /var/lib/jenkins/
#重启
[root@gitlab jenkins]# systemctl restart jenkins.service

linux12Devops --> 03Jenkins实战_depovs_07

4.优化

[root@gitlab updates]# cd /var/lib/jenkins/updates/
[root@gitlab updates]# sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
[root@gitlab updates]# sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

#最后,系统管理 --> 插件管理 --> 高级,把站点升级改为国内插件下载地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

linux12Devops --> 03Jenkins实战_系统管理_08


linux12Devops --> 03Jenkins实战_服务器_09


linux12Devops --> 03Jenkins实战_git_10


linux12Devops --> 03Jenkins实战_服务器_11


linux12Devops --> 03Jenkins实战_服务器_12


linux12Devops --> 03Jenkins实战_git_13

二、解决jenkins忘记用户密码问题

#1.找到存密码的文件
[root@jenkins ~]# cd /var/lib/jenkins/users/
[root@jenkins /var/lib/jenkins/users]# ll
total 4
drwx------ 2 jenkins jenkins 24 Aug 13 11:56 mm_7745824900363635554
-rw-r--r-- 1 jenkins jenkins 294 Aug 13 11:55 users.xml

[root@jenkins elainafang_4555949760451263805]# vim mm_7745824900363635554/config.xml
#2.将密码内容替换成123456的密码内容 #在网上查看jenkins密码
<passwordHash>#jbcrypt:$2a$10$2LvNPMgFiYAyT/CeE5FwnOUkQz4SbTd9Myq/pWf5qAQtz0MWe6K86</passwordHash>
替换成 <passwordHash>#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq</passwordHash>

#3.重新加载内面用123456密码登录后在修改密码

linux12Devops --> 03Jenkins实战_服务器_14

三、用户权限 (RBAC权限)

1.创建用户和修改密码

linux12Devops --> 03Jenkins实战_git_15


linux12Devops --> 03Jenkins实战_depovs_16


linux12Devops --> 03Jenkins实战_服务器_17


linux12Devops --> 03Jenkins实战_服务器_18


linux12Devops --> 03Jenkins实战_git_19

2.创建权限组

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

1、 启用授权策略插件
系统管理 ---> 全局安全配置 ---> 授权策略 ---> Role-Based Strategy

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

linux12Devops --> 03Jenkins实战_depovs_20


linux12Devops --> 03Jenkins实战_系统管理_21


linux12Devops --> 03Jenkins实战_depovs_22

2)创建及管理权限组

系统管理 —> Manage and Assign Roles —> Manage Roles —> 各个角色(权限组)

linux12Devops --> 03Jenkins实战_git_23


linux12Devops --> 03Jenkins实战_服务器_24


linux12Devops --> 03Jenkins实战_服务器_25

Global roles(全局角色): # 管理员等高级用户可以创建基于全局的角色 
Item roles(项目角色): # 针对某个或者某些项目的角色
Node roles(节点角色): # 节点相关的权限

Base: # 设置成所有的用户都有查看的权限
Alvin: # 设置以alvin开头的项目有超管权限
Oldboy: # 设置以oldboy开头的项目有超管权限

3)分配角色组权限

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

linux12Devops --> 03Jenkins实战_git_26


linux12Devops --> 03Jenkins实战_系统管理_27


linux12Devops --> 03Jenkins实战_depovs_28


linux12Devops --> 03Jenkins实战_系统管理_29

linux12Devops --> 03Jenkins实战_服务器_30


linux12Devops --> 03Jenkins实战_系统管理_31


linux12Devops --> 03Jenkins实战_服务器_32


linux12Devops --> 03Jenkins实战_depovs_33

linux12Devops --> 03Jenkins实战_系统管理_34

4)使用通配符分配权限

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

  • 测试:先创建角色分配所有以shang开头的项目(shang.*)
    创建test1项目做为参考
  • linux12Devops --> 03Jenkins实战_系统管理_35

linux12Devops --> 03Jenkins实战_服务器_36


linux12Devops --> 03Jenkins实战_git_37


linux12Devops --> 03Jenkins实战_系统管理_38

3.凭证管理

# 系统管理  ->  Manage Credentials -> 全局

# Jenkins通过SSH下载代码
1、将Jenkins服务器中的公钥放到GitLab上
2、将Jenkins服务器私钥放到Jenkins凭证(Manage Credentials)之中

# Jenkins连接远程机器
1、系统管理 -> 系统配置 -> SSH remote hosts

2、系统管理 -> 系统配置 -> Publish over SSH

1)添加SSH凭证

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

linux12Devops --> 03Jenkins实战_系统管理_39


linux12Devops --> 03Jenkins实战_depovs_40


linux12Devops --> 03Jenkins实战_git_41


linux12Devops --> 03Jenkins实战_服务器_42

#1.生成密钥对
[root@jenkins ~]# ssh-keygen -t rsa

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

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

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

linux12Devops --> 03Jenkins实战_系统管理_43

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私有仓库密码存储类型。

linux12Devops --> 03Jenkins实战_服务器_44

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

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

  • 先到gitlab上复制项目源代码的仓库ssh链接地址
  • linux12Devops --> 03Jenkins实战_git_45

  • 打开Jenkins选择要部署的项目
  • linux12Devops --> 03Jenkins实战_服务器_46


  • linux12Devops --> 03Jenkins实战_系统管理_47


  • linux12Devops --> 03Jenkins实战_depovs_48


  • linux12Devops --> 03Jenkins实战_depovs_49


  • linux12Devops --> 03Jenkins实战_git_50


  • linux12Devops --> 03Jenkins实战_服务器_51

#可在服务器上查看代码文件
[root@jenkins ~]# cd /var/lib/jenkins/workspace/
[root@jenkins /var/lib/jenkins/workspace]# ll
total 0
drwxr-xr-x 3 jenkins jenkins 53 Aug 14 00:56 shanghai
drwxr-xr-x 2 jenkins jenkins 6 Aug 14 00:56 shanghai@tmp
[root@jenkins /var/lib/jenkins/workspace]# cd shanghai
[root@jenkins /var/lib/jenkins/workspace/shanghai]# ll
total 8
-rw-r--r-- 1 jenkins jenkins 72 Aug 14 00:56 index.html
-rw-r--r-- 1 jenkins jenkins 50 Aug 14 00:56 README.md
[root@jenkins /var/lib/jenkins/workspace/shanghai]# cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@192.168.15.101:technology-department/artificial-intelligence.git
fetch = +refs/heads/*:refs/remotes/origin/*

3)添加HTTP凭证

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

linux12Devops --> 03Jenkins实战_系统管理_52


linux12Devops --> 03Jenkins实战_git_53


linux12Devops --> 03Jenkins实战_git_54

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

linux12Devops --> 03Jenkins实战_系统管理_55


linux12Devops --> 03Jenkins实战_depovs_56


linux12Devops --> 03Jenkins实战_服务器_57

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

此处以JenkinsSSH连接gitlab为例

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

linux12Devops --> 03Jenkins实战_depovs_58


linux12Devops --> 03Jenkins实战_git_59

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

linux12Devops --> 03Jenkins实战_系统管理_60


linux12Devops --> 03Jenkins实战_git_61


linux12Devops --> 03Jenkins实战_系统管理_62


linux12Devops --> 03Jenkins实战_git_63


举报

相关推荐

0 条评论