CentOS 7.4下部署GitLab+Jenkins持续集成环境

GitLab介绍
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

系统环境准备

建议:内存4G以上不然带不动
[root@linuxidc-jenkins ~]# cat /etc/RedHat-release
CentOS Linux release 7.4.1708 (Core)
[root@linuxidc-jenkins ~]# uname -r
3.10.0-693.el7.x86_64

#关闭firewalld和NetWorkManager

[root@linuxidc-jenkins ~]# systemctl stop firewalld
[root@linuxidc-jenkins ~]# systemctl stop NetWorkManager

#永久关闭
[root@linuxidc-jenkins ~]# systemctl disable firewalld
[root@linuxidc-jenkins ~]# systemctl disable NetWorkManager

#关闭selinux
[root@linuxidc-jenkins ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@linuxidc-jenkins ~]# setenforce 0

#更换阿里源和下载epel源
[root@linuxidc-jenkins ~]#mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
[root@linuxidc-jenkins ~]#wget -O /etc/yum.repos.d/CentOS-Base.repo
[root@linuxidc-jenkins ~]#wget -O /etc/yum.repos.d/epel.repo

#yum源更新,重启系统

[root@linuxidc-jenkins ~]# yum update && reboot

#安装相应工具
[root@linuxidc-jenkins ~]yum install curl policycoreutils openssh-server openssh-clients postfix -y
[root@linuxidc-jenkins ~]systemctl start postfix

#新建GitLab源
[root@linuxidc-jenkins ~]# vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
[root@linuxidc-jenkins ~]# yum makecache
[root@linuxidc-jenkins ~]# yum install -y gitlab-ce

#安装git工具
[root@linuxidc-jenkins ~]# yum install git -y

#加载配置文件并启动,时间稍长
[root@linuxidc-jenkins ~]# gitlab-ctl reconfigure

#gitlab-ctl其他命令
启动:gitlib-ctl start
关闭:gitlab-ctl stop
重启:gitlab-ctl restart
重载配置:gitlab-ctl reconfigure
查看状态:gitlab-ctl status

#查看端口保证80端口不被占用
[root@linuxidc-jenkins ~]# lsof -i:80
COMMAND PID      USER  FD  TYPE DEVICE SIZE/OFF NODE NAME
nginx  700      root    7u  IPv4  16903      0t0  TCP *:http (LISTEN)
nginx  804 gitlab-www    7u  IPv4  16903      0t0  TCP *:http (LISTEN)

#gitlab配置文件路径
/etc/gitlab/gitlab.rb 

浏览器登录gitlab,输入进入下图:

入下图:

CentOS 7.4下部署GitLab+Jenkins持续集成环境

先输入密码,然后Register填写账户信息进入新建项目

CentOS 7.4下部署GitLab+Jenkins持续集成环境

填写ssh认证

CentOS 7.4下部署GitLab+Jenkins持续集成环境

]

测试拉取代码

[root@linuxidc-jenkins ~]# git clone git@linuxidc-jenkins:web/web-demo.git
Cloning into 'web-demo'...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (6/6), done.
[root@linuxidc-jenkins ~]# ls
anaconda-ks.cfg  epel-release-latest-7.noarch.rpm  web-demo
[root@linuxidc-jenkins ~]# ls web-demo/
index.html  README.md

上传代码

[root@linuxidc-jenkins web-demo]# echo "test" >>test.txt
 
[root@linuxidc-jenkins web-demo]# git config --global user.email "you@example.com"
[root@linuxidc-jenkins web-demo]# git config --global user.name "Your Name"
[root@linuxidc-jenkins web-demo]# git add *
[root@linuxidc-jenkins web-demo]# git commit -m "add test.txt"
[master 5df66f7] add test.txt
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt
[root@linuxidc-jenkins web-demo]# git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:
 
  git config --global push.default matching
 
To squelch this message and adopt the new behavior now, use:
 
  git config --global push.default simple
 
See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
 
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 314 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@linuxidc-jenkins:web/web-demo.git
  18a57cf..5df66f7  master -> master

GitLab上查看:

CentOS 7.4下部署GitLab+Jenkins持续集成环境

#安装JenKins

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/25c3c22982ca8ca95a39663269eaba8b.html