一、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/ # 推荐使用
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
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/ # 推荐使用
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
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 等不同,它采用了分布式版本库的方式,不必有服务器端软件支持。
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
创建仓库
上传仓库成功
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里
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
6、Gitlab的使用
6.1、创建用户及用户组
1.Guest:可以创建issue、发表评论,不能读写版本库
2.Reporter:可以克隆代码,不能提交,QA、PM 可以赋予这个权限
3.Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
4.Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个 权限
5.Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组组 长可以赋予这个权限