天天看點

阿裡雲Centos7.6上利用docker搭建Jenkins來自動化部署Django項目

作者:劉悅技術分享

一般情況下,将一個項目部署到生産環境的流程如下:

需求分析—原型設計—開發代碼—内網部署-送出測試—确認上線—備份資料—外網更新-最終測試,如果發現外網部署的代碼有異常,需要及時復原。

整個過程相當複雜而漫長,其中還需要輸入不少的指令,比如上傳代碼,git的拉取或者合并分支等等。

Jenkins是目前非常流行的一款持續內建工具,可以幫助大家把更新後的代碼自動部署到伺服器上運作,整個流程非常自動化,你可以了解為部署指令操作的可視化界面。

Jenkins主要有三種安裝方式

下載下傳官方war包,放到tomcat中直接運作。

yum安裝。

使用官方docker鏡像。

毫無疑問,既然有docker這麼簡單友善的工具,就沒必要選擇前兩種複雜的安裝方式了。

首先安裝docker

centos 安裝docker
1 docker 要求 CentOS 系統的核心版本高于 3.10 ,檢視本頁面的前提條件來驗證你的CentOS 版本是否支援 Docker 
2、使用 root 權限登入 Centos。確定 yum 包更新到最新。
sudo yum update
3、解除安裝舊版本(如果安裝過舊版本的話)
sudo yum remove docker  docker-common docker-selinux docker-engine
4、安裝需要的軟體包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、設定yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6、可以檢視所有倉庫中所有docker版本,并選擇特定版本安裝
 yum list docker-ce --showduplicates | sort -r
7、安裝docker
sudo yum install docker-ce 
8、啟動并加入開機啟動
sudo systemctl start docker
sudo systemctl enable docker
9、驗證安裝是否成功(有client和service兩部分表示docker安裝啟動都成功了)
docker version           

然後下載下傳jenkins官方docker鏡像

docker pull jenkins/jenkins           

檢視鏡像 docker images

阿裡雲Centos7.6上利用docker搭建Jenkins來自動化部署Django項目

在主機上建立目錄,并添加讀寫權限以便jenkins應用運作時讀寫檔案

mkdir /root/j_node
chmod 777 /root/j_node           

背景将鏡像以容器的形式起服務,對端口映射,同時把剛剛建立的目錄挂載到容器中

docker run -d --name jenkins -p 8081:8080 -p 50000:50000 -v /root/j_node:/var/jenkins_home jenkins/jenkins           

這裡注意,如果是阿裡雲的話,安全政策需要暴露8081端口

通過網址通路 http://你的ip:8081

然後通過指令擷取安裝秘鑰

docker logs jenkins           

有了密碼,輸入後安裝建議的插件,推薦的插件裡就包含版本控制軟體git。

阿裡雲Centos7.6上利用docker搭建Jenkins來自動化部署Django項目

完畢後,根據提示設定登陸賬戶

然後建立一個項目,在源代碼控制那一欄,輸入你的項目的線上git倉庫位址,注意預設應該是master分支,因為生産環境部署的代碼必須是主分支

阿裡雲Centos7.6上利用docker搭建Jenkins來自動化部署Django項目

儲存後,點選Build Now進行部署,jenkins會自動去git版本庫中抽取最新的master分支進行部署,同時每部署一次的曆史記錄都會被儲存下來

阿裡雲Centos7.6上利用docker搭建Jenkins來自動化部署Django項目

此時,進入/root/j_node 目錄下 發現項目已經部署在了workspace目錄下

阿裡雲Centos7.6上利用docker搭建Jenkins來自動化部署Django項目

整個過程非常簡單,每次上線之前,項目經理隻需要檢查各個組員的代碼,然後統一合并到主分支master,最後進入jenkins點選部署按鈕即可,節約了不少時間。

繼續閱讀