Jenkins与Gitlab的安装

一、Jenkins持续集成工具

Jenkins本身是不具备任何功能的,Jenkins中所有的功能全部来自于插件。

1、简介

1、什么是Jenkins?
    Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
    
2、Jenkins的作用:
	Jenkins的主要目标是监控软件开发流程,快速显示问题。所以能保证开发人员以及相关人员省时省力提高开发效率。
	
3、什么使用Jenkins?
    dev		开发环境
    test	测试环境
    pre		预发布环境
    master	生成环境
    
4、官网下载地址:
	https://www.jenkins.io/
	
5、清华大学开源镜像站:
	https://mirrors.tuna.tsinghua.edu.cn/jenkins/   # 推荐使用

Jenkins与Gitlab的安装

2、Jenkins + GitLab

Jenkins 负责部署
GitLab  负责存放代码

3、Jenkins安装

Jenkins安装两种方式:
1、yum
2、rpm

# 注:因为Jenkins是使用Java开发的,所以要先装Java,不然会起不来
1、安装Java
    [root@jenkins ~]# yum install java-1.8.0-openjdk* -y   

2、安装Jenkins
    [root@jenkins ~]# yum install jenkins-2.249.1-1.1.noarch.rpm -y

3、查看状态
    [root@jenkins ~]# systemctl status jenkins.server
    
4、进入网站
	http://192.168.15.103:8080/
	
5、获取初始密码
    [root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword

Jenkins与Gitlab的安装

4、安装Jenkins插件

因为Jenkins所有功能是来源于插件的,所以需要安装插件

1、Jenkins的插件都在这里面
[root@jenkins ~]# mv plugins.tar.gz /var/lib/jenkins/plugins/
[root@jenkins ~]# cd /var/lib/jenkins/plugins/

2、解压
[root@jenkins plugins]# tar -xf plugins.tar.gz 
[root@jenkins plugins]# ll
drwxr-xr-x 7 jenkins jenkins       124 Dec  9  2020 ace-editor  # 用户和用户组必须是jenkins

3、重新启动Jenkins
[root@jenkins plugins]# systemctl restart jenkins

4、切换至配置文件目录
[root@jenkins plugins]# cd /var/lib/jenkins/updates  # 把访问地址换成百度

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

6、重启(部署完毕)
[root@jenkins updates]# systemctl restart jenkins

二、 GitLab私有代码仓库

1、简介

    GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
    GitLab和GitHub一样属于第三方基于Git开发的作品(私有仓库),GITLAB免费且开源(基于MIT协议),与Github类似, 可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器 上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放 在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。
    
# git、gitlab、GitHub的简单区别:
    1、git 是一种基于命令的版本控制系统,全命令操作,没有可视化界面
    2、gitlab 是一个基于git实现的在线代码仓库软件,提供web可视化管理界面,通常用于企业团队内部协作开发
    3、github 是一个基于git实现的在线代码托管仓库,亦提供可视化管理界面,同时免费账户和提供付费账户,提供开放和私有的仓库,大部分的开源项目都选择github作为代码托管仓库
    # 常用的代码管理工具:GitHub、Gitee、GitLab
    
# 官方下载网址:
	https://about.gitlab.com/install/
	
# 清华大学镜像站下载网址:
	https://mirrors.tuna.tsinghua.edu.cn/   # 推荐使用

Jenkins与Gitlab的安装

Jenkins与Gitlab的安装

2、部署GitLab

1、安装相关依赖
[root@gitlab ~]# yum -y install policycoreutils openssh-server openssh-clients postfix

2、关闭防火墙,关闭selinux
[root@gitlab ~]# systemctl disable firewalld
[root@gitlab ~]# setenforce 0

3、下载Gitlab安装包
[root@gitlab ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.9.7-ce.0.el7.x86_64.rpm

4、安装gitlab
[root@gitlab ~]# yum install gitlab-ce-13.9.7-ce.0.el7.x86_64.rpm -y

5、修改gitlab配置文件
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.15.104'
nginx['listen_port'] = 80

6、刷新配置(默认启动)
[root@gitlab ~]# gitlab-ctl reconfigure   # 修改密码:adminadmin

Jenkins与Gitlab的安装

3、gitlab相关命令

gitlab-ctl start          # 启动全部服务
gitlab-ctl restart         # 重启全部服务
gitlab-ctl stop            # 停止全部服务
gitlab-ctl restart nginx  # 重启单个服务,如重启nginx
gitlab-ctl status         # 查看服务状态
gitlab-ctl reconfigure     # 使配置文件生效
gitlab-ctl show-config    # 验证配置文件
gitlab-ctl uninstall      # 删除gitlab(保留数据)
gitlab-ctl cleanse        # 删除所有数据,从新开始
gitlab-ctl tail <service name>查看服务的日志
gitlab-ctl tail nginx     # 如查看gitlab下nginx日志
gitlab-rails console      # 进入控制台

三、Git

1、简介

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而是一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必有服务器端软件支持。

Jenkins与Gitlab的安装

2、部署Git

1、初始化仓库
[root@gitlab ~]# mkdir python
[root@gitlab ~]# cd python/
[root@gitlab python]# git init
Initialized empty Git repository in /root/python/.git/
[root@gitlab python]# ll -a
total 0
drwxr-xr-x  3 root root  18 Jan 13 00:30 .
dr-xr-x---. 4 root root 236 Jan 13 00:29 ..
drwxr-xr-x  7 root root 119 Jan 13 00:30 .git

2、创建文件并加入缓存区
[root@gitlab python]# vim index.py
print('hi')
[root@gitlab python]# ll
total 4
-rw-r--r-- 1 root root 12 Jan 13 00:32 index.py
# 加入缓存区
[root@gitlab python]# git add index.py 

3、查看是否加入缓存区
[root@gitlab python]# git status

4、提交至暂存区
[root@gitlab python]# git commit -m 'init'

5、提交至远程仓库
# 5.1 创建仓库
图像化界面手动创建
# 5.2 添加用户名和邮箱
[root@gitlab python]# git config --global user.name "meng"   # 用户名
[root@gitlab python]# git config --global user.email "email@example.com"   # 邮箱
[root@gitlab python]# git config -l

# 5.3 关联远程仓库
[root@gitlab python]# git remote add origin http://192.168.15.104/root/python.git

# 5.4 提交至远程仓库
[root@gitlab python]# git push origin master

创建仓库

Jenkins与Gitlab的安装

上传仓库成功

Jenkins与Gitlab的安装

3、免密上传

# 管理SSH连接
[root@gitlab python]# vim .git/config 
[remote "origin"]
        url = git@192.168.11.8:root/python.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[root@gitlab python]# git remote add origin git@192.168.11.8:root/python.git

2、生成秘钥并且把公钥上传至gitlab
[root@gitlab python]# ssh-keygen
[root@gitlab python]# cat ~/.ssh/id_rsa.pub   # 复制到图形化界面key里

Jenkins与Gitlab的安装

4、分支

# 查看本地分支
[root@gitlab python]# git branch 
* master

# 查看远程分支
[root@gitlab python]# git branch -a
* master
  remotes/origin/master

# 创建分支
[root@gitlab python]# git checkout -b test
Switched to a new branch 'test'

# 将本地新创建的分支提交至远程
[root@gitlab python]# git push origin test

# 切换分支
[root@gitlab python]# git checkout master

5、Git Tag

git tag是一个特殊的分支,这个分支只允许创建和删除不允许修改。
[root@localhost python]# git tag -a stable-v1 -m '简介'
[root@localhost python]# git tag
stable-v1

Jenkins与Gitlab的安装

6、Gitlab的使用

6.1、创建用户及用户组

1.Guest:可以创建issue、发表评论,不能读写版本库 
2.Reporter:可以克隆代码,不能提交,QA、PM 可以赋予这个权限 
3.Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限 
4.Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个 权限 
5.Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组组 长可以赋予这个权限

Jenkins与Gitlab的安装

上一篇:GitLab使用


下一篇:Gitlab安装+jenkins安装