centos7持續整合系統GitLab CI

2021-09-25 09:00:09 字數 4079 閱讀 3681

gitlab(私庫)–>project(gitlab-ci每個專案根目錄下必須有)–>gitrunner(專案觸發ci所執行註冊runner令牌伺服器)

一、持續整合(continuous integration)

要了解gitlab-ci與gitlab runner,我們得先了解持續整合是什麼:

二、gitlab-ci

安裝 gitlab-runner (不使用 docker 映象安裝,不好控制)

curl -l  | sudo bash
yum install gitlab-runner -y
gitlab-runner -v
註冊 gitlab-runner

導航 > 管理區域(扳手圖示) > runners

在 runner 設定時指定以下 url:

在安裝過程中使用以下註冊令牌: 96jq25hhmmc6n9ez9qzf

啟動 runner!

[root@gitrunner gitlab]# gitlab-runner register

running in system-mode.

please enter the gitlab-ci coordinator url (e.g.

^c[root@gitrunner gitlab]# gitlab-runner register

running in system-mode.

please enter the gitlab-ci coordinator url (e.g.

please enter the gitlab-ci token for this runner:

rx5mtgw5d8ck5wer_pj5

please enter the gitlab-ci description for this runner:

[gitrunner]:

please enter the gitlab-ci tags for this runner (comma separated):

tag-gittest

whether to run untagged builds [true/false]:

[false]: true

whether to lock runner to current project [true/false]:

[false]: true

registering runner... succeeded runner=rx5mtgw5

please enter the executor: kubernetes, docker-ssh, parallels, shell, ssh, virtualbox, docker+machine, docker-ssh+machine, docker:

shell

runner registered successfully. feel free to start it, but if it's running already the config should be automatically reloaded!

將 .gitlab-ci.yml 檔案加入到專案的根目錄,runner它會去讀取這裡面的配置

需求:whois專案是乙個使用node.js開發的伺服器用來查詢網域名稱的,因此必須需要有node.js環境才能執行

配置 .gitlab-ci.yml

# 建立乙個名為pages的任務

pages:

# 要執行的指令碼

script:

# 初始化node.js專案的依賴

- cnpm i

# 執行指令碼

- sudo /home/gitlab-runner/kubectl-get-pods.sh

# 告訴 runner 這個名為pages的任務,只在master分支上執行

only:

- master

# gitlab ci有三個預設階段:1構建(build)、2測試(test)、3部署(deploy)。

# 告訴 runner 這個名為pages的任務,只在測試階段執行

stage: deploy

# 告訴 runner 我們應用哪個標籤

tags:

- tag-nodejs

# 建立乙個名為test的任務

test:

# 要執行的指令碼

script:

- cnpm i

# 告訴 runner 告訴它測試除master分支之外的其他分支的每次推送

except:

- master

# gitlab ci有三個預設階段:1構建(build)、2測試(test)、3部署(deploy)。

# 告訴 runner 這個名為test的任務,只在測試階段執行

stage: test

tags:

- tag-nodejs

# 建立乙個名為new_tag的任務

new_tag:

# 要執行的指令碼

script:

- cnpm i

# 告訴 runner 這個名為new_tag的任務,只在新建tag的時候執行

only:

- tag

# gitlab ci有三個預設階段:1構建(build)、2測試(test)、3部署(deploy)。

# 告訴 runner 這個名為test的任務,只在測試階段執行

stage: test

tags:

- tag-nodejs

註冊完成之後,gitlab-ci就會多出一條runner記錄,如下所示:

gitlab-ci runner

gitlab-ci會為這個runner生成乙個唯一的token,以後runner就通過這個token與gitlab-ci進行通訊。

那麼,問題來了。註冊好了的runner的資訊存放在哪兒了呢?

原來,runner的資訊是存放在乙個配置檔案裡面的,配置檔案的格式一般是.toml。這個配置檔案的存放位置有以下幾種情況:

在類unix作業系統下(0.5.0之後版本)

如果是以root使用者身份執行gitlab-ci-multi-runner register,那麼配置檔案預設是/etc/gitlab-runner/config.toml

如果是以非root使用者身份執行gitlab-ci-multi-runner register,那麼配置檔案預設是~/.gitlab-runner/config.toml

在其他作業系統下以及0.5.0之前版本

配置檔案預設在當前工作目錄下./config.toml

git命令

命令列指令

git 全域性設定

git config --global user.name "administrator"

git config --global user.email "[email protected]"

建立新版本庫

git clone

cd test

touch readme.md

git add readme.md

git commit -m "add readme"

git push -u origin master

已存在的資料夾

cd existing_folder

git init

git remote add origin

git add .

git commit -m "initial commit"

git push -u origin master

已存在的 git 版本庫

cd existing_repo

git remote rename origin old-origin

git remote add origin

git push -u origin --all

git push -u origin --tags

建立可持續整合系統 Jenkins

在軟體工程實踐中,需要將開發完成的最終產品交付給使用者 或發布給測試部門 就需要我們將源 編譯為可執行檔案。將各個分別開發的模組集合為乙個完整的系統,這個過程成為系統整合,我們用乙個系統來描述這個整合過程。整合系統 輸入指定的軟體資產,輸出根據軟體資產生產出的軟體產品以及其他副產品的系統。對於一般系...

屬於自己的持續整合系統

摘要 下面是最流行的快速持續整合系統,這裡選用的都是一些開源的軟體,方便大家自行構建,之後會介紹一些持續交付的軟體如何與下面的系統進行結合 下面是最流行的快速持續整合系統,這裡選用的都是一些開源的軟體,方便大家自行構建,之後會介紹一些持續交付的軟體如何與下面的系統進行結合 當然阿里雲本身容器服務就帶...

持續整合 《Centos安裝與解除安裝GitLab》

1 安裝相關依賴 sudo yum install curl policycoreutils openssh server openssh clients 2 啟動ssh服務,並且設定為開機自啟動 sudo systemctl enable sshd sudo systemctl start ssh...