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

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

怎么做網(wǎng)頁導(dǎo)航欄德陽seo

怎么做網(wǎng)頁導(dǎo)航欄,德陽seo,商業(yè)空間設(shè)計(jì)說明范文,網(wǎng)站構(gòu)架圖由于公司沒有運(yùn)維,寫go服務(wù)時(shí)各個(gè)環(huán)境編譯部署還是略顯麻煩,由于代碼管理使用的是 gitlab,所以決定使用 gitlab 自帶的 CI/CD 來做自動(dòng)編譯和部署,這樣每次提交代碼以后就可以自動(dòng)部署到服務(wù)器上了。 gitlab 本身只有 CI/CD 的接…

由于公司沒有運(yùn)維,寫go服務(wù)時(shí)各個(gè)環(huán)境編譯部署還是略顯麻煩,由于代碼管理使用的是 gitlab,所以決定使用 gitlab 自帶的 CI/CD 來做自動(dòng)編譯和部署,這樣每次提交代碼以后就可以自動(dòng)部署到服務(wù)器上了。

gitlab 本身只有 CI/CD 的接口,真正執(zhí)行 CI/CD 任務(wù)的是 gilab runner,它負(fù)責(zé)與 gitlab 通信,接受 CI/CD 任務(wù),并交給 Executor 執(zhí)行,Executor 有7種類型:

  • Docker
  • Shell
  • Kubernetes
  • SSH
  • VirtualBox
  • Parallels
  • Custom

Executor的類型在注冊(cè) Runner 的時(shí)候確定,比較常用的是 Docker 和 SSH。GitLab,Runner 和 Executor 之間的關(guān)系如下圖所示(圖片來自GitLab官方文檔)。
在這里插入圖片描述

安裝gitlab-runner

gitlab 的CI/CD 任務(wù)是通過 runner 來運(yùn)行的,runner 也是 go 語言實(shí)現(xiàn)的。我們需要單獨(dú)安裝 runner,而且可以在任意位置安裝。

runner 有 docker 版和可執(zhí)行程序版,這里我選擇的是可執(zhí)行程序版,安裝方式可以參考官網(wǎng)。

我的服務(wù)器是 linux,使用官方提供的腳本安裝:

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash

可執(zhí)行程序名叫 gitlab-runner ,被放在 /usr/bin/ 目錄下。

注冊(cè)runner

runner 需要注冊(cè)到 gitlab,其實(shí)就是把 runner 的信息告訴 gitlab,這樣 gitlab 才知道把 CI/CD 任務(wù)交給誰運(yùn)行。

注冊(cè) runner 的命令是 gitlab-runner register ,回車后會(huì)以交互式的方式注冊(cè) runner,其中比較重要的幾個(gè)參數(shù)是:

  • executor:運(yùn)行流水線的環(huán)境,也就是前面說的7種 Executor 類型,我使用本地 shell 運(yùn)行流水線,所以輸入 shell 。

  • url 和 registration-token:runner 和項(xiàng)目是掛鉤的,所謂的注冊(cè),其實(shí)也就是把 runner 和某個(gè)項(xiàng)目關(guān)聯(lián)起來。打開項(xiàng)目的 setting→CI/CD,找到 Runners 點(diǎn)擊展開,在 Specific runners 欄下面就是我們需要的 url 和 token。如下圖所示

    在這里插入圖片描述

當(dāng)然,為每個(gè)項(xiàng)目注冊(cè)一個(gè) runner 也不太合適,我們可以為一個(gè)組注冊(cè)一個(gè) runner,點(diǎn)開某個(gè)組,url 和 token 可以在同樣的地方找到。這樣組內(nèi)每個(gè)項(xiàng)目就都能使用這個(gè) runner 了。此外,也可以給整個(gè) gitlab 注冊(cè) runner,但是這需要 root 賬號(hào)。

另外,同樣的 url 和 token 可以注冊(cè)多個(gè)runner,然后通過 tag 來決定項(xiàng)目使用哪個(gè) runner。
注冊(cè) runner 和安裝 runner 是兩個(gè)概念,也就是說即便我們只安裝了一個(gè) runner,也能注冊(cè)多個(gè) runner。安裝 runner 是下載可執(zhí)行程序,而注冊(cè)只是往 gitlab 設(shè)置一些配置信息,它和 runner 本身其實(shí)沒太大關(guān)系,注意此時(shí)我們的 runner 還沒有開始運(yùn)行。

除了使用交互式注冊(cè),還可以使用非交互方式,命令如下:

gitlab-runner register \--non-interactive \--url "https://gitlab.com/" \--registration-token "$PROJECT_REGISTRATION_TOKEN" \--executor "shell" \--description "share-runner" \--maintenance-note "Free-form maintainer notes about this runner" \--tag-list "shell,share" \--run-untagged="true" \--locked="false" \--access-level="not_protected"

注意到 --run-untagged 選項(xiàng),它表示是否運(yùn)行在沒有標(biāo)簽的的分支上運(yùn)行流水線。如果沒有設(shè)置這個(gè)參數(shù),也可以在 gitlab 頁面上設(shè)置。就在我們查看 url 和 registration token 的地方,如果 runner 注冊(cè)成功的話,可以看到下面的信息:

在這里插入圖片描述

點(diǎn)擊那個(gè)鉛筆圖標(biāo),可以設(shè)置 runner,在這里我們也可以勾選 run untagged jobs,如下圖所示。

在這里插入圖片描述

上面我的 runner 前面小圓點(diǎn)是綠色的,那是因?yàn)槲业?runner 已經(jīng)運(yùn)行起來了。

注冊(cè)完 runner 會(huì)生成配置文件 /etc/gitlab-runner/config.toml ,可以打開查看,我們配置的信息都在里面。

啟動(dòng)runner

在啟動(dòng) runner 之前,我們可以先創(chuàng)建一個(gè)專門的用戶來運(yùn)行 runner,比如:

useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

這里我們添加的用戶叫 gitlab-runner ,你也可以使用被的用戶,甚至 root ,或者為了方便部署,使用部署的用戶。
然后安裝并啟動(dòng) gitlab 服務(wù):

gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
gitlab-runner start

所謂安裝就是設(shè)置為系統(tǒng)服務(wù),它會(huì)在 /etc/systemd/system/ 目錄下生成 gitlab-runner.service 文件。
其他命令:

  • gitlab-runner stop 停止 gitlab-runner 服務(wù)。
  • gitlab-runner start 啟動(dòng) gitlab-runner 服務(wù)。
  • gitlab-runner restart 重啟 gitlab-runner 服務(wù)。
  • gitlab-runner status 查看 gitlab-runner 服務(wù)狀態(tài)。
  • gitlab-runner uninstall 卸載 gitlab-runner 服務(wù)。
  • gitlab-runner list 列出所有注冊(cè)的 runner。

編寫流水線

我們通過在項(xiàng)目根目錄下創(chuàng)建一個(gè)叫 .gitlab-ci.yml 的文件來定義流水線,也就是 CI/CD 如何執(zhí)行。

流水線分為階段和作業(yè),階段通過 stages 關(guān)鍵字定義,階段是作業(yè)的容器,每個(gè)階段內(nèi)可以定義多個(gè)作業(yè)。階段之間是串行執(zhí)行的,階段內(nèi)的多個(gè)作業(yè)是并行執(zhí)行的。

關(guān)于流水線的編寫,可以參看官方文檔,或者《GitLab CI/CD 從入門到實(shí)戰(zhàn)》這本書。當(dāng)然 gitlab 官方也提供了很多示例,各種語言都有,如果不知到如何開始,可以參考官方示例。

基本結(jié)構(gòu)如下:

stages: # 定義階段- test    # 階段名- build   # 階段名- deploy  # 階段名unit_test:    # 作業(yè)名stage: test # 作業(yè)屬于 test 階段script:     # 作業(yè)執(zhí)行的命令- echo "unit test"compile:        # 作業(yè)名stage: build  # 作業(yè)屬于 build 階段script:       # 作業(yè)執(zhí)行的命令- echo "build"deploy_test:     # 作業(yè)名stage: deploy  # 作業(yè)屬于 deploy 階段secipt:        # 作業(yè)執(zhí)行的命令- echo "deploy test"

我用的是 go 語言,使用 shell 運(yùn)行和部署,只有測(cè)試環(huán)境和正式環(huán)境。

default:interruptible: true # 允許打斷流水線variables:GOBIN: "/usr/local/go/bin/go"GOINSECURE: git.i****d.comGOPRIVATE: git.i****d.comGOPROXY: https://goproxy.cn,directimage: golang:lateststages:- test- build- deployformat:stage: testscript:- echo "單元測(cè)試"- pwd- echo ~- echo $CI_COMMIT_BRANCH- echo $CI_DEFAULT_BRANCE- export GOINSECURE=$GOINSECURE- export GOPRIVATE=$GOPRIVATE- export GOPROXY=$GOPROXY- $GOBIN version- $GOBIN mod tidy- $GOBIN test -v 2>&1 | go-junit-report -set-exit-code > report.xmlartifacts:when: alwaysreports:junit: report.xmlcompile:stage: buildscript:- echo "編譯"- pwd- echo ~- export GOINSECURE=$GOINSECURE- export GOPRIVATE=$GOPRIVATE- export GOPROXY=$GOPROXY- $GOBIN version- $GOBIN mod tidy- mkdir -p _build- $GOBIN build -o _build/$CI_PROJECT_NAME main.goartifacts:expire_in: 1 hourpaths:- _build# 部署生產(chǎn)環(huán)境(僅release分支)
deploy_prod:stage: deployvariables:SERVER_IP: "1**.**.**.*"script: - echo "部署生產(chǎn)環(huán)境"- ssh z**j@$SERVER_IP mkdir -p /data/z**j/$CI_PROJECT_NAME # 創(chuàng)建項(xiàng)目文件夾- ssh z**j@$SERVER_IP mkdir -p /data/z**j/$CI_PROJECT_NAME/config # 創(chuàng)建配置文件夾- ssh z**j@$SERVER_IP "cd /data/z**j/$CI_PROJECT_NAME/ && [ -f run.sh ] && ./run.sh stop || :" # 停止服務(wù)- scp _build/$CI_PROJECT_NAME z**j@$SERVER_IP:/data/z**j/$CI_PROJECT_NAME/ # 拷貝可執(zhí)行文件- scp run.sh z**j@$SERVER_IP:/data/z**j/$CI_PROJECT_NAME/ # 拷貝run.sh- scp config/application.prod.toml z**j@$SERVER_IP:/data/z**j/$CI_PROJECT_NAME/config/application.toml # 拷貝配置文件- ssh z**j@$SERVER_IP "cd /data/z**j/$CI_PROJECT_NAME/ && chmod +x run.sh"- ssh z**j@$SERVER_IP "cd /data/z**j/$CI_PROJECT_NAME/ && ./run.sh start" # 重啟服務(wù)only:- release # 僅release分支部署到生產(chǎn)環(huán)境environment: production# 部署測(cè)試環(huán)境(非main和release分支)
deplog_test:stage: deployvariables:SERVER_IP: "1**.**.**.*"script:- echo "部署測(cè)試環(huán)境"- ssh z**j@$SERVER_IP mkdir -p /data/z**j/$CI_PROJECT_NAME # 創(chuàng)建項(xiàng)目文件夾- ssh z**j@$SERVER_IP mkdir -p /data/z**j/$CI_PROJECT_NAME/config # 創(chuàng)建配置文件夾- ssh z**j@$SERVER_IP "cd /data/z**j/$CI_PROJECT_NAME/ && [ -f run.sh ] && ./run.sh stop || :" # 停止服務(wù)- scp _build/$CI_PROJECT_NAME z**j@$SERVER_IP:/data/z**j/$CI_PROJECT_NAME/ # 拷貝可執(zhí)行文件- scp run.sh z**j@$SERVER_IP:/data/z**j/$CI_PROJECT_NAME/ # 拷貝run.sh- scp config/application.test.toml z**j@$SERVER_IP:/data/z**j/$CI_PROJECT_NAME/config/application.toml # 拷貝配置文件- ssh z**j@$SERVER_IP "cd /data/z**j/$CI_PROJECT_NAME/ && chmod +x run.sh"- ssh z**j@$SERVER_IP "cd /data/z**j/$CI_PROJECT_NAME/ && ./run.sh start" # 重啟服務(wù)except:- $CI_DEFAULT_BRANCH- releaseenvironment: test

多環(huán)境部署通過不同的分支來實(shí)現(xiàn), .gitlab-ci.yml 中的 environment 關(guān)鍵字只是對(duì)部署任務(wù)做一個(gè)記錄和分類,方便管理和查詢部署任務(wù),并無實(shí)際區(qū)分部署環(huán)境的功能。

http://www.risenshineclean.com/news/55334.html

相關(guān)文章:

  • 布吉商城網(wǎng)站建設(shè)哪家公司靠譜百度怎么發(fā)布廣告
  • 如何獲取小程序源碼天津seo推廣
  • 連云港網(wǎng)站建設(shè)案例俄羅斯引擎搜索
  • 開發(fā)公司可以注冊(cè)一造嗎seo關(guān)鍵詞工具
  • 網(wǎng)頁小游戲的網(wǎng)站查關(guān)鍵詞
  • wordpress做垃圾站重慶seo主管
  • 做網(wǎng)站的程序員留備份seo標(biāo)題優(yōu)化關(guān)鍵詞怎么選
  • 網(wǎng)站系統(tǒng)管理計(jì)劃怎樣做好網(wǎng)絡(luò)營(yíng)銷推廣
  • 聊城專業(yè)網(wǎng)站制作公司做互聯(lián)網(wǎng)項(xiàng)目怎么推廣
  • 舟山工程建設(shè)信息網(wǎng)站推廣普通話手抄報(bào)句子
  • 做色情網(wǎng)站需要種子搜索神器網(wǎng)頁版
  • 保定網(wǎng)站制作推廣公司網(wǎng)絡(luò)推廣合作協(xié)議
  • wordpress能做外貿(mào)網(wǎng)站推廣聯(lián)盟
  • 凱里網(wǎng)站建設(shè)百度快照網(wǎng)址
  • 請(qǐng)人做彩票網(wǎng)站多少錢推廣引流軟件
  • 網(wǎng)站建設(shè)推廣什么意思百度競(jìng)價(jià)排名醫(yī)院事件
  • 頁面素材北京seo運(yùn)營(yíng)
  • 怎么做免費(fèi)網(wǎng)站如何讓百度收錄可以放友情鏈接的網(wǎng)站
  • 茂港網(wǎng)站開發(fā)公司武漢網(wǎng)站營(yíng)銷seo方案
  • 做u盤的老外網(wǎng)站整合營(yíng)銷方案案例
  • 網(wǎng)站開發(fā)語言更換想做網(wǎng)絡(luò)推廣的公司
  • 怎么做班級(jí)網(wǎng)站網(wǎng)絡(luò)公司推廣公司
  • 杭州信用網(wǎng)官網(wǎng)小程序seo推廣技巧
  • 牛客網(wǎng)官網(wǎng)電商網(wǎng)站seo優(yōu)化
  • 網(wǎng)站開發(fā)公司銷售總監(jiān)崗位要求seo排名優(yōu)化是什么
  • 地圖網(wǎng)站開發(fā)輿情管理
  • 廣州做網(wǎng)站如何網(wǎng)站如何推廣出去
  • 什么是建設(shè)網(wǎng)站的主題口碑營(yíng)銷的案例有哪些
  • 網(wǎng)站建設(shè)和數(shù)據(jù)容量整合最新實(shí)時(shí)大數(shù)據(jù)
  • 怎么做網(wǎng)站淘寶轉(zhuǎn)換工具寧波seo關(guān)鍵詞如何優(yōu)化