文章目录
前述
一般的公司都不希望将自己的代码托管到公共的代码托管网站,如:github,gitee等,而是自己搭建一个代码托管的服务器来管理代码,所以我们就看看怎么搭建一个自己的代码托管服务器吧
- 官方网站:
https://about.gitlab.com/
- 官方安装文档:
https://gitlab.cn/install?version=ce
(你也可以参考这个官方文档搭建)
本人使用的是centos7操作系统,使用xshell连接上你的服务器就可以开始安装了,注意,服务器内存大小要在6G-8G左右
,因为gitlab服务比较大,服务器内存太小可能会启动失败。
方式一:非容器安装
搭建GitLab服务器
首先使用xshell连接上你的服务器
使用free -m
命令可以查看虚拟机的内存大小,单位是MB
(看看内存大小是否够用1GB=1024MB):
使用su root
命令切换到root权限:
使用命令安装perl包: yum install -y curl policycoreutils-python openssh-server perl
使用命令打开sshd:systemctl enable sshd
使用命令启动sshd:systemctl start sshd
配置镜像源:curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
开始安装:EXTERNAL_URL="http://192.168.1.103:8081" yum install -y gitlab-jh
http://192.168.0.103
:该地址为服务器的地址或者域名,如果不知道可以使用ifconfig
命令查询,端口号为你的gitlab服务端口号- 如果配置错了,也没关系,这个我们后面还可以通过gitlab的配置文件修改
- 安装完成后会随机生成一个密码(
初始密码只有二十四小时的有效期
)存储在/etc/gitlab/initial_root_password
文件中,安装成功后建议立即修改初始密码,使用修改后的密码和用户名root
登录。
注意:配置gitlab服务的端口号的时候要先检查该端口号是否被占用,以及服务器是否开放此端口号,如果没开放该端口号,外面是访问不了你的gitlab服务的。
查看开放的端口号:firewall-cmd --list-all
设置开放端口号:sudo firewall-cmd --add-port=8081/tcp --permanent
重启防火墙(设置完一定要重启防火墙):firewall-cmd --reload
现在外部就可以访问8081端口了
查看gitlab用户的初始密码:
账号为:root
cat /etc/gitlab/initial_root_password|grep password
可以使用账户和密码登录,然后再页面修改初始密码,也可以使用下面的命令行修改密码。
修改初始密码
我们使用命令行的方式:
进入gitlab控制台:
gitlab-rails console
切换用户,看到root用户又返回值(返回nil代表空),证明该用户存在:
user = User.where(username: 'admin').first
user = User.where(username: 'root').first
修改root用户的密码为123456:
user.password = "123456ldd"
保存密码,返回true表示修改成功:
user.save!
退出控制台:
ctrl+z保存并退出控制台
然后就可以使用root+123456ldd
登录了
gitlab配置文件
gitlab服务的配置文件:/etc/gitlab/gitlab.rb
修改服务的端口号
修改gitlab服务端口号:vim /etc/gitlab/gitlab.rb
按 i 开始编辑
编辑完成,按esc退出编辑
按冒号,输入wq保存退出
使用命令进行更新配置:gitlab-ctl reconfigure
注: 这个位置也可以查看
配置gitlab服务的ip和端口号:/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
启动并访问服务
使用命令查看linux中正在运行的服务:netstat -lntp
如果gitlab服务没有启动我们可以通过下面的命令启动或者关闭:
- 停止gitlab服务:
gitlab-ctl stop
- 启动gitlab服务:
gitlab-ctl start
服务启动成功后即可通过http://192.168.1.103:8081
访问
方式二:容器下安装基于Docker
官网教程:https://docs.gitlab.cn/jh/install/docker.html
安装Docker
更新yum源:yum install
安装依赖:yum install -y yum-utils device-mapper-persistent-data 1vm2
添加镜像源:
- 国外镜像源:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 阿里镜像源:
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/decker-ce.repo
查看源中可用的docker版本:yum list docker-ce --showduplicates|sort -r
安装docker:
- 安装最新版本(默认):
yum install docker-ce
- 安装指定版本:
yum install docker-ce-20.10.9-3.el7
配置开机启动:
- 启动docker:
systemctl start docker
- 配置开机启动:
systemctl enable docker
- 查看docker版本:
docker version
在容器中安装gitlab服务
在设置其他所有内容之前,请配置一个新的环境变量 $GITLAB_HOME
,指向配置、日志和数据文件所在的目录, 确保该目录存在并且已授予适当的权限。
- docker中的gitlab文件会映射到本机的
/srv/gitlab
目录
export GITLAB_HOME=/srv/gitlab
本地位置 | 容器位置 | 使用 |
---|---|---|
$GITLAB_HOME/data | /var/opt/gitlab | 用于存储应用程序数据。 |
$GITLAB_HOME/logs | /var/log/gitlab | 用于存储日志。 |
$GITLAB_HOME/config | /etc/gitlab | 用于存储极狐GitLab 配置文件。 |
添加gitlab容器:
sudo docker run --detach \
--hostname 192.168.1.103 \
--publish 8443:443 --publish 8082:8082 --publish 222:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
registry.gitlab.cn/omnibus/gitlab-jh:latest
- hostname:你的服务器的ip地址或者域名
- publish:将容器内部端口向外映射
- 8443:443:将容器内443端口映射至宿主机8443端口
- 8082:8082:将容器内8082端口映射至宿主机8082端口,这是访问gitlab的端口(我们等下配置)
- 222:22:将容器内22端口映射至宿主机222端口,这是访问ssh的端口
- name:命名容器名称
- volume:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
- restart:系统重启后,容器将自动restart
宿主机配置修改
宿主机
端口号开放:8443端口,8082端口,222端口
查看开放的端口号
firewall-cmd --list-all
开放指定端口(因为22一般被sshd服务占据,所以这里用222端口)
sudo firewall-cmd --add-port=8443/tcp --permanent
sudo firewall-cmd --add-port=8082/tcp --permanent
sudo firewall-cmd --add-port=222/tcp --permanent
重启防火墙(设置完一定要重启防火墙):
firewall-cmd --reload
现在外部就可以访问这些端口了
容器配置修改
gitlab.rb
(宿主机路径:/srv/gitlab/config/gitlab.rb
)
配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.1.103:8082'
配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.199.231'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是运行时22端口映射的222端口
启动并访问服务
启动gitlab容器:docker start gitlab
查看已存在的容器:docker ps -a
进入容器(一定要进入容器
):docker exec-it gitlab /bin/bash
查看初始密码:cat /etc/gitlab/initial_root_password|grep password
修改初始密码:参考上面的方法
访问:http://192.168.1.103:8082