国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Azure DevOps構(gòu)建CICD流水線

這篇具有很好參考價值的文章主要介紹了Azure DevOps構(gòu)建CICD流水線。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

環(huán)境準(zhǔn)備

Azure資源

  • Azure AKS
  • Azure CR
  • Azure DevOps

代碼準(zhǔn)備

.NET Core示例

Dockerfile

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80

#ENV ConnectionStrings:Default=""
#ENV ConnectionStrings:Log=""

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src

COPY . .

#RUN dotnet restore

#RUN dotnet build MyProject.API.csproj -c Release -o /app


FROM build AS publish
RUN dotnet publish MyProject.API.csproj -c Release -o /app/publish
COPY MyProject.API.xml /app/publish/MyProject.API.xml
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .

ENTRYPOINT ["dotnet", "MyProject.API.dll"]

deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
	name: awesome-api
spec:
	replicas: 1
	selector:
		matchLabels:
			app: awesome-api
	template:
		metadata:
			labels:
				app: awesome-api
		spec:
			nodeSelector:
				"kubernetes.io/os": linux
			containers:
			- name: awesome-api
				image: dataplatformacr.azurecr.cn/awesomeapi:latest
				env:
				- name: ALLOW_EMPTY_PASSWORD
					value: "yes"

---
apiVersion: v1
kind: Service
metadata:
	name: awesome-api
spec:
	ports:
	- port: 80
	type: LoadBalancer
	selector:
		app: awesome-api

Java示例

Dockerfile
FROM java:8
EXPOSE 8080

VOLUME /tmp
ADD target/*.jar  /app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","-Xms128m","-Xmx300m","/app.jar","--spring.profiles.active=prod"]

deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: awesomemall-gateway
  namespace: awesomemall
  labels:
    app: awesomemall-gateway
spec:
  replicas: 1
  selector:
    matchLabels:
      app: awesomemall-gateway
  template:
    metadata:
      labels:
        app: awesomemall-gateway
    spec:
      containers:
        - name: awesomemall-gateway
          image: $REGISTRY/$DOCKERHUB_NAMESPACE/$PROJECT_NAME:latest
          imagePullPolicy: "IfNotPresent"
          ports:
            - containerPort: 8080
              protocol: TCP
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      restartPolicy: Always

---
kind: Service
apiVersion: v1
metadata:
  name: awesomemall-gateway
  namespace: awesomemall
  labels:
    app: awesomemall-gateway
spec:
  ports:
    - name: http
      protocol: TCP
      port: 8080
      targetPort: 8080
  selector:
    app: awesomemall-gateway
  type: NodePort

構(gòu)建CICD流水線

應(yīng)用授權(quán)

注冊Azure AD應(yīng)用

  • 打開Azure portal,導(dǎo)航到Azure AD
    Azure DevOps構(gòu)建CICD流水線

  • 選擇應(yīng)用注冊,點(diǎn)擊新注冊
    Azure DevOps構(gòu)建CICD流水線

  • 輸入應(yīng)用名稱,點(diǎn)擊注冊
    Azure DevOps構(gòu)建CICD流水線

  • 創(chuàng)建客戶端密碼
    Azure DevOps構(gòu)建CICD流水線

分配應(yīng)用訂閱的參與者角色

  • 導(dǎo)航到訂閱,選擇Access control(IAM),點(diǎn)擊添加按鈕,添加角色分配,將此應(yīng)用分配為訂閱的參與者權(quán)限
    Azure DevOps構(gòu)建CICD流水線

配置Service Connection

配置gitee的鏈接服務(wù)

  • 導(dǎo)航到Project Settings頁面,選擇Service Connection選項(xiàng)卡,點(diǎn)擊New Service Connection按鈕,創(chuàng)建連接服務(wù)
    Azure DevOps構(gòu)建CICD流水線

配置AKS的鏈接服務(wù)

  • 點(diǎn)擊創(chuàng)建鏈接服務(wù),選擇Azure Resource Manager
    Azure DevOps構(gòu)建CICD流水線

  • 選擇Service principal (manual)
    Azure DevOps構(gòu)建CICD流水線

  • 選擇Azure Cloud China,輸入必要信息
    Azure DevOps構(gòu)建CICD流水線

  • 驗(yàn)證并保存。

創(chuàng)建Pipeline

選擇模板

  • 導(dǎo)航到Pipeline,點(diǎn)擊New Pipeline
    Azure DevOps構(gòu)建CICD流水線

  • 選擇手動編輯器方式創(chuàng)建Pipeline,不使用yaml方式

Azure DevOps構(gòu)建CICD流水線

選擇代碼倉庫

  • 如果是Azure代碼倉庫
    Azure DevOps構(gòu)建CICD流水線

  • 如果是gitee代碼倉庫
    Azure DevOps構(gòu)建CICD流水線

選擇Agent

  • 保存默認(rèn)即可。

Azure DevOps構(gòu)建CICD流水線

構(gòu)建鏡像

  • 使用Docker作業(yè)來構(gòu)建一個服務(wù)鏡像

Azure DevOps構(gòu)建CICD流水線

推送鏡像

  • 將構(gòu)建出來的鏡像推送到Azure鏡像倉庫

Azure DevOps構(gòu)建CICD流水線

臨時禁用IP地址范圍限制

  • 臨時禁用IP Range限制。

Azure DevOps構(gòu)建CICD流水線

  • shell腳本
# Get authorized ip ranges allowed to access API server of AKS cluster
current_authorized_ip=`az aks show -n $(aks.clusterName) -g $(aks.resourceGroupName) --query [apiServerAccessProfile.authorizedIpRanges] -o table|sed -n '3,1p' |sed 's/\s\+/,/g'`
echo ${current_authorized_ip}

# Get self public IP
# self_ip=$(curl ifconfig.co)
# echo "Self public IP address: $self_ip"

# Set current authorized ips as output variable
echo "##vso[task.setvariable variable=authorized_ip;isOutput=true]${current_authorized_ip}"

# Temperarily disable authorized IP ranges
arrIPs=(${current_authorized_ip//,/ })
if [ ${#arrIPs[@]} -gt 0 ];then
echo "Temperarily disable authorized IP ranges..."
az aks update -n $(aks.clusterName) -g $(aks.resourceGroupName) --api-server-authorized-ip-ranges ""
else
echo "Authorized IP is already disabled, skip temperary disable"
fi

部署服務(wù)

  • 更新部署服務(wù)。

Azure DevOps構(gòu)建CICD流水線

  • Command Arguments
image deploy $(deploymentName) *=xxxazurecr.cn/$(imageNameWithTag)

啟用IP地址范圍限制

  • 啟用IP Range限制。

Azure DevOps構(gòu)建CICD流水線

  • shell 腳本
original_authorized_ip=$(aks.authorized_ip)
echo Original Authorized IP ranges: ${original_authorized_ip}

# Recover authorized IP ranges if need
arrIPs=(${original_authorized_ip//,/ })
if [ ${#arrIPs[@]} -gt 0 ];then
    echo "Recover authorized IP ranges to original configuration ..."
    az aks update -n $(aks.clusterName) -g $(aks.resourceGroupName) --api-server-authorized-ip-ranges ${original_authorized_ip}
else
    echo "Authorized IP ranges is disabled orginally, skip recover step"
fi

設(shè)置CD

  • 設(shè)置自動觸發(fā)

Azure DevOps構(gòu)建CICD流水線文章來源地址http://www.zghlxwxcb.cn/news/detail-484016.html

到了這里,關(guān)于Azure DevOps構(gòu)建CICD流水線的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • (十六)devops持續(xù)集成開發(fā)——jenkins流水線構(gòu)建之郵件通知

    (十六)devops持續(xù)集成開發(fā)——jenkins流水線構(gòu)建之郵件通知

    本節(jié)內(nèi)容主要介紹jenkins在流水線任務(wù)構(gòu)建完成后的通知操作,使用jenkins的郵件通知插件完成構(gòu)建任務(wù)結(jié)束的通知。一般項(xiàng)目發(fā)布都會通知相關(guān)的責(zé)任人,這樣項(xiàng)目發(fā)布在出現(xiàn)問題時能夠及時的處理。 ①在插件中心安裝Email Extension郵件通知插件 ②申請一個發(fā)送郵件的郵箱服務(wù)

    2024年02月21日
    瀏覽(35)
  • devops-5:從0開始構(gòu)建一條完成的CI CD流水線

    devops-5:從0開始構(gòu)建一條完成的CI CD流水線

    前文中已經(jīng)講述了靜態(tài)、動態(tài)增加agent節(jié)點(diǎn),以動態(tài)的k8s cloud為例,下面就以Maven構(gòu)建Java程序?yàn)槔?,開始構(gòu)建出一條完整的CI CD流水線。 實(shí)現(xiàn)功能目標(biāo): 1.分別可以根據(jù)分支和tag從源碼倉庫clone代碼 2.拿到源碼后開始編譯 3.構(gòu)建image,并push到鏡像倉庫 4.部署到對應(yīng)k8s集群 5.部署

    2023年04月20日
    瀏覽(41)
  • (十五)devops持續(xù)集成開發(fā)——jenkins流水線構(gòu)建策略配置及觸發(fā)器的使用

    (十五)devops持續(xù)集成開發(fā)——jenkins流水線構(gòu)建策略配置及觸發(fā)器的使用

    本節(jié)內(nèi)容我們主要介紹在Jenkins流水線中,其構(gòu)建過程中的一些構(gòu)建策略的配置,例如通過遠(yuǎn)程http構(gòu)建、定時任務(wù)構(gòu)建、輪詢SCM構(gòu)建、參數(shù)化構(gòu)建、Git hook鉤子觸發(fā)構(gòu)建等,可根據(jù)不同的需求完成不同構(gòu)建策略的配置。 - 構(gòu)建策略說明: - 測試驗(yàn)證 - 構(gòu)建說明 - 測試驗(yàn)證 - 配置

    2024年02月21日
    瀏覽(36)
  • 關(guān)于CICD流水線的前端項(xiàng)目運(yùn)行錯誤,npm項(xiàng)目環(huán)境配置時出現(xiàn)報錯:Not Found - GET https://registry.npm...

    關(guān)于CICD流水線的前端項(xiàng)目運(yùn)行錯誤,npm項(xiàng)目環(huán)境配置時出現(xiàn)報錯:Not Found - GET https://registry.npm...

    原因應(yīng)該是某些jar包緩存中沒有需要改變鏡像將包拉下來 npm config set registry http://registry.npm.taobao.org npm install npm run build

    2024年02月10日
    瀏覽(29)
  • 持續(xù)集成交付CICD:Jenkins流水線實(shí)現(xiàn)Nexus制品晉級策略

    持續(xù)集成交付CICD:Jenkins流水線實(shí)現(xiàn)Nexus制品晉級策略

    目錄 一、理論 1.開發(fā)測試運(yùn)維環(huán)境 二、實(shí)驗(yàn) 1.Nexus制品晉級策略 (1)開發(fā)測試運(yùn)維環(huán)境 (1)環(huán)境 表1?主機(jī) 主機(jī) 架構(gòu) 版本 IP 備注 jenkins jenkins主節(jié)點(diǎn)? ? ?? 2.414.2 192.168.204.15:8080 ?gitlab?runner (從節(jié)點(diǎn)) gitlab gitlab 主節(jié)點(diǎn)??????? 12.10.14 192.168.204.8:82 ??jenkins slave (從節(jié)

    2024年02月04日
    瀏覽(29)
  • Kubesphere中DevOps流水線無法部署/部署失敗

    Kubesphere中DevOps流水線無法部署/部署失敗

    總算能讓devops運(yùn)行以后,流水線卻卡在了deploy這一步。碰到了兩個比較大的問題,一個是無法使用k8sp自帶的kubeconfig認(rèn)證去部署;一個是部署好了以后但是沒有辦法解析鏡像名。 k8s:v1.21.5 k8sp:v3.3.0 pipeline 在deploy 的階段總是報各種錯。 報錯內(nèi)容如下: 從message來看,已經(jīng)不

    2023年04月23日
    瀏覽(29)
  • 【DevOps-09-1】Jenkins流水線任務(wù)初體驗(yàn)

    Jenkins流水線任務(wù)介紹 Jenkins流水線任務(wù)初體驗(yàn) Jenkins流水線任務(wù)腳本語法初體驗(yàn) Jenkinsfile維護(hù)腳本 之前采用Jenkins的自由風(fēng)格構(gòu)建的項(xiàng)目,每個步驟流程都要通過不同的方式設(shè)置,并且構(gòu)建過程中整體流程是不可見的,無法確認(rèn)每個流程花費(fèi)的時間,并且問題不方便定位問題。

    2024年01月21日
    瀏覽(30)
  • 云計(jì)算課程第四次實(shí)驗(yàn)-搭建DevOps流水線

    云計(jì)算課程第四次實(shí)驗(yàn)-搭建DevOps流水線

    子任務(wù)2:搭建DevOps流水線環(huán)境 ? 本實(shí)驗(yàn)以主機(jī)本地虛擬機(jī)為載體,搭建Dev-ops流水線環(huán)境 使用的工具: 目錄 一、實(shí)驗(yàn)概述 1.實(shí)驗(yàn)名稱 2.實(shí)驗(yàn)?zāi)康?3.實(shí)驗(yàn)環(huán)境 二、實(shí)驗(yàn)內(nèi)容 1.實(shí)驗(yàn)設(shè)計(jì) 2.實(shí)驗(yàn)過程 1.gitlab-server的搭建 2.harbor-server的搭建 3.Jenkins-server的搭建 4.Web-server的搭建 5.Dev搭

    2024年02月03日
    瀏覽(37)
  • DevOps系列文章 之GitLabCI模板庫的流水線

    DevOps系列文章 之GitLabCI模板庫的流水線

    目錄結(jié)構(gòu),jobs目錄用于存放作業(yè)模板。templates目錄用于存放流水線模板。這次使用? ?default-pipeline.yml? ?作為所有作業(yè)的基礎(chǔ)模板。 作業(yè)模板 作業(yè)分為Build、test、codeanalysis、artifactory、deploy部分,在每個作業(yè)中配置了rules功能開關(guān),由變量控制最終作業(yè)的運(yùn)行。 jobs/buil

    2024年02月16日
    瀏覽(63)
  • DevOps落地筆記-14|部署流水線:打造一站式部署的關(guān)鍵平臺

    DevOps落地筆記-14|部署流水線:打造一站式部署的關(guān)鍵平臺

    上一課時我主要介紹了實(shí)現(xiàn)自動化測試的范圍、流程和結(jié)構(gòu)圖,自動化測試是持續(xù)集成實(shí)踐不可或缺的一部分,從而使得軟件向高效率和高質(zhì)量邁進(jìn)了一大步。持續(xù)集成主要關(guān)注的是代碼是否可以編譯成功、是否可以通過單元測試和驗(yàn)收測試等。但持續(xù)集成并不能實(shí)現(xiàn)軟件包

    2024年02月22日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包