gitlab 安装gitlabrunner 无法连接tiller_谈一谈GitLab Runner是个什么东东?
概念
我從官網(wǎng)搜了一下,GitLab Runner 是一個(gè)開(kāi)源項(xiàng)目, 它用來(lái)運(yùn)行你定制的任務(wù)(jobs)并把結(jié)果返回給 GitLab。 GitLab Runner 配合GitLab CI(GitLab 內(nèi)置的持續(xù)集成服務(wù)) 協(xié)調(diào)完成任務(wù)。
gitlab
想要了解 GitLab Runner之前,我們先要知道或者說(shuō)必須要知道GitLab是什么東東?
GitLab是由GitLabInc.開(kāi)發(fā),使用MIT許可證的基于網(wǎng)絡(luò)的Git倉(cāng)庫(kù)管理工具,且具有wiki和issue跟蹤功能。使用Git作為代碼管理工具,并在此基礎(chǔ)上搭建起來(lái)的web服務(wù)。簡(jiǎn)單來(lái)說(shuō)就是github的翻版,一個(gè)存放代碼的倉(cāng)庫(kù)平臺(tái)。最簡(jiǎn)單的應(yīng)用場(chǎng)景就是開(kāi)發(fā)使用git提交代碼(push)到gitlab,也可以從gitlab下拉代碼(pull)到本地。
對(duì)于開(kāi)發(fā)者們來(lái)說(shuō),git + GitLab已經(jīng)滿(mǎn)足了日常的全部,根本沒(méi)想過(guò)還有GitLab Runner這個(gè)東東。那么官方為什么還要推出GitLab Runner這個(gè)開(kāi)源項(xiàng)目?它有哪些應(yīng)用場(chǎng)景?對(duì)于開(kāi)發(fā)者來(lái)說(shuō)有沒(méi)有必要學(xué)習(xí)GitLab Runner呢?
GitLab為什么要推出Gitlab Runner?
我個(gè)人觀點(diǎn)是:GitLab為了加入可持續(xù)集成工具(CI/CD)市場(chǎng)。在國(guó)內(nèi)IT界技術(shù)人士眼里幾乎都聽(tīng)到過(guò)大名鼎鼎的jenkins,因?yàn)閖enkins是一個(gè)可持續(xù)集成、交付、部署的web平臺(tái),jenkins在這個(gè)領(lǐng)域幾乎占領(lǐng)了整個(gè)國(guó)內(nèi)市場(chǎng)。當(dāng)然還有一些國(guó)外的集成工具,但國(guó)內(nèi)幾乎都不用。
GitLab-CI(GitLab可持續(xù)集成服務(wù))確實(shí)在大家眼里是一個(gè)比較陌生的概念,因?yàn)镚itLab是從8.0版本才開(kāi)始集成GitLab-CI功能的,應(yīng)用的人本來(lái)就很少,所以知道人就更少了,但是隨著近年來(lái)GitLab的發(fā)展越來(lái)越強(qiáng)盛,版本更新速度非常之快,功能應(yīng)用也越來(lái)越豐富,其GitLab Runner就孕育而成了。
在當(dāng)今,git + gitlab + jenkins還是主流的萬(wàn)精油方案,這無(wú)可厚非,但由于git + gitlab + gitlab-CI 部署非常輕便,加上越來(lái)越多人開(kāi)始理解和應(yīng)用gitlab-CI + gitlab-runner發(fā)布方案,大多數(shù)人都在朝著更加方便快捷部署方向前進(jìn),若干年后jenkins在國(guó)內(nèi)的霸主地位岌岌可危,但最終還是要由市場(chǎng)來(lái)決定。
GitLab Runer 和 GitLab CI 關(guān)系
GitLab-Runner是配合GitLab-CI進(jìn)行使用的。一般地,GitLab里面的每一個(gè)工程都會(huì)定義一個(gè)屬于這個(gè)工程的軟件集成腳本,用來(lái)自動(dòng)化地完成一些軟件集成工作。當(dāng)這個(gè)工程的倉(cāng)庫(kù)代碼發(fā)生變動(dòng)時(shí),比如有人push了代碼,GitLab就會(huì)將這個(gè)變動(dòng)通知GitLab-CI。這時(shí)GitLab-CI會(huì)找出與這個(gè)工程相關(guān)聯(lián)的Runner,并通知這些Runner把代碼更新到本地并執(zhí)行預(yù)定義好的執(zhí)行腳本。
所以,GitLab-Runner就是一個(gè)用來(lái)執(zhí)行軟件集成腳本的東西。你可以想象一下:Runner就像一個(gè)個(gè)的工人,而GitLab-CI就是這些工人的一個(gè)管理中心,所有工人都要在GitLab-CI里面登記注冊(cè),并且表明自己是為哪個(gè)工程服務(wù)的。當(dāng)相應(yīng)的工程發(fā)生變化時(shí),GitLab-CI就會(huì)通知相應(yīng)的工人執(zhí)行軟件集成腳本。如下圖所示:
應(yīng)用場(chǎng)景
因?yàn)槲野裧itlab-runner應(yīng)用在web發(fā)布環(huán)境中,所以在實(shí)際應(yīng)用中我進(jìn)行了一些調(diào)整,把gitlab-runner當(dāng)作“中轉(zhuǎn)站”,一對(duì)多方式。“中轉(zhuǎn)站”與各源站通過(guò)ssh連接,“中轉(zhuǎn)站”定義好執(zhí)行的腳本,腳本內(nèi)容就是通過(guò)ssh連接到各源站執(zhí)行g(shù)it pull等操作。如下圖所示:
使用“中轉(zhuǎn)站”的好處是:
1)單臺(tái)server管理所有Runner即可,腳本管理集中化;
2)不用每臺(tái)源站PC都要安裝Runner,然后再注冊(cè),過(guò)于繁瑣;
3)ssh 連接方式主流、便捷,但需要控制好防火墻策略;
4)在gitlab UI界面,管理runners也簡(jiǎn)潔明了;
5)單個(gè)job執(zhí)行后,所有源站反饋結(jié)果信息集中化,方便查看;
其他方案
第一種(推薦):公用1個(gè)runner,很簡(jiǎn)單,所有后方集群向gitlab-ci注冊(cè),公用runner根據(jù)定義不同的腳本(腳本命名為不同集群名稱(chēng),容易識(shí)別)去往不同的集群。(都是ssh連到集群執(zhí)行命令)
第二種(高級(jí)):1臺(tái)多個(gè)runner,雖然多,但是壓力分?jǐn)偟讲煌瑀unner進(jìn)程上,但也不適用建太多runner,這樣管理反而不方便。
我為什么要運(yùn)行多個(gè)runner?
這個(gè)主要還是為了區(qū)分業(yè)務(wù),每一類(lèi)業(yè)務(wù)使用一個(gè)runner執(zhí)行,這樣在管理上也方便區(qū)分,當(dāng)然,所有業(yè)務(wù)也可以共用一個(gè)runner。
最后,對(duì)于開(kāi)發(fā)者來(lái)說(shuō)有沒(méi)有必要學(xué)習(xí)GitLab Runner?
我個(gè)人覺(jué)得GitLab的可持續(xù)集成服務(wù)和發(fā)布對(duì)于開(kāi)發(fā)者來(lái)說(shuō)只要知道有這個(gè)功能就可以了,而對(duì)于web框架部署或是運(yùn)維人員來(lái)說(shuō)就非常有必要學(xué)習(xí)一下了。
本文錯(cuò)漏不足之處還請(qǐng)見(jiàn)諒!
總結(jié)
以上是生活随笔為你收集整理的gitlab 安装gitlabrunner 无法连接tiller_谈一谈GitLab Runner是个什么东东?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php jsonerrorsyntax,
- 下一篇: 令xtu3service开机时立即启动_