centos7安裝部署gitlab服務器


1、安裝和配置必須的依賴

sudo yum install curl policycoreutils openssh-server openssh-clients

sudo systemctl enable sshd

sudo systemctl start sshd

sudo yum install postfix

sudo systemctl enable postfix

sudo systemctl start postfix

sudo firewall-cmd --permanent --add-service=http

sudo systemctl reload firewalld

2、去清華大學鏡像站下載gitlab的rpm安裝包

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

yum install -y policycoreutils-python

rpm -i gitlab-ce-11.0.0-ce.0.el7.x86_64.rpm

如圖表示安裝成功

 

3、修改gitlab配置文件指定服務器ip和自定義端口

vim  /etc/gitlab/gitlab.rb

 

firewall-cmd --zone=public --add-port=8088/tcp --permanent

ps:注意這里設置的端口不能被占用,默認是8080端口,如果8080已經使用,請自定義其它端口,並在防火牆設置開放相對應得端口

 4.重置並啟動GitLab

gitlab-ctl reconfigure

gitlab-ctl restart(可省略)

瀏覽器訪問http://192.168.6.139:8088

首次登陸,需要設置root的密碼

登陸后新建組和項目

 

安裝客戶端gitlab-ci-multi-runner

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash

如果出現嘗試其他鏡像提示 可以ctrl+c 終止掉進程,然后更改鏡像地址

vim /etc/yum.repos.d/runner_gitlab-ci-multi-runner.repo

將一下內容替換runner_gitlab-ci-multi-runner.repo原有的內容

[gitlab-ci-multi-runner] 

name=gitlab-ci-multi-runner baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ci-multi-runner/yum/el7  repo_gpgcheck=0 gpgcheck=0 enabled=1 gpgkey=https://packages.gitlab.com/gpg.key

執行 yum install -y gitlab-ci-multi-runner 即可

注冊runner

gitlab-ci-multi-runner register

刷新項目,查看runner是否成功啟動,如圖,綠色為啟動成功

 

查看runner狀態

gitlab-ci-multi-runner verify

重啟所有runner:

gitlab-ci-multi-runner run

重啟單個runner:

gitlab-ci-multi-runner run-single --url http://IP:port/ --token runnerToken --executor shell

編寫 deploy文件

在gitlab-runner的~/.local/bin/目錄下新建deploy文件

su gitlab-runner

mkdir ~/.local/bin -p

cd ~/.local/bin

vim deploy

復制以下內容到deploy文件

#!/bin/bash

if [ $# -ne 3 ] then echo "arguments error!" exit 1 else deploy_path="/data/wwwroot/$1/$2/$3" if [ ! -d "$deploy_path" ] then git clone "git@192.168.6.139:${1}/${2}.git" $deploy_path cd $deploy_path git checkout $3 else cd $deploy_path git pull fi fi

 

以上腳本的意思是如果參數不是三個,打印參數錯誤

如果目錄沒建立 這git clone 並且git checkout

如果存在 則git clone

添加腳本執行權限

chmod +x ~/.local/bin/deploy

切換到root身份 編輯/etc/profile文件 最末尾添加加入 path路徑

PATH="$HOME/.local/bin:$PATH"

source /etc/profile

給gitlab-runner用戶創建文件權限

chown -hR gitlab-runner:gitlab-runner /data/wwwroot

配置ssh登錄

su gitlab-runner

mkdir  ~/.ssh

cd   ~/.ssh

ssh-keygen

然后一直按enter

查看id_rsa.pub文件 並復制 ssh key

創建一個gitlab-runner用戶,並將該用戶添加到項目成員中(賦予該成員maintainer角色)

在gitlab上,登錄gitlab-runner

將剛剛復制的ssh key設置到gitlab-runner用戶的ssh-keys上

創建文件 .gitlab-ci.yml 和test.txt ,前者用於CI/CD解析,后者用於觸發CI/CD

yml 內容如下

stages:

  - deploy

 

deploy1:

  stage: deploy

  tags:

    - test-runner-1

  only:

    - master

  script:

    - bash deploy java test-project master

修改test.txt文件,查看ci/cd 功能是否觸發

此時任務可能會報以下錯誤

 

root身份下 執行以下命令

source /etc/profile

ln -s /home/gitlab-runner/.local/bin/deploy /usr/bin/deploy

切換

su gitlab-runner

deploy java test-project master

根據提示 填入yes 就可以了

至此就完成了ci的功能

將tomcat和jdk都放到wwwroot目錄下,並給gitlab-runner賦予權限

修改配置文件

vim /etc/profile

在文件末尾加上

export JAVA_HOME=/data/wwwroot/jdk

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export TOMCAT=/data/wwwroot/tomcat

export PATH=$TOMCAT/bin:$PATH

修改.gitlab.yml配置為

stages:

  - deploy - build - ops deploy_job: stage: deploy tags: - test-project only: - master script: - bash deploy java taozugong-service master build_job: stage: build tags: - test-project only: - master script: - source /etc/profile - cd /data/wwwroot/java/taozugong-service/master - /data/wwwroot/maven/bin/mvn clean package -Dmaven.test.skip=true ops_job: stage: ops tags: - test-project only: - master script: - rm -f /data/wwwroot/tomcat/webapps/taozugong.war - cp /data/wwwroot/java/taozugong-service/master/taozugong-service/target/taozugong.war /data/wwwroot/tomcat/webapps/taozugong.war - rm -f /data/wwwroot/tomcat/webapps/admin.war - cp /data/wwwroot/java/taozugong-service/master/taozugong-admin/target/admin.war /data/wwwroot/tomcat/webapps/admin.war

建議先修改maven源地址阿里雲Aliyun倉庫地址及設置

至此完成

還需要解決一下gitlab綁定的nginx與自己安裝的nginx的沖突

# 復制一份 gitlib 下的 nginx
mv /opt/gitlab/embedded/sbin/nginx /opt/gitlab/embedded/sbin/nginx2 # 修改啟動腳本 vi /opt/gitlab/sv/nginx/run
exec chpst -P /opt/gitlab/embedded/sbin/nginx -p /var/opt/gitlab/nginx # 改為 exec chpst -P /opt/gitlab/embedded/sbin/nginx2 -p /var/opt/gitlab/nginx

其實就是修改了 gitlab 的 nginx 進程名來防止沖突。

最后 reboot 即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM