主要配置如下
image: wangzhiying/ubuntu_ci:v1
mainCode:
tags:
- kxt
only:
- master
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client rsync -y )'
- eval $(ssh-agent -s)
- echo "${SSH_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- echo "${SSH_KNOWN_HOSTS}" > ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
script:
# #調整目錄許可權,保障這邊使用者組與伺服器端需要的一致
- groupadd www
- useradd -g www -s /sbin/nologin www
- chown -R www:www *
- chmod -R 755 ./ * #星號前面空格自己去掉
#主要同步程式碼的命令,可以在這裡排除一些檔案,同步許可權,配置伺服器的專案路徑等。重點參考rsync命令的用法。
- rsync -aztpu --delete --exclude-from ".gitlab-exclude" -e "ssh -p 2221" ./ 伺服器賬號@伺服器地址:目錄地址
testCode:
tags:
- kxt_test
only:
- develop
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client rsync -y )'
- eval $(ssh-agent -s)
- echo "${TEST_SSH_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- echo "${TEST_SSH_KNOWN_HOSTS}" > ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
script:
#調整目錄許可權,保障這邊使用者組與伺服器端需要的一致
- groupadd www
- useradd -g www -s /sbin/nologin www
- chown -R www:www *
- chmod -R 755 ./ * #星號前面空格自己去掉
#主要同步程式碼的命令,可以在這裡排除一些檔案,同步許可權,配置伺服器的專案路徑等。重點參考rsync命令的用法。
- rsync -aztpu --delete --exclude-from ".gitlab-exclude" ./ 伺服器賬號@伺服器地址:目錄地址
CI配置說明
only 配置決定需要構建的分支,當該分支有變動時會執行流水線操作
比如一些
SSH_PRIVATE_KEY
或者TEST_SSH_PRIVATE_KEY
等屬於變數、可在gitlab設定-CI/CD-變數中定義(注意部分變數設定受保護的話只能主分支使用)這裡使用到
docker
的映象image: wangzhiying/ubuntu_ci:v1
這個映象是我自己基於ubuntu
原始映象執行命令'which ssh-agent || ( apt-get update -y && apt-get install openssh-client rsync -y )'
後生成,主要目的為了加快構建速度,你也可以使用ubuntu
映象部分目錄或檔案不需要同步的話需要在程式碼目錄下新增
.gitlab-exclude
檔案、把需要禁止同步的目錄或檔案寫上ssh公鑰免密登陸伺服器的話參考網址
https://blog.csdn.net/Hannnnnnnnnnnnn/article/details/110196685
(本機對本地也可以,不一定需要本機對遠端伺服器)配置完成後需要進行
gitlab-Runner
安裝
利用docker進行gitlab-runner 安裝
下載映象
docker pull gitlab/gitlab-runner:latest
建立資料卷
docker volume create gitlab-runner-config
根據安裝型別執行register命令
docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:latest register
根據提示輸入
1輸入您的GitLab例項URL(也稱為gitlab-ci coordinator URL)。 2輸入您獲得的Token以註冊跑步者。 3輸入跑步者的描述。您可以稍後在GitLab使用者介面中更改此值。 4輸入與Runner關聯的標籤,並用逗號分隔。您可以稍後在GitLab使用者介面中更改此值。 5提供跑步執行者。對於大多數用例,請輸入 docker。 6如果您docker以執行者身份輸入,則系統會要求您提供預設映象,以用於未在中定義一個的專案.gitlab-ci.yml。
防止每次構建都拉取映象
拉取出docker容器中gitlab-runner的配置
# 複製配置到當前目錄 docker cp 容器ID:/etc/gitlab-runner/config.toml ./
新增配置配置
pull_policy = "if-not-present"
- 儲存後放入容器重啟
docker cp ./config.toml 容器ID:/etc/gitlab-runner/config.toml docker restart 容器ID
本作品採用《CC 協議》,轉載必須註明作者和本文連結