持续集成环境(一)-Gitlab代码托管服务器安装和使用

1. Gitlab简介在这里插入图片描述

官网:https://about.gitlab.com/

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(基于MIT协议),与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,简单来说可把GitLab看作个人版的GitHub。

2. Gitlab安装(yum安装)

2.1 安装相关依赖

yum -y install policycoreutils openssh-server openssh-clients postfifix

2.2 设置sshd为开机启动

注意:此步骤可以跳过,显而易见ssh服务都是自启的

systemctl enable sshd 

2.3 设置postfifix开机自启,并启动,postfifix支持gitlab发信功能

systemctl enable postfix.service && systemctl start postfix.service

2.4. 开放ssh以及http服务,重载防火墙

说明:如果关闭防火墙就不需要做以上配置

firewall-cmd --add-service=ssh --permanent 
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

2.5 下载gitlab包,并安装

cd /root/pkg
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.7.8-ce.0.el7.x86_64.rpm
rpm -ivh gitlab-ce-13.7.8-ce.0.el7.x86_64.rpm

或者

cat << EOF > /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
gpgcheck=0
enabled=1
EOF
yum makecache     #更新yum源 
yum -y install gitlab-ce          #安装最新版本的gitlab
yum list gitlab-ce --showduplicates | sort -r  #查看仓库中所有gitlab版本
yum -y intsall gitlab-ce-12.3.5-ce.0.el7       #安装指定版本的gitlab

2.6 修改gitlab配置

1)目录结构

/opt/gitlab     主目录
/etc/gitlab     配置文件目录
/var/log/gitlab 日志目录

2)修改gitlab配置文件

vim /etc/gitlab/gitlab.rb

#gitlab基本配置:
#外部访问url(并非必须配置;经过编译后,自动将这个配置编译到nginx配置,nginx就无需配置了)
external_url 'http://10.99.200.110:8888'
nginx['listen_port'] = 8088

3)配置域名(若上述配置文件/etc/gitlab/gitlab.rb已经修改的话可跳过)

vim /var/opt/gitlab/nginx/conf/gitlab-http.conf(如果服务没有reconfigure过,是没有此配置文件的)
外网访问的端口,如果服务器已经有服务器占用了80,那么这里可以改成其它

listen *:8088;
server_name gitlab.test.domain.com;
set $http_host_with_default "gitlab.test.domain.com:8088"

补充说明:因为编译gitlab的配置 /etc/gitlab/gitlab.rb 时会重新生成这个自定义nginx 配置,所以只要 gitlab 的配置配得好,上面的nginx其实不需要自定义的。

2.7 重载配置及启动gitlab

gitlab-ctl reconfigure
gitlab-ctl restart
相关命令
gitlab-ctl restart               #重新启动gitLab
gitlab-ctl start                 #启动全部服务
gitlab-ctl restart               #重启全部服务
gitlab-ctl stop                  #停止全部服务
gitlab-ctl restart nginx         #重启单个服务
gitlab-ctl status                #查看全部组件的状态
gitlab-ctl show-config           #验证配置文件
gitlab-ctl uninstall             #删除gitlab(保留数据)
gitlab-ctl cleanse               #删除所有数据,重新开始
gitlab-ctl tail <svc_name>       #查看服务的日志
gitlab-ctl tail                  #查看所有日志
gitlab-ctl tail nginx/gitlab_access.log     #查看nginx访问日志
gitlab-rake gitlab:check SANITIZE=true --trace  #检查gitlab
gitlab-rails console production      #进入控制台 ,可以修改root 的密码

2.8 把端口添加到防火墙

说明:如果关闭防火墙就不需要做以上配置

firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --reload

3. Gitlab安装(docker版安装)

3.1 docker安装

docker安装参考

3.2 gitlab安装

docker search gitlab-ce      #查找镜像
docker pull gitlab/gitlab-ce       #拉取镜像
mkdir -p /home/GitLab/{
    
    config,data,log}  #创建相关目录
chmod -R 755 /home/GitLab/{
    
    config,data,log}  #权限
docker run -itd  -h 192.168.16.119 -p 443:443 -p 80:80 -p 222:22 --name GitLab --restart always -v /home/GitLab/config:/etc/gitlab -v /home/GitLab/log:/var/log/gitlab -v /home/GitLab/data:/var/opt/gitlab gitlab/gitlab-ce   #启动容器

参数说明:

扫描二维码关注公众号,回复: 13029174 查看本文章
-d:后台运行
-p:将容器内部端口向外映射
–name:命名容器名称
-v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录

在这里插入图片描述
配置通yum安装中的配置一致,此处不再赘述,配置文件已经持久化都本地了。

3.3 备份脚本

编写备份脚本

#!/bin/bash
case $1 in
  start)
    docker exec  GitLab gitlab-rake gitlab:backup:create;;
esac

在这里插入图片描述
编写定时任务

echo '00 03 * * 6 /home/GitLab/gitlab_data_backup.sh start' >>  /var/spool/cton/root

4. 登录主页

第一次访问GitLab,需要耐心等待,可能会由于服务未完全起来,而出现502;系统会重定向页面到重置密码页面,你需要输入初始化管理员账号的密码,管理员的用户名为root,初始密码为5iveL!fe(初始化密码在日志中获取即可)。重置密码后,新密码即为刚输入的密码。

重置密码
图片
登录页面
图片
登录进去后的页面
图片

5. 注意事项以及异常故障排查

  1. 默认安装登录需要重置root密码。可以自己单独设置一个复杂密码后登录。
  2. gitlab本身采用80端口,如安装前服务器有启用80,安装完访问会报错。需更改gitlab的默认端口。修改/etc/gitlab/gitlab.rb配置文件中的external_url ‘http://localhost:8088’ 配置项。
  3. 如果就想用80端口,那没问题。如果更改了端口,后边可以自行调整nginx配置文件进行nginx反向代理设置。
  4. 这里可以绑定自己的gitlab的域名或者公网、内网IP替换localhost进行公网访问,具体根据自己的实际情况。安全起见,一般会将gitlab部署于内网。具体部署到哪里,请根据自己的实际情况来定。(基于安全原因,这里不建议设置公网IP进行暴露,可以通过nginx设置IP绑定进行return或者其他规则进行IP回避访问。)本站测试gitlab地址域名为:gitlab.test.domain.com。
  5. unicorn本身采用8080端口,如果你那里没有8080使用,可以后边不用修改了。如安装前服务器有启用8080,安装完访问会报错。需更改unicorn的默认端口:修改/etc/gitlab/gitlab.rb配置文件中的unicorn[‘listen’] = ‘127.0.0.1’ unicorn[‘port’] = 3000 配置项。
  6. 每次重新配置,都需要执行sudo gitlab-ctl reconfigure 使之生效。
  7. 日志位置:/var/log/gitlab 可以进去查看访问日志以及报错日志等,供访问查看以及异常排查。
  8. 若gitlab-ctl reconfigure报错。

图片
不妨试试这条命令,然后再次执行gitlab-ctl reconfigure

cat /etc/sysctl.conf /etc/sysctl.d/*.conf | sysctl -e -p -
  1. 浏览器访问的时候,时不时的会报502错误,需要增加服务器虚拟内存
dd if=/dev/zero of=/var/swap bs=1024 count=2048000 #增加2G左右SWAP
mkswap /var/swap #设置交换文件
swapon /var/swap #激活启用交换分区
echo "/var/swap swap swap defaults 0 0" >> /etc/fstab #加入开机自启

6. Gitlab代码托管服务器使用(添加组、创建用户、创建项目)

6.1 创建项目组和项目

创建项目组
在这里插入图片描述
创建项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2 创建账号和授权

创建账号
在这里插入图片描述
在这里插入图片描述
账户创建后,修改密码
在这里插入图片描述
在这里插入图片描述
将用户添加到项目中授权
在这里插入图片描述

6.3 创建一个新的仓库

git clone http://10.99.200.110:8888/test/deam-test.git
cd deam-test
touch README.mdgit add README.md
git commit -m "add README"
git push -u origin master

在这里插入图片描述

6.4 关联本地的项目到gitlab

cd existing_folder  #existing_folder是已有的目录
git init
git remote add origin http://10.99.200.110:8888/test/web_deam.git
git add .
git commit -m "Initial commit"
git push -u origin master

在这里插入图片描述在这里插入图片描述
都到这儿了,更多信息,详见个人微信公众号ALL In Linux,来扫一扫吧!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44729138/article/details/115020279