日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

如何使用 Jenkins、GitHub 和 Docker 在 Azure 中的 Linux VM 上创建开发基础结构

發布時間:2025/3/15 linux 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何使用 Jenkins、GitHub 和 Docker 在 Azure 中的 Linux VM 上创建开发基础结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

若要將應用程序開發的生成和測試階段自動化,可以使用持續集成和部署 (CI/CD) 管道。 本教程介紹如何在 Azure VM 上創建 CI/CD 管道,包括如何:

  • 創建 Jenkins VM
  • 安裝并配置 Jenkins
  • 創建 GitHub 與 Jenkins 之間的 Webhook 集成
  • 通過 GitHub 提交創建并觸發 Jenkins 生成作業
  • 創建應用的 Docker 映像
  • 驗證 GitHub 提交是否生成新的 Docker 映像并更新正在運行的應用

Note

在 Azure 中國區使用 Azure CLI 2.0 之前,請先運行?az cloud set -n AzureChinaCloud?來改變云環境。如果想切回國際版 Azure,請再次運行?az cloud set -n AzureCloud。

如果選擇在本地安裝并使用 CLI,本教程要求運行 Azure CLI 2.0.4 或更高版本。 運行?az --version?即可查找版本。 如果需要進行安裝或升級,請參閱安裝 Azure CLI 2.0。

創建 Jenkins 實例

在有關如何在首次啟動時自定義 Linux 虛擬機的上一個教程中,你已了解如何使用 cloud-init 自動執行 VM 自定義。 本教程使用 cloud-init 文件在 VM 上安裝 Jenkins 和 Docker。

在當前 shell 中,創建名為“cloud-init.txt”的文件并粘貼下面的配置。 請確保已正確復制整個 cloud-init 文件,尤其是第一行:

yaml復制 #cloud-config package_upgrade: true write_files: - path: /etc/systemd/system/docker.service.d/docker.conf content: | [Service] ExecStart= ExecStart=/usr/bin/dockerd - path: /etc/docker/daemon.json content: | { "hosts": ["fd://","tcp://127.0.0.1:2375"] } runcmd: - wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | apt-key add - - sh -c 'echo deb http://pkg.jenkins-ci.org/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' - apt-get update && apt-get install jenkins -y - curl -sSL https://get.docker.com/ | sh - usermod -aG docker azureuser - usermod -aG docker jenkins - service jenkins restart

Note

在 Azure 中國區使用 Azure CLI 2.0 之前,請先運行?az cloud set -n AzureChinaCloud?來改變云環境。如果想切回國際版 Azure,請再次運行?az cloud set -n AzureCloud。

使用?az group create?創建資源組,然后才能創建 VM。 以下示例在?chinaeast?位置創建名為?myResourceGroupJenkins?的資源組:

Azure CLI復制 az group create --name myResourceGroupJenkins --location chinaeast

現在,請使用?az vm create?創建 VM。 使用?--custom-data?參數傳入 cloud-init 配置文件。 如果已將?cloud-init-jenkins.txt?文件保存在現有工作目錄的外部,請提供該文件的完整路徑。

Azure CLI復制 az vm create --resource-group myResourceGroupJenkins \ --name myVM \ --image UbuntuLTS \ --admin-username azureuser \ --generate-ssh-keys \ --custom-data cloud-init-jenkins.txt

創建并配置 VM 需要幾分鐘的時間。

若要允許 Web 流量抵達 VM,請使用?az vm open-port?為 Jenkins 流量打開端口?8080,并為用于運行示例應用的 Node.js 應用打開端口?1337:

Azure CLI復制 az vm open-port --resource-group myResourceGroupJenkins --name myVM --port 8080 --priority 1001 az vm open-port --resource-group myResourceGroupJenkins --name myVM --port 1337 --priority 1002

配置 Jenkins

若要訪問 Jenkins 實例,請獲取 VM 的公共 IP 地址:

Azure CLI復制 az vm show --resource-group myResourceGroupJenkins --name myVM -d --query [publicIps] --o tsv

出于安全考慮,需要輸入 VM 上某個文本文件中存儲的初始管理員密碼來啟動 Jenkins 安裝。 使用上一步驟中獲取的公共 IP 地址通過 SSH 連接到 VM:

bash復制 ssh azureuser@<publicIps>

查看并復制 Jenkins 安裝程序的?initialAdminPassword:

bash復制 sudo cat /var/lib/jenkins/secrets/initialAdminPassword

如果文件尚不可用,請再等待幾分鐘,以便 cloud-init 完成 Jenkins 和 Docker 安裝。

現在,請打開 Web 瀏覽器并轉到?http://<publicIps>:8080。 按如下所示完成初始 Jenkins 安裝:

  • 輸入在上一步驟從 VM 獲取的?initialAdminPassword。
  • 選擇“選擇要安裝的插件”
  • 在頂部文本框中搜索 GitHub,選擇“GitHub 插件”,然后選擇“安裝”
  • 若要創建 Jenkins 用戶帳戶,請根據需要填寫表單。 從安全角度講,應該創建這第一個 Jenkins 用戶,而不要繼續使用默認管理員帳戶。
  • 完成后,選擇“開始使用 Jenkins”

創建 GitHub Webhook

若要配置與 GitHub 的集成,請從 Azure 示例存儲庫中打開?Node.js Hello World 示例應用。 若要將存儲庫分叉到自己的 GitHub 帳戶,請選擇右上角的“分叉”按鈕。

在創建的分叉中創建 Webhook:

  • 選擇“設置”,然后在左側選擇“集成和服務”。
  • 選擇“添加服務”,并在篩選框中輸入 Jenkins。
  • 選擇“Jenkins (GitHub 插件)”
  • 對于“Jenkins 掛鉤 URL”,請輸入?http://<publicIps>:8080/github-webhook/。 請確保包含尾部的 /
  • 選擇“添加服務”

創建 Jenkins 作業

若要讓 Jenkins 對 GitHub 中的事件(例如提交代碼)做出響應,請創建 Jenkins 作業。

在 Jenkins 網站中的主頁上,選擇“創建新作業”:

  • 輸入?HelloWorld?作為作業名稱。 選擇“自由風格項目”,然后選擇“確定”。
  • 在“常規”部分下面,選擇“GitHub”項目并輸入分叉的存儲庫的 URL,例如?https://github.com/iainfoulds/nodejs-docs-hello-world
  • 在“源代碼管理”部分下面,選擇“Git”并輸入分叉的存儲庫?.git?的 URL,例如?https://github.com/iainfoulds/nodejs-docs-hello-world.git
  • 在“生成觸發器”部分下面,選擇“用于 GITscm 輪詢的 GitHub 掛鉤觸發器”。
  • 在“生成”部分下面,選擇“添加生成步驟”。 選擇“執行 shell”,然后在命令窗口中輸入?echo "Testing"。
  • 選擇作業窗口底部的“保存”。

測試 GitHub 集成

若要測試 GitHub 與 Jenkins 的集成,請提交分叉中的更改。

返回到 GitHub Web UI,選擇分叉的存儲庫,然后選擇“index.js”文件。 選擇鉛筆圖標編輯該文件,使第 6 行的內容如下:

NodeJS復制 response.end("Hello World!");

若要提交更改,請選擇底部的“提交更改”按鈕。

在 Jenkins 中,作業頁左下角的“生成歷史記錄”部分下面啟動了一個新的生成。 選擇生成號鏈接,并選擇左側的“控制臺輸出”。 從 GitHub 提取代碼以及生成操作將消息?Testing?輸出到控制臺時,可以查看 Jenkins 執行的步驟。 每次在 GitHub 中提交內容時,Webhook 將以此方式訪問 Jenkins 并觸發新的生成。

定義 Docker 生成映像

為了查看基于 GitHub 提交內容運行的 Node.js 應用,讓我們生成一個 Docker 映像用于運行該應用。 該映像是從定義如何配置運行應用的容器的 Dockerfile 生成的。

通過 SSH 連接到 VM 后,請切換到根據上一步驟創建的作業命名的 Jenkins 工作區目錄。 在本示例中,該目錄名為?HelloWorld。

bash復制 cd /var/lib/jenkins/workspace/HelloWorld

使用?sudo sensible-editor Dockerfile?在此工作區目錄中創建一個文件并粘貼以下內容。 請確保已正確復制整個 Dockerfile,尤其是第一行:

yaml復制 FROM node:alpineEXPOSE 1337WORKDIR /var/www COPY package.json /var/www/ RUN npm install COPY index.js /var/www/

此 Dockerfile 使用基本 Node.js 映像(該映像使用 Alpine Linux),公開運行 Hello World 應用的端口 1337,然后復制應用文件并初始化應用。

創建 Jenkins 生成規則

在上一步驟中,已創建一個可將消息輸出到控制臺的基本 Jenkins 生成規則。 讓我們創建生成步驟以使用 Dockerfile 并運行應用。

返回到 Jenkins 實例,選擇上一步驟創建的作業。 選擇左側的“配置”,并向下滾動到“生成”部分:

  • 刪除現有的?echo "Test"?生成步驟。 選擇現有生成步驟框右上角的紅叉。
  • 選擇“添加生成步驟”,然后選擇“執行 shell”
  • 在“命令”框中輸入以下 Docker 命令,然后選擇“保存”:

    bash復制 docker build --tag helloworld:$BUILD_NUMBER . docker stop helloworld && docker rm helloworld docker run --name helloworld -p 1337:1337 helloworld:$BUILD_NUMBER node /var/www/index.js &

Docker 生成步驟將創建一個映像,并使用 Jenkins 生成編號對其進行標記,以便可以維護映像的歷史記錄。 運行應用的任何現有容器將會停止,隨后被刪除。 然后,將使用該映像啟動新的容器,并基于 GitHub 中的最新提交內容運行 Node.js 應用。

測試管道

若要查看整個管道的工作狀況,請再次在分叉的 GitHub 存儲庫中編輯 index.js 文件,并選擇“提交更改”。 將會基于 GitHub 的 Webhook 在 Jenkins 中啟動新作業。 創建 Docker 映像并在新容器中啟動應用需要幾秒鐘時間。

如果需要,請再次獲取 VM 的公共 IP 地址:

Azure CLI復制 az vm show --resource-group myResourceGroupJenkins --name myVM -d --query [publicIps] --o tsv

打開 Web 瀏覽器并輸入?http://<publicIps>:1337。 將顯示你的 Node.js 應用,其中反映了 GitHub 分叉中的最新提交內容,如下所示:

現在,請再次在 GitHub 中編輯?index.js,然后提交更改。 等待幾秒鐘讓作業在 Jenkins 中完成,然后刷新 Web 瀏覽器查看新容器中運行的應用的更新版本,如下所示:

后續步驟

在本教程中,你已將 GitHub 配置為每次提交代碼后運行 Jenkins 生成作業,然后部署了一個 Docker 容器用于測試應用。 你已了解如何:

  • 創建 Jenkins VM
  • 安裝并配置 Jenkins
  • 創建 GitHub 與 Jenkins 之間的 Webhook 集成
  • 通過 GitHub 提交創建并觸發 Jenkins 生成作業
  • 創建應用的 Docker 映像
  • 驗證 GitHub 提交是否生成新的 Docker 映像并更新正在運行的應用

轉到下一教程,詳細了解如何將 Jenkins 與 Visual Studio Team Services 集成。

使用 Jenkin? ? ? ? ?

立即訪問http://market.azure.cn

轉載于:https://www.cnblogs.com/zangdalei/p/7845310.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的如何使用 Jenkins、GitHub 和 Docker 在 Azure 中的 Linux VM 上创建开发基础结构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。