中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

怎么查網(wǎng)站備案最簡單的網(wǎng)頁制作

怎么查網(wǎng)站備案,最簡單的網(wǎng)頁制作,注冊公司網(wǎng)上辦理,哈爾濱seo優(yōu)化教程💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識(shí),也可以暢所欲言、分享您的想法和見解。 本人主要分享計(jì)算機(jī)核心技…

💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識(shí),也可以暢所欲言、分享您的想法和見解。

本人主要分享計(jì)算機(jī)核心技術(shù):系統(tǒng)維護(hù)、數(shù)據(jù)庫、網(wǎng)絡(luò)安全、自動(dòng)化運(yùn)維、容器技術(shù)、云計(jì)算、人工智能、運(yùn)維開發(fā)、算法結(jié)構(gòu)、物聯(lián)網(wǎng)、JAVA 、Python、PHP、C、C++等。
不同類型針對(duì)性訓(xùn)練,提升邏輯思維,劍指大廠,非常期待和您一起在這個(gè)小小的網(wǎng)絡(luò)世界里共同探索、學(xué)習(xí)和成長。

大覓網(wǎng)之自動(dòng)化部署
技能目標(biāo):
- 了解 Pipeline 的概念
- 會(huì)使用分段生成器生成流水線腳本
- 掌握通過 Pipeline 構(gòu)建項(xiàng)目的方法

3.1 案例分析

3.1.1 案例概述

某公司最近開發(fā)了一套大型票務(wù)類電商網(wǎng)站,被命名為大覓網(wǎng)。大覓網(wǎng)為用戶提供了通
Web 界面購票的服務(wù),主要功能包括:商品搜索、用戶注冊登錄、商品詳情、選座、下
單等功能。大覓網(wǎng)的整個(gè)部署過程會(huì)用到云計(jì)算的相關(guān)知識(shí),包括 OpenStack 的多節(jié)點(diǎn)部
署、OpenStack 網(wǎng)絡(luò)路由創(chuàng)建和云主機(jī)創(chuàng)建;也會(huì)用到 Docker 容器的相關(guān)知識(shí),包括
Dockerfile 制作鏡像、Docker Compose 多容器關(guān)聯(lián)制作等;還會(huì)用到 Jenkins 自動(dòng)構(gòu)建發(fā)
布大覓網(wǎng)項(xiàng)目。整個(gè)項(xiàng)目采用多知識(shí)相結(jié)合,共同協(xié)調(diào)配合來完成部署。本章詳細(xì)介紹大覓
網(wǎng)的基礎(chǔ)環(huán)境部署。

3.1.2 案例前置知識(shí)點(diǎn)

1. Pipeline 簡介

Pipeline 又被稱作流水線,是 Jenkins 的一套插件。流水線提供了一組可擴(kuò)展的工具,
用于將簡單到復(fù)雜的交付流程建模為流水線“代碼”。流水線作為一個(gè)新功能,是從 Jenkins
2.x 版本開始支持的,基于其重要性現(xiàn)在已經(jīng)作為推薦插件的一部分。
流水線項(xiàng)目的創(chuàng)建,通常通過以下三種方式:
?
經(jīng)典 UI
? Blue Ocean
?
在源碼管理系統(tǒng)中定義
“經(jīng)典 UI”是在 Jenkins 中直接輸入基本的流水線;“Blue Ocean”在構(gòu)建流水線項(xiàng)目
時(shí),會(huì)自動(dòng)編寫 Jenkins 文件并提交到源代碼倉庫中;“在源碼管理系統(tǒng)中定義”需要手動(dòng)
編寫 Jenkins 文件,之后在提交到代碼倉庫中,三者的提交方式不同。
流水線腳本其實(shí)也是一種編程語言,它提供了豐富的幫助文檔。在 Jenkins 構(gòu)建頁面內(nèi)
就有內(nèi)置文檔,可方便查看。通過文檔的學(xué)習(xí)和指引可以讓項(xiàng)目構(gòu)建變得更加容易。這些文
檔會(huì)根據(jù)安裝的插件不同自動(dòng)進(jìn)行調(diào)整,同時(shí)在需要的地方都有鏈接地址。為了初學(xué)者更快
速的掌握 Pipeline 腳本編寫,它還提供了“片段生成器”的功能。該功能有助于各個(gè)步驟
創(chuàng)建代碼段,實(shí)現(xiàn)簡單、快速生成 Pipeline 腳本內(nèi)容,同時(shí)可嘗試不同的參數(shù)進(jìn)行不同的
調(diào)整。
2. Tengine 簡介
Tengine 是由淘寶網(wǎng)發(fā)起的 Web 服務(wù)器項(xiàng)目。針對(duì)網(wǎng)站訪問量大的需求,它基于開源
軟件 Nginx 進(jìn)行了優(yōu)化,添加了很多高級(jí)功能和特性。Tengine 的性能和穩(wěn)定性已經(jīng)在淘寶
網(wǎng)、天貓商城等大型網(wǎng)站得到了很好的檢驗(yàn)。它的最終目標(biāo)是打造一個(gè)高效、穩(wěn)定、安全、
易用的 Web 平臺(tái)。從 2011 12 月開始,Tengine 成為一個(gè)開源項(xiàng)目。Tengine 團(tuán)隊(duì)在積
極地開發(fā)和維護(hù)這個(gè)項(xiàng)目,其團(tuán)隊(duì)的核心成員來自于淘寶、搜狗等互聯(lián)網(wǎng)企業(yè),它是社區(qū)合
作的成果。

3.1.3 案例環(huán)境

1. 本案例實(shí)驗(yàn)環(huán)境

本案例基于《云原生平臺(tái)實(shí)戰(zhàn)》第三、四章中 OpenStack 多節(jié)點(diǎn)部署和云主機(jī)創(chuàng)建。
OpenStack 上創(chuàng)建兩臺(tái)虛擬云主機(jī)作為實(shí)驗(yàn)環(huán)境,具體云主機(jī)環(huán)境配置如表 2-1 所示。
3-1 大覓網(wǎng)搭建環(huán)境
主機(jī)操作系統(tǒng)主機(jī)名/IP 地址主要軟件
虛擬云主機(jī)CentOS 7.3-x86_64damiwang/192.168.9.18OpenStack、Docker
虛擬云主機(jī)CentOS 7.3-x86_64gitlab/192.168.9.13Gitlab

2. 案例環(huán)境用到的用戶名和密碼

3-2 案例用到的用戶名和密碼
類型用戶名密碼
Gitlabrootbdqn123456
MySQLroot123456
Jenkinsadmin123456
Nexusadminadmin123

3. 案例需求

1)所有單項(xiàng)目編譯構(gòu)建的業(yè)務(wù)實(shí)現(xiàn)刪除及清理。
2)通過 Pipeline 腳本實(shí)現(xiàn)所有業(yè)務(wù)的部署。

4. 案例實(shí)現(xiàn)思路

1)基于業(yè)務(wù)部署環(huán)境,刪除所有業(yè)務(wù)容器、鏡像及 Jenkins 緩存。
2)通過 Pipeline 構(gòu)建 common 基礎(chǔ)項(xiàng)目并上傳私服倉庫。
3)通過 Pipeline 構(gòu)建相關(guān)業(yè)務(wù)項(xiàng)目并發(fā)布。
4)通過瀏覽器訪問測試大覓網(wǎng)。

3.2 案例實(shí)施

3.2.1 刪除現(xiàn)有業(yè)務(wù)部署

1.刪除現(xiàn)有業(yè)務(wù)發(fā)布容器

大覓網(wǎng)自動(dòng)發(fā)布可直接使用大覓網(wǎng)業(yè)務(wù)部署搭建完成的環(huán)境,將其進(jìn)行簡單改造就可以
開始自動(dòng)化案例的部署。大覓網(wǎng)的所有業(yè)務(wù)都是采用容器方式啟動(dòng)的,為了通過 Pipeline
方式重新構(gòu)建業(yè)務(wù)容器,所有舊業(yè)務(wù)容器都需要?jiǎng)h除。
[root@damiwang ~]# cd /home/px2/tools/dm
[root@damiwang dm]# docker-compose down
Removing dm_file-consumer_1
... done
Removing dm_base-consumer_1
... done
Removing dm_user-provider_1
... done
Removing dm_user-consumer_1
... done
Removing dm_scheduler-provider_1 ... done
Removing dm_scheduler-consumer_1 ... done
Removing dm_pay-provider_1
... done
Removing dm_pay-consumer_1
... done
Removing dm_order-provider_1
... done
Removing dm_order-consumer_1
... done
Removing dm_item-search_1
... done
Removing dm_item-provider_1
... done
Removing dm_item-consumer_1
... done
Removing dm_base-provider_1
... done
Removing dm_zipkin-server_1
... done
Removing dm_zuul-gateway_1
... done
Removing dm_config-server_1
... done
Removing dm_discovery-eureka_1
... done
Network envdm is external, skipping

2.刪除現(xiàn)有業(yè)務(wù)鏡像

大覓網(wǎng)的業(yè)務(wù)項(xiàng)目在通過 Docker 方式啟動(dòng)之前,都是需要先生成對(duì)應(yīng)的鏡像。在開始
自動(dòng)化部署之前,原有業(yè)務(wù)鏡像也需要?jiǎng)h除。
[root@damiwang dm]# docker image rm $(docker image ls | grep ^dm_ | awk '{print $3}')
Untagged: dm_file-consumer:latest
Deleted: sha256:892f23e3fc8f2c95cbc4ff1cda0c0b5ca63067dbdc29d3c79ec691e647346949
Deleted: sha256:de91421b8f2108d02e13fa2add10fddf2aca77bea5e157fb1f763b025dc4a5a5
Deleted: sha256:08c310293b29e4f737316271c101ad1d456a1380d210380200e58e3030c57de9
Deleted: sha256:6aea649938ec67a4572aed1dd5de6e0bd8013c3e4cf29739bed2a6def07616b3
Deleted: sha256:8198ac39fc23034e9b4da66fb136cb2c5552faf0bc9d469f420362c27af9dd9a
Deleted: sha256:8ccfbf538a84eaa4de7652d14a7e022dfcc55b0ca88dfd3c5903b9db77886a39
Untagged: dm_user-provider:latest
...省略部分內(nèi)容...
Untagged: dm_discovery-eureka:latest
Deleted: sha256:99c656f6ba1e7c2a88364948c2b5793664a5faefa54c412d984ab11bda2dce94
Deleted: sha256:540632374f2b2d71d63b33fcb9e13733b0d9e1961f83be740869aa60cb43a948
Deleted: sha256:4ef2f1eda0af8c913bc3c8dbe53e3337facda683f26737dab8cbd352153711ef
Deleted: sha256:e897cf16cabfd96b469b4a1f1587d5e4eee64c6d8fbcf66e2b01a26c31c284e3
Deleted: sha256:30837158808466c38521e14094621052422b502c6bf50aeab7d1f51d8af8bcd6

Deleted: sha256:f0bec7156c9fabe618596ae55a73c1044eb3ea68aea4ab0a0fd13721da124e76

3.清空 Jenkins 發(fā)布緩存

通過 Jenkins 構(gòu)建的業(yè)務(wù)項(xiàng)目緩存也需要?jiǎng)h除。
[root@damiwang envdm]# pwd
/home/px2/envdm[root@damiwang envdm]# docker-compose exec jenkins bash
[root@538694f400f5 webapps]# rm -rf /root/.jenkins/workspace/*
[root@538694f400f5 webapps]# rm -rf /root/.jenkins/cache

3.2.2 通過 Pipeline 自動(dòng)化部署業(yè)務(wù)

1. 安裝 Pipeline 插件

Jenkins 流水線項(xiàng)目的構(gòu)建需要“pipeline”插件的支持。該插件的安裝方法為:“系
統(tǒng)管理”“插件管理”“可選插件”選項(xiàng)卡,右上角搜索“pipeline”,找到 Ppeline
插件,如圖 3.1 所示。然后,單擊“直接安裝”按鈕進(jìn)行安裝。
3.1 pipeline 插件安裝

2. 構(gòu)建 pipeline-common 流水線

(1)創(chuàng)建流水線視圖

進(jìn)入 Jenkins 首頁,單擊最上方“所有”選項(xiàng)卡后面的“+”創(chuàng)建 pipeline 視圖,如圖
3.2 所示。
3.2 創(chuàng)建視圖
將新視圖命名為 dmw-pipeline,之后單擊“確定”按鈕,如圖 3.3 所示。
3.3 創(chuàng)建 dmw-pipeline 視圖
最后,直接單擊左下角的“保存”按鈕,不需要填寫額外信息,保持默認(rèn)。

(2)新建 pipeline-common 流水線項(xiàng)目

Jenkins 首頁單擊“新建任務(wù)”,項(xiàng)目名稱填寫“pipeline-common”,項(xiàng)目類型選擇
“流水線”,此處的流水線選項(xiàng)是需要 Pipeline 插件的支持的,如果沒有安裝 Pipeline 插件
則看不到“流水線”選項(xiàng)。之后單擊“OK”創(chuàng)建項(xiàng)目,如圖 3.4 所示。
3.4 pipeline-common 流水線項(xiàng)目創(chuàng)建
進(jìn)入到“pipeline-common”流水線項(xiàng)目的配置頁面,直接下拉到“流水線”模塊。在
“定義”的下拉框內(nèi)選擇“Scripted Pipeline”,“Script”代碼框內(nèi)右側(cè)的下拉框內(nèi)同樣選
擇“Scripted Pipeline”,此時(shí)會(huì)列出 Pipeline 腳本基礎(chǔ)語法架構(gòu)。當(dāng)前顯示的只是一個(gè)示
例,實(shí)際的 Pipeline 腳本編寫完成后也是類似的結(jié)構(gòu),如圖 3.5 所示。
3.5 Pipeline 腳本示例
之前大覓網(wǎng)業(yè)務(wù)部署,在進(jìn)行 dm-base-consumer 項(xiàng)目構(gòu)建時(shí),整個(gè)構(gòu)建過程可以分
為拉取代碼、編譯、編譯后執(zhí)行命令三個(gè)部分。為了降低 Pipeline 腳本的編寫難度,官方
提供了“分段生成器”功能,它可以幫助生成 Pipeline 腳本,簡化書寫步驟。本案例就通
過“分段生成器”來輔助編寫 Pipeline 腳本。單擊 Pipeline 模塊下的“流水線語法”(如
3.5 左下角的鏈接),之后進(jìn)入到“分段生成器”界面,如圖 3.6 所示。
3.6 分段生成器界面
單擊“示例步驟”下拉框,選擇“git: Git”,就會(huì)出現(xiàn)之前單個(gè)項(xiàng)目配置時(shí)的代碼拉取
界面,如圖 3.7 所示。
3.7 分段生成器的 Git 配置界面
“倉庫 URL”填寫“common”項(xiàng)目的代碼拉取地址,“憑據(jù)”選擇對(duì)應(yīng)的憑據(jù),然
后單擊“生成流水線腳本”按鈕生成 Pipeline 腳本對(duì)應(yīng)的語句。這條語句就可以應(yīng)用到
Pipeline 腳本內(nèi)。分段生成器輔助生成的語句可以簡化 Pipeline 腳本的編寫,避免手動(dòng)一條
條的去編寫,減少了錯(cuò)誤的出現(xiàn),提高了工作效率。
復(fù)制該語句到“pipeline-common”項(xiàng)目配置頁,填入 Pipeline 腳本內(nèi),填入之前先清
空之前的示例。如圖 3.8 所示。
3.8 Pipeline 腳本內(nèi) Git 配置
上述 Pipeline 腳本的具體內(nèi)容如下。
node {
stage('Clone') {
echo "git clone common"
git
credentialsId:
'811f040f-8e2f-4424-8f60-0f92f8080e91',
url:
'http://192.168.9.13/root/common.git'
}
}
腳本內(nèi)的“node”是流水線分配的一個(gè)執(zhí)行區(qū)域,“stage”是區(qū)域內(nèi)的執(zhí)行步驟。
回到“分段生成器”界面,進(jìn)行“Build”第二階段的代碼生成。要實(shí)現(xiàn)“Build”需要
切換到目錄“/root/.jenkins/workspace/pipeline-common/dm-common/”使用“dir: Change
current directory”來輔助實(shí)現(xiàn)代碼語句的生成,如圖 3.9 所示。
3.9 分段生成器切換目錄
“示例步驟”選擇“dir: Change current directory”,“Path”填寫要切換的路徑,單
擊“生成流水線腳本”按鈕。切換目錄是為了進(jìn)行編譯,通過直接調(diào)用 sh 命令實(shí)現(xiàn),應(yīng)用
到流水腳本后為 sh mvn clean deploy -Dmaven.test.skip=true”,將編譯命令和切換命
令相結(jié)合就構(gòu)成了“Build”的完整流水線腳本,如圖 3.10 所示。
3.10 Build 階段流水線腳本
上述 Pipeline 腳本的具體內(nèi)容如下。
node {
stage('Clone') {
echo "git clone common"
git
credentialsId:
'811f040f-8e2f-4424-8f60-0f92f8080e91',
url:
'http://192.168.9.13/root/common.git'
}
}
node {
stage('Build') {
echo "begin build"
dir('/root/.jenkins/workspace/pipeline-common/dm-common/') {
sh 'mvn clean deploy -Dmaven.test.skip=true'
}
}
由于 common 項(xiàng)目屬于基礎(chǔ)支持項(xiàng)目,并不需要發(fā)布,所以沒有通過 Docker 發(fā)布的內(nèi)
容,只需要將 common 項(xiàng)目及其六個(gè)子項(xiàng)目分別加入進(jìn)來進(jìn)行構(gòu)建即可。這六個(gè)子項(xiàng)目的
dm-common-module→dm-common-dto→dm-common-dao→dm-common-client→dm-co
mmon-utils→dm-common-ext-utils,加入步驟可參考 dm-common 項(xiàng)目。完整的 Pipeline
腳本內(nèi)容如下。
node {
stage('Clone') {
echo "git clone common"
git
credentialsId:
'811f040f-8e2f-4424-8f60-0f92f8080e91',
url:
'http://192.168.9.13/root/common.git'
}
}
node {
stage('Build dm-common') {
echo "begin dm-common"
dir('/root/.jenkins/workspace/pipeline-common/dm-common/') {
sh 'mvn clean deploy -Dmaven.test.skip=true'
}
}
stage('Build dm-common-module') {
echo "begin dm-common-module"
dir('/root/.jenkins/workspace/pipeline-common/dm-common/dm-common-module/') {
sh 'mvn clean deploy -Dmaven.test.skip=true'
}
}
stage('Build dm-common-dto') {
echo "begin dm-common-dto"
dir('/root/.jenkins/workspace/pipeline-common/dm-common/dm-common-dto/') {
sh 'mvn clean deploy -Dmaven.test.skip=true'
}
}
stage('Build dm-common-dao') {
echo "begin dm-common-dao"
dir('/root/.jenkins/workspace/pipeline-common/dm-common/dm-common-dao/') {
sh 'mvn clean deploy -Dmaven.test.skip=true'
}
}
stage('Build dm-common-client') {
echo "begin dm-common-client"
dir('/root/.jenkins/workspace/pipeline-common/dm-common/dm-common-client/') {
sh 'mvn clean deploy -Dmaven.test.skip=true'
}
}stage('Build dm-common-utils') {
echo "begin dm-common-utils"
dir('/root/.jenkins/workspace/pipeline-common/dm-common/dm-common-utils/') {
sh 'mvn clean deploy -Dmaven.test.skip=true'
}
}
stage('Build dm-common-ext-utils') {
echo "begin dm-common-ext-utils"
dir('/root/.jenkins/workspace/pipeline-common/dm-common/dm-common-ext-utils/') {
sh 'mvn clean deploy -Dmaven.test.skip=true'
}
}
}
可以看到代碼的拉取作為一個(gè) node,其他的子項(xiàng)目 Buid 是放到一起的,這樣不用每個(gè)
子項(xiàng)目都要去拉取一次代碼,簡化了 Buid 過程。
將上述完整 Pipeline 腳本保存入項(xiàng)目后。單擊左側(cè)菜單欄中的“立即構(gòu)建”,所有步
驟都構(gòu)建成功后即可出現(xiàn)如圖 3.11 所示頁面。
3.11 pipeline-common 項(xiàng)目構(gòu)建
3. 構(gòu)建 pipeline-dm-env 項(xiàng)目
Pipeline-dm-env 流 水 線 項(xiàng) 目 包 括 的 四 個(gè) 子 項(xiàng) 目 分 別 是 : dm-config-server
dm-discovery-eureka、dm-gateway-zuul、dm-zipkin-server。跟上面 pipeline-common 項(xiàng)
目類似,這四個(gè)子項(xiàng)目也需要逐個(gè)加入 pipeline-dm-env 流水線項(xiàng)目內(nèi)。
在“dmw-pipeline”視圖中新建“pipeline-dm-env”項(xiàng)目。單擊“新建任務(wù)”,項(xiàng)目名
稱處填寫“pipeline-dm-env”,同樣選擇“流水線”項(xiàng)目類型,單擊“OK”按鈕創(chuàng)建該項(xiàng)
目,如圖 3.12 所示。
3.12 pipeline-dm-env 項(xiàng)目創(chuàng)建
在“流水線”模塊內(nèi)填入流水線腳本代碼,相關(guān)代碼依舊可以通過分段生成器來輔助編
寫,通過“流水線語法”進(jìn)入分段生成器。如圖 3.13 所示。
3.13 pipeline 腳本輸入框
使用分段生成器生成拉取 Git 倉庫代碼,“示例步驟”選擇“git: Git”,“倉庫 URL
填寫“http://192.168.9.13/root/env-project.git”,“憑據(jù)”選擇對(duì)應(yīng)的 damiwang 憑據(jù),之
后單擊“生成流水線腳本”生成 pipeline 腳本語句,如圖 3.14 所示。
3.14 分段生成器生成拉取代碼語句
Build”階段的代碼語句可直接復(fù)制 pipeline-common 的內(nèi)容,然后修改切換路徑的
地址。以子項(xiàng)目 dm-discovery-eureka 為例,Pipeline 腳本內(nèi)容如下所示。
stage('Build dm-discovery-eureka') {
echo "maven build dm-discovery-eureka"
dir('/root/.jenkins/workspace/pipeline-dm-env/dm-discovery-eureka/') {
sh "mvn clean package -Dmaven.test.skip=true"
}
}
Pipeline-dm-env 流水線項(xiàng)目相對(duì)于 pipeline-common 多了發(fā)布的過程,發(fā)布 Deploy
的腳本代碼同樣可以通過分段生成器來生成。在分段生成器內(nèi)選擇“sshPublisher: Send
build artifacts over SSH”,填入 dm-discovery-eureka 項(xiàng)目的發(fā)布參數(shù):“Name”選擇對(duì)
應(yīng)的發(fā)布服務(wù)器;“Source files”填寫“dm-discovery-eureka/target/*.jar”;“Remove prefix
填寫“dm-discovery-eureka/target/”;“Remote directory”填寫“dm/dm-discovery-eureka
;
Exec command”填寫
cd /home/px2/tools/dm
sudo `which docker-compose` stop config-server
sudo `which docker-compose` build config-server
sudo `which docker-compose` up -d config-server
頁面效果如圖 3.15 所示。
3.15 分段生成器 SSH Publisher 填寫
填寫完成后,單擊“生成流水線腳本”按鈕生成流水線代碼。如圖 3.16 所示。
3.16 SSH Publisher 流水線代碼生成
將拉取代碼、編譯和編譯后執(zhí)行的命令三個(gè)部分生成的代碼拷貝到流水線腳本內(nèi),生成
dm-discovery-eureka 項(xiàng)目的流水線腳本。同時(shí),也可以將另外三個(gè)項(xiàng)目依照上述步驟加入
到流水線腳本內(nèi),最終的完整流水線腳本內(nèi)容如下所示。
node {
stage('Clone dm-discovery-eureka') {
echo "git clone dm-discovery-eureka"
git
credentialsId:
'811f040f-8e2f-4424-8f60-0f92f8080e91',
url:
'http://192.168.9.13/root/env-project.git'
}
}
node {
stage('Build dm-discovery-eureka') {
echo "maven build dm-discovery-eureka"
dir('/root/.jenkins/workspace/pipeline-dm-env/dm-discovery-eureka/') {
sh "mvn clean package -Dmaven.test.skip=true"
}
}
stage('Deploy dm-discovery-eureka') {
echo "docker deploy dm-discovery-eureka"
sshPublisher(publishers:
[sshPublisherDesc(configName:
'server9.18',
transfers:
[sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd /home/px2/tools/dm
sudo `which docker-compose` stop discovery-eureka
sudo `which docker-compose` build discovery-eureka
sudo `which docker-compose` up -d discovery-eureka''', execTimeout: 120000, flatten: false,
makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory:
'dm/dm-discovery-eureka', remoteDirectorySDF: false, removePrefix: 'dm-discovery-eureka/target/',
sourceFiles:
'dm-discovery-eureka/target/*.jar')],
usePromotionTimestamp:
false,
useWorkspaceInPromotion: false, verbose: false)])
}
}
node {
stage('Build dm-config-server') {
echo "maven build dm-config-server"
dir('/root/.jenkins/workspace/pipeline-dm-env/dm-config-server/') {
sh "mvn clean package -Dmaven.test.skip=true"
}
}
stage('Deploy dm-config-server') {
echo "docker deploy dm-config-server"
sshPublisher(publishers:
[sshPublisherDesc(configName:
'server9.18',
transfers:
[sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd /home/px2/tools/dm
sudo `which docker-compose` stop config-server
sudo `which docker-compose` build config-server
sudo `which docker-compose` up -d config-server''', execTimeout: 120000, flatten: false,
makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory:
'dm/dm-config-server', remoteDirectorySDF: false, removePrefix: 'dm-config-server/target/',
sourceFiles:
'dm-config-server/target/*.jar')],
usePromotionTimestamp:
false,
useWorkspaceInPromotion: false, verbose: false)])
}
}
node {
stage('Build dm-gateway-zuul') {
echo "maven build dm-gateway-zuul"
dir('/root/.jenkins/workspace/pipeline-dm-env/dm-gateway-zuul/') {
sh "mvn clean package -Dmaven.test.skip=true"
}
}
stage('Deploy dm-gateway-zuul') {
echo "docker deploy dm-gateway-zuul"
sshPublisher(publishers:
[sshPublisherDesc(configName:
'server9.18',
transfers:
[sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd /home/px2/tools/dm
sudo `which docker-compose` stop zuul-gateway
sudo `which docker-compose` build zuul-gateway
sudo `which docker-compose` up -d zuul-gateway''', execTimeout: 120000, flatten: false,
makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory:
'dm/dm-gateway-zuul', remoteDirectorySDF: false, removePrefix: 'dm-gateway-zuul/target/',
sourceFiles:
'dm-gateway-zuul/target/*.jar')],
usePromotionTimestamp:
false,
useWorkspaceInPromotion: false, verbose: false)])
}
}
node {
stage('Build dm-zipkin-server') {
echo "maven build dm-zipkin-server"
dir('/root/.jenkins/workspace/pipeline-dm-env/dm-zipkin-server/') {
sh "mvn clean package -Dmaven.test.skip=true"
}
}
stage('Deploy dm-zipkin-server') {
echo "docker deploy dm-zipkin-server"
sshPublisher(publishers:
[sshPublisherDesc(configName:
'server9.18',
transfers:
[sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd /home/px2/tools/dm
sudo `which docker-compose` stop zipkin-server
sudo `which docker-compose` build zipkin-server
sudo `which docker-compose` up -d zipkin-server''', execTimeout: 120000, flatten: false,
makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory:
'dm/dm-zipkin-server', remoteDirectorySDF: false, removePrefix: 'dm-zipkin-server/target/',
sourceFiles:
'dm-zipkin-server/target/*.jar')],
usePromotionTimestamp:
false,
useWorkspaceInPromotion: false, verbose: false)])
}
}
腳本內(nèi)容填寫完成,保存退出后,單擊“立即構(gòu)建”,進(jìn)行項(xiàng)目的編譯和發(fā)布工作。執(zhí)
行成功的結(jié)果,如圖 3.17 所示。
3.17 pipeline-dm-env 項(xiàng)目構(gòu)建成功
4. 構(gòu)建 pipeline-dm-base 項(xiàng)目
Pipeline-dm-base 流 水 線 項(xiàng) 目 包 括 兩 個(gè) 子 項(xiàng) 目 , 分 別 是 dm-base-consumer
dm-base-provider。在 Jenkins 首頁單擊“新建任務(wù)”,創(chuàng)建 pipeline-dm-base 流水線項(xiàng)目,
如圖 3.18 所示。
3.18 pipeline-dm-base 流水線項(xiàng)目創(chuàng)建通過“流水線語法”進(jìn)入分段生成器,如圖 3.19 所示。
3.19 pipeline-dm-base 項(xiàng)目流水線腳本配置界面
通過分段生成器生成拉取 Git 倉庫代碼部分流水線腳本,如圖 3.20 所示。
3.20 拉取代碼流水線腳本生成
項(xiàng)目編譯 Build 部分同樣采用拷貝修改的方法,如下所示。
stage('Build dm-base-consumer') {
echo "build dm-base-consumer"
dir('/root/.jenkins/workspace/pipeline-dm-base/dm-base-consumer/') {
sh ''mvn clean package -Dmaven.test.skip=true
}
}
以上編譯過程需要切換到對(duì)應(yīng)的 dm-base-consumer 目錄下,之后再進(jìn)行項(xiàng)目的編譯。
在“分段生成器”上選用“sshPublisher: Send build artifacts over SSH”,填寫基于
SSH 的相關(guān)發(fā)布命令,如圖 3.21 所示。
3.21 分段生成器生成發(fā)布命令填入
單擊“生成流水線腳本”按鈕,生成 Pipeline 腳本所需的代碼片段,如圖 3.22 所示。
3.22 dm-base-consumer 生成對(duì)應(yīng)流水線腳本語句
以上是 dm-base-consumer 項(xiàng)目的生成過程,另一個(gè)項(xiàng)目 dm-base-provider 的生成過
程也類似。二者都生成完成后,可形成完整的流水線腳本,內(nèi)容如下所示。
node {
stage('Clone dm-base-consumer') {
echo "git clone dm-base-consumer"
git
credentialsId:
'811f040f-8e2f-4424-8f60-0f92f8080e91',
url:
'http://192.168.9.13/root/base-consumer.git'
}
stage('Build dm-base-consumer') {
echo "build dm-base-consumer"
dir('/root/.jenkins/workspace/pipeline-dm-base/dm-base-consumer/') {
sh 'mvn clean deploy -Dmaven.test.skip=true'
}
}
stage('Deploy dm-base-consumer') {
echo "deploy dm-base-consumer"
sshPublisher(publishers:
[sshPublisherDesc(configName:
'server9.18',
transfers:
[sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd /home/px2/tools/dm
sudo `which docker-compose` stop base-consumer
sudo `which docker-compose` build base-consumer
sudo `which docker-compose` up -d base-consumer''', execTimeout: 120000, flatten: false,
makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory:
'dm/dm-base-consumer', remoteDirectorySDF: false, removePrefix: 'dm-base-consumer/target/',
sourceFiles:
'dm-base-consumer/target/*.jar')],
usePromotionTimestamp:
false,
useWorkspaceInPromotion: false, verbose: false)])
}
}
node {
stage('Clone dm-base-provider') {
echo "git clone dm-base-provider"
git
credentialsId:
'811f040f-8e2f-4424-8f60-0f92f8080e91',
url:
'http://192.168.9.13/root/base-provider.git'
}
stage('Build dm-base-provider') {
echo "build dm-base-provider"
dir('/root/.jenkins/workspace/pipeline-dm-base/dm-base-provider/') {
sh 'mvn clean deploy -Dmaven.test.skip=true'
}
}
stage('Deploy dm-base-provider') {
echo "deploy dm-base-provider"
sshPublisher(publishers:
[sshPublisherDesc(configName:
'server9.18',
transfers:
[sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd /home/px2/tools/dm
sudo `which docker-compose` stop base-provider
sudo `which docker-compose` build base-provider
sudo `which docker-compose` up -d base-provider''', execTimeout: 120000, flatten: false,
makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory:
'dm/dm-base-provider', remoteDirectorySDF: false, removePrefix: 'dm-base-provider/target/',
sourceFiles:
'dm-base-provider/target/*.jar')],
usePromotionTimestamp:
false,
useWorkspaceInPromotion: false, verbose: false)])
}
}
項(xiàng)目保存退出后,同樣單擊“立即構(gòu)建”按鈕,完成 pipeline-dm-base 項(xiàng)目的構(gòu)建。
5. 構(gòu)建其他業(yè)務(wù)項(xiàng)目
除了以上項(xiàng)目外,還需要構(gòu)建另外的五個(gè)流水線項(xiàng)目,分別是:pipeline-dm-item
pipeline-dm-order、pipeline-dm-pay、pipeline-dm-schedulerpipeline-dm-user。其中每
一個(gè)流水線項(xiàng)目都包括對(duì)應(yīng)的 consumer provider 項(xiàng)目。相關(guān)項(xiàng)目都創(chuàng)建成果后的結(jié)果如
3.23 所示。
圖 3.23 所有流水線項(xiàng)目
6. 測試業(yè)務(wù)項(xiàng)目
相 關(guān) 的 基 礎(chǔ) 服 務(wù) 、 業(yè) 務(wù) 服 務(wù) 都 構(gòu) 建 完 成 后 , 就 可 以 進(jìn) 行 項(xiàng) 目 測 試 。 訪 問
http://192.168.9.18:8888 查看大覓網(wǎng)的首頁內(nèi)容,如圖 3.24 所示。
3.24 大覓網(wǎng)網(wǎng)站
至此,大覓網(wǎng)項(xiàng)目搭建完成。
http://www.risenshineclean.com/news/21594.html

相關(guān)文章:

  • 正規(guī)招聘網(wǎng)站有哪些長春剛剛最新消息今天
  • 微山網(wǎng)站建設(shè)哪家便宜建一個(gè)app平臺(tái)的費(fèi)用多少
  • dw自己做網(wǎng)站需要什么高端企業(yè)網(wǎng)站模板
  • 網(wǎng)站開發(fā)要多錢廊坊網(wǎng)站設(shè)計(jì)
  • 貿(mào)易公司做網(wǎng)站愛鏈網(wǎng)中可以進(jìn)行鏈接買賣
  • 網(wǎng)站建設(shè) 質(zhì)量標(biāo)準(zhǔn)win10優(yōu)化大師怎么樣
  • 自動(dòng)的網(wǎng)站制作智慧軟文網(wǎng)站
  • 做阿里巴巴企業(yè)網(wǎng)站谷歌seo是什么
  • 做網(wǎng)站價(jià)位軟件推廣平臺(tái)有哪些
  • 博客型網(wǎng)站建設(shè)葉濤網(wǎng)站推廣優(yōu)化
  • hao123網(wǎng)站用什么程序做的網(wǎng)絡(luò)營銷就是
  • 網(wǎng)站開發(fā)人員結(jié)構(gòu)配比專業(yè)seo關(guān)鍵詞優(yōu)化
  • 保溫管有哪些網(wǎng)站做輕松seo優(yōu)化排名
  • 手機(jī)做網(wǎng)站多少錢搜索引擎營銷的方法有哪些
  • 網(wǎng)站建設(shè)見站分析和準(zhǔn)備論文網(wǎng)站seo優(yōu)化網(wǎng)站
  • 建一個(gè)做筆記的網(wǎng)站提高工作效率
  • 購物網(wǎng)站建設(shè)圖標(biāo)大全蘇州seo關(guān)鍵詞優(yōu)化軟件
  • 社交網(wǎng)站源代碼指數(shù)計(jì)算器
  • 虛擬主機(jī)和網(wǎng)站空間百度怎么推廣網(wǎng)站
  • 做網(wǎng)站電話銷售上海哪家seo好
  • 網(wǎng)站做快照深圳百度推廣seo公司
  • 網(wǎng)站上傳后后臺(tái)進(jìn)不去外鏈下載
  • 宜昌便宜做網(wǎng)站新聞最新消息
  • 用java編程做網(wǎng)站windows優(yōu)化大師的優(yōu)點(diǎn)
  • 免費(fèi)做網(wǎng)站公司哪家好百度公司官網(wǎng)入口
  • 寶雞做網(wǎng)站的公司網(wǎng)站平臺(tái)都有哪些
  • 垂直類b2c網(wǎng)站北京網(wǎng)優(yōu)化seo優(yōu)化公司
  • 網(wǎng)站 域名綁定google中文搜索引擎
  • 東莞網(wǎng)站排名優(yōu)化seoapp軟件推廣怎么做
  • 新鄉(xiāng)專業(yè)網(wǎng)站建設(shè)公司地推團(tuán)隊(duì)如何收費(fèi)