安装gitlab
安装wget
两种方式:
通过scp命令上传到服务器(可以在/usr/local/下创建目录wget)使用命令
rpm -ivh wget-1.14-15.el7_4.1.x86_64.rpm(wget包名换成自己的) 即可安装成功

使用yum安装
命令: yum -y install wget
安装gitlab依赖
yum -y install policycoreutils openssh-server openssh-clients postfix
启动ssh服务&设置为开机启动
systemctl enable sshd && sudo systemctl start sshd
设置postfix开机自启,并启动,postfix支持gitlab发信功能
systemctl enable postfix && systemctl start postfix
开放ssh以及http服务,然后重新加载防火墙列表
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
如果报错FirewallD is not running
需要开启防火墙
systemctl start firewalld
如果还报错Failed to start firewalld.service: Unit firewalld.service is masked.
systemctl unmask firewalld.service
然后再开启防火墙执行刚才失败的命令

下载gitlab包并安装两种方式镜像源安装或者yum下载这里选择镜像源安装
这里注意使用centos8会有问题policycoreutils依赖安装报错,最后也没找到解决办法,最后只能重装系统位centos7.6才成功
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.5.0-ce.0.el7.x86_64.rpm
rpm -i gitlab-ce-12.5.0-ce.0.el7.x86_64.rpm
修改gitlab配置

修改gitlab配置
vi /etc/gitlab/gitlab.rb
external_url 'http://自定义IP:自定义端口'
重载配置
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab常用命令
gitlab-ctl reconfigure # 重载配置
gitlab-ctl check-config # 检查配置并启动
gitlab-ctl diff-config # 将用户配置与包可用配置进行比较
gitlab-ctl status # 查看所有启动组件的进程和状态
gitlab-ctl service-list # 查看所有服务
gitlab-ctl stop # 停止GitLab服务
gitlab-ctl start # 启动GitLab服务
gitlab-ctl restart # 重启GitLab服务
gitlab-ctl once # 如果GitLab服务已停止则启动服务,如果GitLab服务已启动则重启GitLab服务
访问gitlab服务器创建用户创建组创建项目
安装git连接远程仓库
wget --no-check-certificate https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
#安装依赖
yum install -y perl-devel
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc-c++ perl-ExtUtils-MakeMaker
tar -zxf git-2.9.5.tar.gz
cd git-2.9.5
执行如下命令进行编译安装
# 检查环境,配置安装路径
./configure --prefix=/usr/local/git
# 编译安装
make && make install
配置环境变量
vim ~/.bashrc
文件末尾添加export PATH="/usr/local/git/bin:$PATH"
刷新配置
source /etc/profile
本地配置
git config --global user.name "yourname"
git config --global user.email "your_email@youremail.com"
生成秘钥
ssh-keygen -t rsa -C "your_email@youremail.com"
#查看秘钥
cat .ssh/id_rsa.pub
将秘钥复制到gitlab的ssh页面中

安装nginx
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz
cd nginx-1.13.7
//执行命令 考虑到后续安装ssl证书 添加两个模块
./configure --with-http_stub_status_module --with-http_ssl_module
//执行make命令
make
//执行make install命令
make install
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
安装node
wget https://nodejs.org/dist/v14.15.1/node-v14.15.1-linux-x64.tar.xz
tar xvf node-v14.15.1-linux-x64.tar.xz
ln -s /root/node-v14.15.1-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v14.15.1-linux-x64/bin/npm /usr/local/bin/npm
npm install -g cnpm --registry=https://registry.npm.taobao.org
ln -s /root/node-v14.15.1-linux-x64/bin/cnpm /usr/local/bin/cnpm
安装gitlab-runner
curl -L [https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh](https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh) | sudo bash
sudo yum install gitlab-runner
sudo service gitlab-runner status
注册runner
sudo gitlab-runner register

token在gitlab web界面获取

配置完成后就可以在web界面发现runner
提交.gitlab-ci.yml文件、
variables:
DEPLOY_HOST: 172.16.XXX
DEPLOY_USER: root
DEPLOY_PATH: /home/tsenf/web/
image: node:12
stages:
- build
- deploy
cache:
paths:
- node_modules/
- dist/
before_script:
- npm install
build:
stage: build
tags:
- imi-runner
script:
- npm run build:prod
artifacts:
paths:
- ./dist
expire_in: 1 week
only:
- master
deploy:
stage: deploy
tags:
- imi-runner
script:
- sudo yum update && sudo yum install -y sshpass
- sudo sshpass -p $SSH_PASSWORD scp -r ./dist/* ${DEPLOY_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}
only:
- master
SSH_PASSWORD服务器密码在gitlab的web界面上可以配置

配置完后,每次将代码提交到master分支就可以自动部署到线上。