部署JenKins+Gitlab

Jenkins

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

1、为什么使用Jenkins

dev		开发环境
test	测试环境
pre		预发布环境
master	生成环境

2、Jenkins + GitLab

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

3、Jenkins安装

1、yum
2、rpm

# Jenkins 是使用 Java 开发的
[root@jenkins ~]# yum install java-1.8.0-openjdk* -y
[root@jenkins ~]# yum install jenkins-2.249.1-1.1.noarch.rpm

cat /var/lib/jenkins/secrets/initialAdminPassword

4、安装Jenkins插件

1.解压插件安装包
[root@jenkins ~]# tar -tf plugins.tar.gz

2.移动
[root@jenkins ~]## mv plugins.tar.gz /var/lib/jenkins/plugins/

3.转到插件目录
[root@jenkins ~]# cd /var/lib/jenkins/plugins/

4.解压
[[root@jenkins ~]# tar -xf plugins.tar.gz 

5.删除安装包节省资源
[root@jenkins ~]# rm -rf plugins.tar.gz

6.重启 Jenkins
[root@jenkins plugins]# systemctl restart jenkins

7.浏览器进入Jenkins 系统管理-插件管理-高级-升级站点更换域名
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

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

5、部署GitLab

代码管理    git     gitlab

常用的代码管理工具:GitHub、Gitee、GitLab

1、安装依赖
yum -y install policycoreutils openssh-server openssh-clients postfix

2、关闭防火墙,关闭selinux
systemctl disable firewalld

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

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

5、配置
[root@localhost ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.15.122'
nginx['listen_port'] = 80

# 刷新配置(默认启动)
[root@sean ~]# gitlab-ctl reconfigure
# 启动
[root@sean ~]# gitlab-ctl start
# 停止
[root@sean ~]# gitlab-ctl stop
# 重启
[root@sean ~]# gitlab-ctl restart

Git

1、初始化仓库
[root@jenkins ~]# mkdir python
[root@jenkins ~]# cd python/
[root@jenkins python]# git init
Initialized empty Git repository in /root/python/.git/
[root@jenkins python]# ll -a
total 0
drwxr-xr-x. 3 root root  18 Jan 12 11:41 .
dr-xr-x---. 5 root root 221 Jan 12 11:41 ..
drwxr-xr-x. 7 root root 119 Jan 12 11:41 .git


2、创建文件并加入缓存区
[root@jenkins python]# vim index.py
[root@jenkins python]# ll
total 4
-rw-r--r--. 1 root root 21 Jan 12 11:42 index.py
[root@jenkins python]# git add index.py  # 每次修改都要提交

[root@jenkins python]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#	new file:   index.py
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	demo.py

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

4、提交至远程

# 创建仓库
# 添加用户名和邮箱
[root@jenkins python]# git config --global user.name "Administrator"
[root@jenkins python]# git config --global user.email "admin@example.com"

# 管理远程仓库
[root@jenkins python]# git remote add origin http://192.168.11.8/root/python.git

# 提交至远程仓库
git push origin master

6.1、免密上传

# 删除原来的密码配置
[root@jenkins python]# vim .git/config 
[remote "origin"]
        url = git@192.168.11.8:root/python.git
        fetch = +refs/heads/*:refs/remotes/origin/*
# 添加ssh连接
[root@jenkins python]# git remote add origin git@192.168.11.8:root/python.git
											git仓库Clone复制SSH
[root@jenkins python]# ssh-keygen

# 查看公钥
[root@jenkins python]# cat ~/.ssh/id_rsa.pub 
# 将ssh 公钥上传至gitlab

6.2、分支

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

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

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

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

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

6.3、Git Tag

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

Gitlab的使用

7.1、创建用户及用户组

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