gitlab安装与基本使用
这里会使用一个前端项目自动化部署的方式来进行了解
Node
安装项目依赖、打包都需要Nginx web
项目部署必须「正向代理、方向代理、负载均衡等等」、 GitLab 也会用到 Nginx(默认自动安装)Git
自动化部署,需要拉取代码。GitLab
没啥好说GitLab-Runner
配合 GitLab CI/CD 使用的应用程序
[Node]
安装
# 下载安装包,需要哪个版本,在url中修改就可以了
wget https://nodejs.org/dist/v12.9.0/node-v12.9.0-linux-x64.tar.xz # 解压
tar xf node-v12.9.0-linux-x64.tar.xz # 复制
cp -rf /root/node-v12.9.0-linux-x64 /usr/local/node
添加配置与环境变量
# 打开编辑配置文件
vim /etc/profile 在文件的最后,加上下面的内容
export PATH=$PATH:/usr/local/node 重载系统配置文件
source /etc/profile
测试 node 环境变量是否生效
运行下面的代码,看到版本号,就说明环境变量生效了。
node -v
[Git]
使用yum默认安装的是1版本, 推荐使用2版本
安装:
# 安装依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y
在github上下载包: https://github.com/git/git/releases
tar -zxvf git-2.25.5.tar.gz cd git-2.25.5 make prefix=/usr/local/git all make prefix=/usr/local/git install /usr/local/git/bin/git --version # 加入全局环境变量 vim /etc/profile # 添加软链接 ln -sf /usr/local/git/bin/git /bin/git
[gitlab]
安装
yum -y install https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.3.0-ce.0.el7.x86_64.rpm
修改配置文件:vim /etc/gitlab/gitlab.rb
找到,external_url, 修改 gitlab 访问地址。可以是域名(请确保确定域名正确解析了),服务器IP,也可以加上端口。设置端口时,请确保自己开放了对应的端口 # 192.168.26.139 对应的就是服务器的IP,端口为 1874 external_url 'http://192.168.26.139:1874' 关闭防火墙:
service iptables stop
永久关闭
chkconfig iptables off 开房80端口
firewall-cmd --permanent --zone=public --add-port=80/tcp firewall-cmd --reload
配置修改完成之后, 需要进行重载配置与启动
#重载配置文件,需要的时间比较长
gitlab-ctl reconfigure # 开放 1874 端口
firewall-cmd --permanent --zone=public --add-port=1874/tcp # 重载防火墙
firewall-cmd --reload
常用命令:
# 启动gitlab服务 sudo gitlab-ctl start # gitlab服务停止 sudo gitlab-ctl stop # 重启gitlab服务 sudo gitlab-ctl restart
[使用]
1.修改密码
修改密码也可以:gitlab-rails console production
irb(main):001:0> user = User.where(id: 1).first // id为1的是超级管理员
irb(main):002:0>user.password = 'yourpassword' // 密码必须至少8个字符,最好是数字
irb(main):003:0>user.save! // 如没有问题 返回true
exit // 退出
在浏览器中打开对应的web页面,需要做的几个事情
1.去掉用户的自动注册功能
admin are -> settings -> Sign-up Restrictions 去掉钩钩,然后拉到最下面保存,重新登录
2.为用户添加group 然后新增用户并添加到组中
PM在gitlab创建任务,分配给开发人员
开发人员领取任务后,在本地使用git clone拉取代码库
开发人员创建开发分支(git checkout -b dev),并进行开发
开发人员完成之后,提交到本地仓库(git commit )
开发人员在gitlab界面上申请分支合并请求(Merge request)
PM在gitlab上查看提交和代码修改情况,确认无误后,确认将开发人员的分支合并到主分支(master)
开发人员在gitlab上Mark done确认开发完成,并关闭issue。这一步在提×××并请求时可以通过描述中填写"close #1"等字样,可以直接关闭issue
测试仓库项目是否可以正常提交和拉取
这个步骤就不演示了,用过 GitHub
的应该基本都清楚,创建个新项目 -> 通过http仓库链接克隆项目 -> 修改项目的内容 -> 提交 ->推送
。
我们的重点的是 CI/CD
,至于 SSL、邮箱
等等,GitLab 一些其他的配置和功能我就不赘述了,大家可以网上了解下。
配置CI/CD
1.安装gitlab-runner
# 下载
wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 # 分配运行权限
chmod +x /usr/local/bin/gitlab-runner # 创建用户
useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash # 安装
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner # 运行
gitlab-runner start
2.新建runner
# 注册 runner
gitlab-runner register gitlab-ci-multi-runner register # 输入 gitlab 的访问地址
http://192.168.26.139:1874 # 输入 runner token,把开 http://192.168.26.139:1874/admin/runners 页面查看
63AyFAthj7s7sNy3JDwu # runner 描述,随便填
测试webpack-vue项目部署 # runner tag
webpack-vue-cicd # 输入(选择) shell
shell
在 xxx.com/admin/runners 可查看创建的runner
3.创建一个测试项目
#使用Vue图形化界面创建新项目vue-docker
vue ui # 运行项目
npm run serve
添加Dockerfile文件
FROM node:10
COPY ./ /vue-docker
WORKDIR /vue-docker
RUN npm install && npm run build FROM nginx
RUN mkdir /vue-docker
COPY --from=0 /vue-docker/dist /vue-docker
COPY nginx.conf /etc/nginx/nginx.conf
创建.dockerignore文件
**/node_modules
**/dist
在项目根目录创建nginx.conf文件
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /vue-docker;
index index.html;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
其他命令:
构建docker镜像
docker build . -t vue-docker # 运行docker镜像
docker run -d -p 9090:80 vue-docker
编写.gitlab-ci.yml文件
.gitlab-ci.yml
文件是存放在项目的根目录下的,要提交到gitlab
上面,runner
会根据 .gitlab-ci.yml
编写的规则自动部署项目。
# 阶段
stages:
- build
- deploy
# 缓存 node_modules 减少打包时间,默认会清除 node_modules 和 dist
cache:
paths:
- node_modules/ # 拉取项目,打包
build:
stage: build # 阶段名称 对应,stages
tags: # runner 标签(注册runner时设置的,可在 admin->runner中查看)
- webpack-vue-cicd
script: # 脚本(执行的命令行)
- cd ${CI_PROJECT_DIR} # 拉取项目的根目录
- npm install # 安装依赖
- npm run build # 运行构建命令
only:
- main #拉取分支
artifacts: # 把 dist 的内容传递给下一个阶
paths:
- dist/ # 部署
deploy:
stage: deploy # 阶段名称 对应,stages
tags: # runner 标签(注册runner时设置的)
- webpack-vue-cicd
script: # 脚本(执行的命令行)
- rm -rf /www/wwwroot/webpack_vue_cicd/*
- cp -rf ${CI_PROJECT_DIR}/dist/* /www/wwwroot/webpack_vue_cicd/ # 把包完成,复制 dist 下的文件到对应的项目位置
4.部署
server {
listen 3001; # 端口号
server_name localhost; # 服务器地址 location / {
root /www/wwwroot/webpack_vue_demo; # 项目存放目录
index index.html index.htm; # 默认访问的主页
}
} # 重新加载配置文件
nginx -s reload
然后提交下文件试试吧
注意点:
1.如果使用的Git@xxx.com方式拉取代码, 如果ssh链接不是默认22的话, 需要进行参数配置
vim /etc/gitlab/gitlab.rb gitlab_rails[gitlab_shell_ssh_port] = 36000
2.如果想要修改默认的端口
external_url 'http://192.168.1.146:8081' #绑定监听的域名或IP(企业中最好是域名)
nginx['listen_port'] = 8081 #修改nginx的port
需要重新加载配置
gitlab-ctl reconfigure
#<生成 /var/opt/gitlab/ 各种子配置, 该命令建议仅在初始化时使用一次>
常见问题:
1.gitlab内置的node_exporter与监控硬件指标的服务端口冲突,需要进行修改
# vim $GITLAB_HOME/embedded/cookbooks/cache/cookbooks/gitlab/attributes/default.rb
default['gitlab']['node-exporter']['listen_address'] = 'localhost:9100' # 改为需要给定的端口 # 重新初始化配置
# gitlab-ctl stop
# gitlab-ctl reconfigure
# gitlab-ctl start
2.运行流水线出现错误中断, Gitlab: There has been a runner system failure
查看错误:
journalctl -u gitlab-runner
May 21 08:20:41 gitlab-runner[18936]: Checking for jobs... received job=178911 repo_url=https://.......git runner=f540b942
May 21 08:20:41 gitlab-runner-01 gitlab-runner[18936]: WARNING: Failed to process runner builds=0 error=open /tmp/trace543210445: no space left on device executor=docker runner=f540b942
是由于磁盘不足导致的失败.
# 清理停止的容器
docker container prune docker system prune
参考:
gitlab安装与基本使用的更多相关文章
- GitLab安装说明
GitLab,是一个使用 Ruby on Rails 开发的开源应用程序,与Github类似,能够浏览源代码,管理缺陷和注释,非常适合在团队内部使用. gitlab是基于Ruby on Rails的, ...
- Gitlab安装、汉化及使用
环境:centos 关闭防火墙和selinux [root@Gitlab ~]# setenforce [root@Gitlab ~]# service iptables stop && ...
- git\CentOS6.5中gitlab安装教程
一.Git 起源: Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本 ...
- Ubuntu gitlab安装文档及邮件通知提醒配置
1.安装依赖包,运行命令 sudo apt-get install curl openssh-server ca-certificates postfix 2.由于gitlab官方源可能被“墙”,首先 ...
- gitlab安装随记
gitlab安装 配置yum源 sudo vim /etc/yum.repos.d/gitlab-ce.repo 按照网上别人的例子,修改为清华的源 [gitlab-ce] name=Gitlab C ...
- CentOS 7 环境下GitLab安装及基本配置
新实验室要求重新建设GitLab,对于我来讲,是第一次有机会当元老参与实验室的建设.下面分享我自己的实测经验: 1. 安装依赖软件并设置开机启动 yum install curlpolicycoreu ...
- GitLab安装及使用
GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目. GitLab拥有与Github类似的功能,能够浏览 ...
- gitlab之一: gitlab安装配置使用
参考: gitlab 安装和配置 gitlab下载地址: https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/ 官方教程: https://about.gitl ...
- Gitlab安装以及汉化
Gitlab安装以及汉化 系统环境: CentOS 7.5 IP:192.168.1.2 关闭selinux.firewalld gitlab-ce-10.8.4 rpm包:下载地址 一.下载并安装g ...
- GITLAB安装笔记
CentOS 7 最小安装后操作 设置时区timedatectl set-timezone Asia/Shanghai 添加 Gitlab 清华源 vi /etc/yum.repos.d/gitlab ...
随机推荐
- mysql 死锁原因及解决办法
Mysql 锁类型 一.锁类型介绍: MySQL 有三种锁的级别:页级.表级.行级. 表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出 ...
- Vue3比Vue2快的体现-第二部分
这部分主要说两个方面,1是静态提升,2是事件监听缓存 静态提升意思就是说,在以往Vue执行函数的时候,无论是绑定数据的节点还是没有绑定的,都会在render函数执行的时候重新渲染,如下代码所示 imp ...
- 2021 IT运维巡展北京站圆满落幕,北京智和信通荣获IT运维样板工程
10月21日,以"数智转型 运维赋能"为主题的"2021(第十二届)IT运维巡展北京站"圆满落幕.会上行业专家.企业代表以及用户代表等共聚一堂,探讨数智时代下I ...
- 关于CycleGAN损失函数的可视化理解
看了<Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks>这篇论文,大致了解了C ...
- is特性
is是特性在动态路由的时候使用 ,在挂载点 component 使用,用来判断哪个组件显示 :
- vue3 + vite 分析报告 report == rollup-plugin-visualizer
安装插件 npm i rollup-plugin-visualizer -D 配置vite.config.js 文件 [加入插件] import { defineConfig } from 'vite ...
- ssh建立github连接 基于ssh密钥
1. 建立公钥和私钥 ps:公钥放在github上面的,私钥放在自己本地电脑 : 先生成密钥:打开 gitbash 输入命令: ssh-keygen -t rsa -b 4096 -C "z ...
- Android复习(三)清单文件中的元素——> activity
转自: https://developer.android.google.cn/guide/topics/manifest/activity-element <activity> 语法: ...
- el-tree 懒加载复选框默认展开和默认选中
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- OpenFunction v0.8.0 发布:通过 Dapr Proxy 加速函数启动
相较于其他函数计算项目,OpenFunction 有很多独特的功能,其中之一便是通过 Dapr 与各种后端服务(BaaS)无缝集成.目前 OpenFunction 已经支持了 Dapr 的 pub/s ...