一、什么是GitLab
GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释,可以管理团队对仓库的访问。GitLab非常易于浏览提交过的版本并提供一个文件历史库,团队成员可以利用内置的简单聊天程序(WalD)进行交流。它还提供了一个代码片段收集功能可以轻松实现代码复用,便于日后有需要时进行查找。
Gitlab是目前被广泛使用的基于Git的开源代码管理平台,基于Ruby on Rails构建,主要针对软件开发过程中产生的代码和文档进行管理,Gitlab主要针Group和Project 两个维度进行代码和文档管理,其中Group 是群组,Project是工程项目,一个Group 可以管理多个 Project,可以理解为一个群组中有多项软件开发任务,而一个 Project 中可能包含多个Branch,意为每个项目中有多个分支,分支间相互独立,不同分支可以进行归并。在 Gitlab 中,除Push操作外其他操作都可以通过Web的形式进行交互。
二、什么是禅道智能应用平台
禅道智能应用平台是一款开源轻量级应用交付平台。通过禅道智能应用平台中的应用市场,您可以一键安装企业级软件,不仅具备高可用特性,还支持自动与手动备份,当有新版本发布时,您可以查看软件的更新日志,并决定是否升级。
禅道智能应用平台底层基于容器和Kubernetes技术,通过Helm进行应用的封装,提供了应用市场、服务管理、服务监控与告警、日志管理与审计、集群管理等平台功能,平台代码及应用镜像代码完全公开。
平台在设计之初就坚持简单的原则,将底层复杂的技术进行了抽象和屏蔽,让使用者更专注于平台应用本身的体验,同时提供了应用的一键安装、升级、备份与回滚功能。
三、安装禅道智能应用平台
如果您刚接触禅道智能应用平台,建议使用我们提供的 All-in-One 安装模式, 它能够帮助您零配置快速部署。
1. 准备 Linux 机器
若要以 All-in-One 模式进行安装,您仅需参考以下对机器硬件和操作系统的要求准备一台主机。
2.硬件推荐配置
3.节点要求
节点必须能够通过SSH
连接。
节点上可以使用sudo/curl
等基础命令。
4.容器运行
您的集群必须有一个可用的容器运行时。 如果您使用q搭建集群, 会探测本地是否已安装Docker, 如果已安装Docker则使用Docker, 否则将使用默认内置的containerd
。
5.网络和DNS要求
建议您的操作系统处于干净状态(不安装任何其他软件),否则可能会发生冲突。
支持访问公网, 如果有网络访问控制, 需要放行*.qucheng.com/*.qucheng.cn
6.下载安装禅道智能应用平台命令行工具
curl -sfL https://pkg.qucheng.com/quickon/get.sh | sh -
执行脚本完成后, 检查是否安装成功
q version
7.开始安装
在快速入门教程中, 您只需执行一行命令即可进行安装, 其模板如下所示:
q init -p quickon
开源版
一般来说,对于All-in-One安装, 不需要修改任何配置。如果你想自定义集群网络、访问域名等高级的功能,可以通过参数来配置:
# 示例, 更多参数参考使用 q init --help
q init -p quickon --domain <自定义域名>
8.验证安装结果
输出信息会显示Web控制台的IP地址和端口号, 默认的端口是32379
您可能需要配置端口转发规则并在安全组中开放端口,以便外部用户访问控制台。
四、禅道智能应用平台安装应用
在禅道智能应用平台安装应用有三种方式:
- 命令行快速安装
- 控制台安装
- q命令安装
1.命令行快速安装
如果指定环境变量,默认安装最新的禅道开源版
# 默认会集成安装禅道开源版,使用禅道智能应用平台提供的默认域名
curl -sSL https://pkg.qucheng.com/quickon/install.sh | sh -
1)安装Gitlab
curl -sSL https://pkg.qucheng.com/quickon/install.sh | INSTALL_APP=gitlab sh -
2)安装使用自定义域名
curl -sSL https://pkg.qucheng.com/quickon/install.sh | INSTALL_DOMAIN=example.com sh -
2.控制台安装
通过禅道智能应用平台UI界面安装。
3.q命令安装
通过q
命令安装, 比较简单。
五、禅道智能应用平台安装GitLab
在禅道智能应用平台的应用市场里提供了当前可以安装的应用,点击屏幕左侧主菜单的应用市场即可进入应用市场模块。进入禅道智能应用平台应用详情页,可以通过点击 “安装” 按钮安装应用。点击 “安装” 按钮后,会弹出应用安装选项,默认情况下,你不需要设置任何选项就可以顺利安装。如果你要自定义应用名称和系统生成的默认域名,可以点击 “高级” 可以设置更多的安装选项。
-
共享数据库:默认设置,会显示平台上可以使用的共享数据库名称,数据库类型会根据用户选择的应用动态变化,如应用需要MySQL数据库,会显示目前平台上已经安装的全局共享MySQL数据库实例的名称。如果你的机器配置不高,建议使用共享数据库。
-
独享数据库:安装应用时会同时创建一个应用需要的数据库实例,与应用进行关联,这个数据库实例是该应用独享的,因此称之为独享数据库。优势是数据库资源应用独享,但会占用更多的系统资源(内存与磁盘)。
六、Gitlab其他安装方式
1. 所需配置
这里采用Centos7进行安装,当然Ubuntu也可以内存至少4G以上,低于4G会运行不起来,建议选择5G左右的内存。
2.SSH安装
1)安装依赖
sudo yum install -y curl policycoreutils-python openssh-server perl
# 如果没有成功,可以重启一下虚拟机再去安装
sudo systemctl enable sshd
sudo systemctl start sshd
2)配置镜像
curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
3)正式安装
sudo EXTERNAL_URL="http://192.168.48.131" yum install -y gitlab-jh
# 192.168.48.131这个地址是安装者本人的虚拟机地址
3.Docker安装
1)安装所需最小配置:
内存至少4G;系统内核至少在3.10以上uname -r 命令可查看系统内核版本。
2)安装Docker
更新yum源yum update
安装依赖yum install -y yum-utils device-mapper-persistent-data lvm2
添加镜像
查看源中可使用版本
yum list docker-ce --showduplicates | sort -r
安装指定版本
yum install docker-ce-20.10.9-3.el7 #自行选择版本
配置开机启动项
systemctl start docker
systemctl enable docker
docker version #出现以下即安装成功
4.使用容器安装Gitlab
添加容器
docker run --detach \
--hostname 192.168.48.132 \
--publish 443:443 --publish 80:80 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab:Z \
--volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
--volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
--shm-size 256m \
registry.gitlab.cn/omnibus/gitlab-jh:la
启动容器
ocker start gitlab
查看已存在的容器
docker ps -a
进入容器
docker exec -it gitlab /bin/bash
5. Omnibus包安装GitLab
1)下载GitLab Omnibus包
wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-14.0.0-ce.0.el7.x86_64.rpm/download.rpm
2)安装GitLab
sudo rpm -i gitlab-ce-14.0.0-ce.0.el7.x86_64.rpm
3)重新配置并启动GitLab
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
以上配置完成后即可访问,首次访问时需要管理员账号登录并设置Root的密码。
密码存在下面文件中查找,需要在容器内部去执行该命令。
cat /etc/gitlab/initial_root_password
出于安全原因24小时后,此文件会被gitlab-ctl reconfigure
第一次自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码。使用此密码和用户名root
登录。