在Linux系統(tǒng)上搭建GitLab服務(wù)器是一個(gè)涉及多個(gè)步驟的過(guò)程,包括準(zhǔn)備工作、安裝依賴(lài)、配置服務(wù)器、下載并安裝GitLab軟件包、啟動(dòng)GitLab服務(wù)以及訪(fǎng)問(wèn)GitLab,以下是詳細(xì)的步驟說(shuō)明:
一、準(zhǔn)備工作
在開(kāi)始部署GitLab之前,請(qǐng)確保你已經(jīng)準(zhǔn)備好一臺(tái)滿(mǎn)足以下要求的Linux服務(wù)器:
操作系統(tǒng):推薦使用Ubuntu或CentOS等主流Linux發(fā)行版。
內(nèi)存:至少2GB RAM(推薦4GB或更多)。
存儲(chǔ)空間:至少20GB的可用存儲(chǔ)空間(根據(jù)需求可適當(dāng)增加)。
你還需要擁有root或sudo權(quán)限,以便在服務(wù)器上執(zhí)行命令。
二、安裝依賴(lài)
在部署GitLab之前,需要安裝一些必要的依賴(lài)項(xiàng),對(duì)于不同的Linux發(fā)行版,安裝命令可能有所不同。
Ubuntu服務(wù)器
在Ubuntu服務(wù)器上,你可以使用以下命令安裝依賴(lài):
sudo apt-get update sudo apt-get install -y curl openssh-server ca-certificates postfix
CentOS服務(wù)器
在CentOS服務(wù)器上,你可以使用以下命令安裝依賴(lài):
sudo yum install -y curl openssh-server postfix sudo yum install -y https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker
三、配置服務(wù)器
你需要配置服務(wù)器以滿(mǎn)足GitLab的要求,設(shè)置服務(wù)器的主機(jī)名,并確保服務(wù)器的防火墻允許HTTP(80端口)和HTTPS(443端口)的訪(fǎng)問(wèn)。
設(shè)置主機(jī)名(以Ubuntu為例)
sudo hostnamectl set-hostname gitlab-server echo "127.0.0.1 gitlab-server" | sudo tee -a /etc/hosts
配置防火墻(以Ubuntu為例)
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
四、下載并安裝GitLab軟件包
GitLab提供了官方Docker鏡像,我們可以通過(guò)Docker來(lái)安裝GitLab,確保已經(jīng)安裝了Docker(如前所述),拉取GitLab的Docker鏡像:
sudo docker pull gitlab/gitlab-ce:latest
五、配置GitLab
創(chuàng)建一個(gè)名為gitlab.yml
的配置文件,用于配置GitLab的各項(xiàng)參數(shù),以下是一個(gè)示例配置:
gitlab.yml gitlab: OMNIBUS_GITLAB_EXTERNAL_URL: 'http://your_server_ip' OMNIBUS_GITLAB_POSTGRES_DATA_DIR: "/var/opt/gitlab/postgresql/data" OMNIBUS_GITLAB_POSTGRES_HOST: "localhost" OMNIBUS_GITLAB_POSTGRES_PORT: "5432" OMNIBUS_GITLAB_POSTGRES_USERNAME: "gitlab" OMNIBUS_GITLAB_POSTGRES_PASSWORD: "your_password"
請(qǐng)根據(jù)你的實(shí)際情況修改OMNIBUS_GITLAB_EXTERNAL_URL
為你的服務(wù)器IP或域名,并設(shè)置PostgreSQL數(shù)據(jù)庫(kù)的用戶(hù)名和密碼。
六、啟動(dòng)GitLab服務(wù)
在服務(wù)器上執(zhí)行以下命令,啟動(dòng)GitLab服務(wù):
docker run --detach --hostname gitlab.example.com --publish 443:443 --publish 80:80 --publish 22: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 --volume /etc/localtime:/etc/localtime:ro gitlab/gitlab-ce:latest
這里的$GITLAB_HOME
是你為GitLab配置的一個(gè)目錄,用于存放配置、日志和數(shù)據(jù)文件,你可以根據(jù)實(shí)際情況修改這個(gè)目錄的路徑。
七、訪(fǎng)問(wèn)GitLab
在瀏覽器中輸入你的服務(wù)器IP或域名,即可顯示GitLab的界面,首次登錄會(huì)強(qiáng)制用戶(hù)修改密碼,密碼修改成功后,輸入用戶(hù)名和密碼進(jìn)行登錄。
八、GitLab常用命令
GitLab提供了一些常用的命令來(lái)管理GitLab服務(wù),如啟動(dòng)、停止、重啟和查看服務(wù)狀態(tài)等:
gitlab-ctl start
啟動(dòng)所有GitLab組件。
gitlab-ctl stop
停止所有GitLab組件。
gitlab-ctl restart
重啟所有GitLab組件。
gitlab-ctl status
查看服務(wù)狀態(tài)。
gitlab-ctl reconfigure
重新加載配置文件(注意:此命令在業(yè)務(wù)環(huán)境中不可隨意使用,因?yàn)樗鼤?huì)還原一些過(guò)去的config,導(dǎo)致修改的端口和域名等失效)。
九、GitLab的備份與恢復(fù)
GitLab支持創(chuàng)建備份和從備份中恢復(fù),你可以使用以下命令來(lái)創(chuàng)建和恢復(fù)備份:
/var/opt/gitlab/backups
目錄下。
1520580592_2018_03_09_10.5.3
替換為你的實(shí)際備份文件名。
十、FAQs
Q1: 如何更改GitLab的默認(rèn)端口?
A1: 要更改GitLab的默認(rèn)端口(如HTTP的80端口和HTTPS的443端口),你需要編輯/etc/gitlab/gitlab.rb
文件,找到以下行并修改為你想要的端口號(hào):
external_url 'http://your_server_ip:new_http_port' nginx['listen_port'] = new_https_port nginx['listen_addresses'] = ['*']
然后運(yùn)行gitlab-ctl reconfigure
命令使更改生效,這樣做可能會(huì)影響已存在的Webhooks和其他依賴(lài)于默認(rèn)端口的服務(wù)。
Q2: 如果忘記GitLab管理員密碼怎么辦?
A2: 如果你忘記了GitLab管理員密碼,可以通過(guò)以下步驟重置密碼:
1、登錄到GitLab服務(wù)器。
2、停止GitLab服務(wù):gitlab-ctl stop
。
3、找到GitLab配置文件(通常位于/etc/gitlab/gitlab.rb
),查找default['gitlab_rails']['initial_root_password']
行,這里保存了初始的root密碼,如果沒(méi)有這一行,可能是在安裝過(guò)程中設(shè)置了密碼但未記錄,在這種情況下,你可能需要重新安裝GitLab并記錄下初始密碼。
4、使用初始密碼登錄GitLab,然后立即更改密碼。
5、重啟GitLab服務(wù):gitlab-ctl start
。