成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

讓自動(dòng)化工作流解放你的雙手-創(chuàng)新互聯(lián)

本篇主要講解一下如何去配置 jenkins,如何使用 Fabric(python 腳本)去部署項(xiàng)目,怎么設(shè)置 gitlab 的鉤子,實(shí)現(xiàn)我們提交代碼及自動(dòng)打包部署,實(shí)現(xiàn)真正的自動(dòng)化部署??礆w看,記得一定要實(shí)踐一下才知道哪里有坑。

成都服務(wù)器托管,創(chuàng)新互聯(lián)公司提供包括服務(wù)器租用、川西大數(shù)據(jù)中心、帶寬租用、云主機(jī)、機(jī)柜租用、主機(jī)租用托管、CDN網(wǎng)站加速、國(guó)際域名空間等業(yè)務(wù)的一體化完整服務(wù)。電話咨詢(xún):18982081108

如果你在嘗試的過(guò)程中遇到什么問(wèn)題,歡迎留言和我一起探討。

準(zhǔn)備項(xiàng)目

這里就不做過(guò)多介紹了,隨便一個(gè) vue 或者 react 的項(xiàng)目,或者 node 的項(xiàng)目都可以。

前提是一定要上傳到 git 上哦,我們后續(xù)會(huì)使用項(xiàng)目 git 的鉤子函數(shù)去調(diào)用 jenkins 進(jìn)行自動(dòng)構(gòu)建。我這邊用的是公司的一個(gè) vue 項(xiàng)目。

安裝 jenkins

如果是公司已經(jīng)有自己的 jenkins,那可以跨過(guò)這一步,直接看后面的。

Linux 基礎(chǔ)環(huán)境

要求必須有 java 運(yùn)行環(huán)境,建議安裝 Oracle 官方的,給大家個(gè)傳送門(mén)

安裝(CentOS 環(huán)境下)

sudo?wget?-O?/etc/yum.repos.d/jenkins.repo?https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo?rpm?--import?https://pkg.jenkins.io/redhat-stable/jenkins.io.key
#?或?https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo?yum?install?jenkins
復(fù)制代碼
  • 添加 Jenkins 官方倉(cāng)庫(kù)

  • 導(dǎo)入公鑰

  • 安裝

上面執(zhí)行完成之后,檢查/usr/lib/jenkins/jenkins.war 是否存在,如果在下載過(guò)程中很慢的話,建議改成 http 協(xié)議。

服務(wù)管理(Linux)

在 linux 上可以通過(guò)以下命令去管理 jenkins 的服務(wù):

systemctl?start?jenkins
systemctl?stop?jenkins
systemctl?status?jenkins
復(fù)制代碼

配置

jenkins 的配置文件在這個(gè)目錄下:/etc/sysconfig/jenkins,我們可以通過(guò)這個(gè)配置文件修改 jenkins 的端口號(hào),因?yàn)?jenkins 默認(rèn)端口號(hào)都是 8080,很容易被占用,所以還是換一下的好。

#?修改默認(rèn)端口
JENKINS_PORT="8001"
JENKINS_AJP_PORT="8009"?#?選填
復(fù)制代碼

第一次訪問(wèn)

通過(guò) systemctl start jenkins,將服務(wù)跑起來(lái)之后,我們就可以進(jìn)行訪問(wèn)了,在瀏覽器中通過(guò) http://服務(wù)器ip:端口號(hào) 即可進(jìn)行訪問(wèn)。

讓自動(dòng)化工作流解放你的雙手

  • 管你要密碼怎么辦?

可以在 /var/lib/jenkins/secrets/initialAdminPassword 中找到賬號(hào)密碼。

登錄之后,我們能看到主頁(yè)面就代表 jenkins 安裝成功了。

讓自動(dòng)化工作流解放你的雙手

安裝其他需要的軟件

我們后續(xù)會(huì)在 jenkins 的服務(wù)器上進(jìn)行腳本的執(zhí)行和項(xiàng)目的打包,最好在 jenkins 上把 node 相關(guān)的軟件安裝好。

安裝 node 就不多講了,大家可以看一下我之前寫(xiě)的node 中 3m 管理法,可以幫你有效的管理 node,以及切換 npm 源。

我們后續(xù)不使用 shell 腳本,使用 Fabric 腳本部署,希望大家在 jenkins 上也裝一下 Fabric 環(huán)境吧,放心,不是很麻煩,很快就可以裝好,不是給大家加活,主要是 Fabric 是真好用,后續(xù)給大家展示一下或者大家自己操作一下就知道了。

服務(wù)器上有很多會(huì)默認(rèn)帶 python 環(huán)境,我們需要先查看一下 python 的版本,F(xiàn)abric 需要運(yùn)行在 python2.5-2.7 的版本之下。

python?--version
復(fù)制代碼

只要版本大于 2.5 即可,如果沒(méi)有 python 或者版本小于 2.5,可以根據(jù)安裝教程安裝一下。

之后就是安裝 Fabric:

pip?install?fabric
復(fù)制代碼

好了,把環(huán)境安裝完成了,我們要開(kāi)始搞事了。

創(chuàng)建 jenkins 工程

點(diǎn)擊 new 任務(wù),即可開(kāi)始創(chuàng)建任務(wù):

讓自動(dòng)化工作流解放你的雙手

填寫(xiě)自己的工程的名稱(chēng),選擇自己需要?jiǎng)?chuàng)建項(xiàng)目的類(lèi)型,我們就選擇自由風(fēng)格即可。

讓自動(dòng)化工作流解放你的雙手

這個(gè)時(shí)候就創(chuàng)建好任務(wù)了,我們需要對(duì)任務(wù)進(jìn)行一定的配置。

配置 gitlab 的上傳即構(gòu)建功能

配置 jenkins 工程

從 jenkins 右側(cè)找到自己的工程,進(jìn)入工程后點(diǎn)擊左側(cè)的 configure。

讓自動(dòng)化工作流解放你的雙手

配置 git 倉(cāng)庫(kù)地址

在 jenkins 的工程里,我們可以配置具體項(xiàng)目的 git 地址,后續(xù)提交項(xiàng)目之后,jenkins 工程就會(huì)從這個(gè) git 目錄去拉代碼,記得填寫(xiě)一個(gè)有權(quán)限的賬戶(hù)哦。

讓自動(dòng)化工作流解放你的雙手

添加觸發(fā)器

配置完成 git 遠(yuǎn)程倉(cāng)庫(kù)地址之后,我們需要找到構(gòu)建環(huán)境,勾選下圖中紅框選中的地方,這個(gè)是 webhook 在 jenkins 里邊的配置。

讓自動(dòng)化工作流解放你的雙手

記得保存紅框中 URL 后邊的地址,后續(xù)會(huì)填寫(xiě)到 gitlab 里邊。

配置 git 倉(cāng)庫(kù)鉤子

本篇主要以 gitlab 為例,在 gitlab 的對(duì)應(yīng)項(xiàng)目中,找到 webhook 的配置(settings -> integrations)

讓自動(dòng)化工作流解放你的雙手

URL:就是上一步在 jenkins 中勾選 gitlab 鉤子時(shí)賦值的 URL,有時(shí)候可能會(huì)存在問(wèn)題,比如你修改了 jenkins 的端口號(hào),但是那個(gè) URL 還是顯示 8080,這個(gè)時(shí)候需要將端口號(hào)修改成你更改后的。

Token:jenkins 對(duì)應(yīng)的工程中勾選 gitlab 鉤子選項(xiàng)之后,會(huì)有一個(gè)高級(jí)設(shè)置,如下:

讓自動(dòng)化工作流解放你的雙手

讓自動(dòng)化工作流解放你的雙手

讓自動(dòng)化工作流解放你的雙手

將生成的 token 粘貼放到 gitlab 對(duì)應(yīng)的 Token 中。

**注意:**這個(gè)時(shí)候需要在高級(jí)設(shè)置中勾選另外一個(gè)選項(xiàng),就是具體根據(jù)哪個(gè)分支提交代碼后構(gòu)建,如果不勾選這個(gè)會(huì)導(dǎo)致 gitlab 中測(cè)試 push events 的時(shí)候報(bào) 401 的錯(cuò)誤,如果你在測(cè)試 webhook 時(shí)出現(xiàn) 401 的問(wèn)題,可以回來(lái)修改一下這里:

讓自動(dòng)化工作流解放你的雙手

填完 gitlab 的 URL 和 Token 之后點(diǎn)擊創(chuàng)建:

Trigger 中我們勾選 push events 即可,如果有其他的需求可以自行勾選。

測(cè)試 gitlab 鉤子

在上一步中,我們已經(jīng)將 gitlab 鉤子需要的 URL 和 Token 都填寫(xiě)完成,并且已經(jīng)創(chuàng)建了 webhook,在上一個(gè)頁(yè)面配置 webhook 下面可以看到你自己的配置成功的 webhook:

讓自動(dòng)化工作流解放你的雙手

我們可以點(diǎn)擊 test -> Push Events 進(jìn)行 webhook 的測(cè)試,如果頁(yè)面頂部提示以下彈窗,說(shuō)明配置成功。

讓自動(dòng)化工作流解放你的雙手

這個(gè)時(shí)候我們?cè)诳?jenkins 里面,會(huì)提示工程正在構(gòu)建。

讓自動(dòng)化工作流解放你的雙手

實(shí)現(xiàn)自動(dòng)化構(gòu)建及部署

目前公司業(yè)務(wù)場(chǎng)景是這樣的:jenkins 是一臺(tái)服務(wù)器,需要部署項(xiàng)目是一臺(tái)服務(wù)器,并且需要部署項(xiàng)目的業(yè)務(wù)服務(wù)器有堡壘機(jī)進(jìn)行保護(hù),我無(wú)法使用 jenkins 的 ssh 功能對(duì)業(yè)務(wù)服務(wù)器進(jìn)行直接登錄。

所以我本篇主要講如何使用 Fabric 進(jìn)行遠(yuǎn)程部署,這里也就將自動(dòng)化構(gòu)建和自動(dòng)化部署合并起來(lái)了,其實(shí)自動(dòng)化構(gòu)建是一塊內(nèi)容,自動(dòng)化部署是一塊內(nèi)容。如果大家的業(yè)務(wù)場(chǎng)景和我一樣,可以使用這種方法,多一門(mén)手藝多一條出路唄,多學(xué)點(diǎn)東西肯定有好處。

正常的自動(dòng)化工作流是這樣的:

  1. 在項(xiàng)目開(kāi)發(fā)完成之后,使用 git push 將項(xiàng)目推送到遠(yuǎn)程倉(cāng)庫(kù)。

  2. 如果上一步配置 git 鉤子功能沒(méi)問(wèn)題,那么 git 就會(huì)觸發(fā) jenkins,然后 jenkins 開(kāi)始工作。

  3. 我們可以在 jenkins 上進(jìn)行單元測(cè)試,安裝升級(jí)依賴(lài)包,打包,上傳業(yè)務(wù)服務(wù)器,無(wú)論你是執(zhí)行 npm scripts,還是執(zhí)行腳本,都能在 jenkins 上進(jìn)行構(gòu)建。

這一塊內(nèi)容主要講如何寫(xiě)構(gòu)建和部署的腳本,如果你時(shí)間不充裕,沒(méi)時(shí)間學(xué) Fabric,使用 npm scripts 進(jìn)行構(gòu)建,那你可以參考一下掘金網(wǎng)友寫(xiě)的實(shí)戰(zhàn)筆記:Jenkins 打造強(qiáng)大的前端自動(dòng)化工作流。

其實(shí)我還是覺(jué)得大家應(yīng)該看一下 Fabric,點(diǎn)擊名字了解一下吧,真的很強(qiáng)大,直接將構(gòu)建部署合并。

要想使用 Fabric,需要在你的實(shí)際項(xiàng)目根目錄下創(chuàng)建一個(gè) fabfile.py 文件,存放腳本,后續(xù)在 jenkins 中可以直接執(zhí)行這個(gè)文件。廢話不說(shuō),我先給大家放一段我寫(xiě)的腳本。

import?json
from?fabric.api?import?*
#?定義一些變量
APP_NAME?=?'cartoon_cms_fe'
REMOTE_PATH?=?'/data/front/source'
#?業(yè)務(wù)服務(wù)器?ip,登錄的用戶(hù)名
env.hosts?=?['127.0.0.1']
env.user?=?'root'
#?構(gòu)建函數(shù)
@runs_once
def?package():
#?執(zhí)行安裝依賴(lài)的過(guò)程
?run('npm?install')
?#?執(zhí)行打包過(guò)程
?run('npm?run?build:prod')
?#?將打包的dist文件夾進(jìn)行壓縮
?local('tar?zcf?{0}.tgz?dist?--exclude=".svn"?--exclude=".idea"?--remove-files'.format(APP_NAME),?capture=False)
#?部署
def?deploy():
#?將壓縮包上傳到業(yè)務(wù)服務(wù)器
?put('{0}.tgz'.format(APP_NAME),?'{1}/{0}.tgz'.format(APP_NAME,?REMOTE_PATH))
#?進(jìn)入業(yè)務(wù)服務(wù)器存放壓縮包的目錄
?with?cd(REMOTE_PATH):
?#?解壓壓縮包
?run('tar?zxf?{0}.tgz'.format(APP_NAME))
?#?刪除也所報(bào)
?run('rm?-f?{0}.tgz'.format(APP_NAME))
?#?進(jìn)入項(xiàng)目
?with?cd(APP_NAME):
?#?利用http-server和pm2將靜態(tài)項(xiàng)目跑起來(lái)
?run('pm2?start?http-server?--name?--?{0}?-p?8888?-d?false'.format(APP_NAME))
復(fù)制代碼

這個(gè)只是我們公司的業(yè)務(wù),其實(shí) Fabric 腳本就是幫助你將 shell 命令跑在服務(wù)器上,后續(xù)幫助你進(jìn)行遠(yuǎn)程上傳部署,看過(guò) Fabric 教程的大兄弟們,你們應(yīng)該知道使用 local 命令會(huì)在當(dāng)前服務(wù)器執(zhí)行命令,使用 run 命令會(huì)在遠(yuǎn)程服務(wù)器執(zhí)行命令。

這個(gè)時(shí)候腳本就寫(xiě)好了,我們打開(kāi) jenkins 找到對(duì)應(yīng)項(xiàng)目,進(jìn)入項(xiàng)目的 Configure,找到 build,然后配置一個(gè) shell,讓其執(zhí)行。

可以參考下面的配置:

讓自動(dòng)化工作流解放你的雙手

保存一下,然后自己測(cè)試一下吧。

在 jenkins 上執(zhí)行構(gòu)建,我們可以點(diǎn)擊這個(gè)構(gòu)建的圖標(biāo)查看構(gòu)建過(guò)程有沒(méi)有問(wèn)題。

讓自動(dòng)化工作流解放你的雙手

當(dāng)出現(xiàn)以下內(nèi)容時(shí),就代表構(gòu)建成功了。

讓自動(dòng)化工作流解放你的雙手

可以使用你業(yè)務(wù)服務(wù)器的 ip 加項(xiàng)目端口號(hào)查看跑起來(lái)的項(xiàng)目。

讓自動(dòng)化工作流解放你的雙手

這個(gè)時(shí)候我們的自動(dòng)化構(gòu)建及自動(dòng)化部署就完成了。

最后

這篇文章我們只是簡(jiǎn)單的搭建一套自動(dòng)化工作流程,像單元測(cè)試什么的都沒(méi)有寫(xiě),如果你的項(xiàng)目有單元測(cè)試,只需要多執(zhí)行一條命令即可。

我們?cè)陂_(kāi)發(fā)完成之后,提交 git,jenkins 就可以幫助我們自動(dòng)化執(zhí)行,解放了人力部署的生產(chǎn)力,讓我們更多關(guān)注的是開(kāi)發(fā)過(guò)程。其實(shí)持續(xù)集成真實(shí)的配置要比我們這些復(fù)雜的多,一套完整的持續(xù)集成,能讓公司省不少人力成本。

雖然我們配置的簡(jiǎn)單,但是你如果配置成功一個(gè)工程,其實(shí)就已經(jīng)了解了這個(gè)過(guò)程,后續(xù)接觸復(fù)雜的持續(xù)集成,會(huì)讓你上手更快。

讓自動(dòng)化工作流解放你的雙手

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

文章題目:讓自動(dòng)化工作流解放你的雙手-創(chuàng)新互聯(lián)
本文URL:http://jinyejixie.com/article32/gicsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、App開(kāi)發(fā)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、服務(wù)器托管網(wǎng)站設(shè)計(jì)公司、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
房产| 乌苏市| 新巴尔虎右旗| 西昌市| 岫岩| 读书| 班戈县| 常德市| 上饶县| 鸡西市| 海阳市| 托克托县| 台中县| 水城县| 乐安县| 故城县| 巫溪县| 秦皇岛市| 石阡县| 文化| 文成县| 会泽县| 娄烦县| 舞阳县| 高雄县| 巴彦县| 永定县| 松滋市| 疏勒县| 历史| 贵德县| 于田县| 舟曲县| 大厂| 子洲县| 威信县| 洪湖市| 通道| 福贡县| 宁陵县| 澎湖县|