Jenkins自動集成之路-搭建部署編

目標

搭建部署起Jeckins,讓團隊提交代碼後能自動構建,併發布到研發到集成環境

環境背景

阿里雲GFS-2服務器(CentOS 7.6 64位),gitlab,docker,Java11,SpringBoot,微服務架構,私服

Jenkins到簡介

Jenkins是開源CI&CD軟件領導者, 提供超過1000個插件來支持構建、部署、自動化, 滿足任何項目的需要。

官網:https://jenkins.io/zh/

文檔:https://jenkins.io/zh/doc/

下載:https://jenkins.io/zh/download/

部署jenkins By docker

下載好鏡像後,我上傳到私服倉庫裏

由於在阿里雲GFS-2服務器已經安裝docker(可以參考Docker容器歷練之路-搭建部署編),

我們直接拉取鏡像進行安裝(我這從私服拉到,大夥可以到官網下載)

docker pull 172.xx.209.xx:8082/jenkins/jenkins:20200202

拉取完成後執行下面運行命令

docker run \
    -u root \
    -d \
    -p 18080:8080 \
    -p 50000:50000 \
    -v /data/jenkins_home:/var/jenkins_home \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /usr/bin/docker:/usr/bin/docker \
    -v /home/jenkins_root:/home \
    -v /etc/localtime:/etc/localtime
    -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai
    --name jenkins145 \
    172.xx.209.xx:8082/jenkins/jenkins:20200202
參數 說明
-p 映射(例如“發佈”)jenkinsci/blueocean 容器的端口8080到主機上的端口8080。 第一個數字代表主機上的端口,而最後一個代表容器的端口。因此,如果您爲此選項指定 -p 49000:8080 ,您將通過端口49000訪問主機上的Jenkins。
-p (可選)將 jenkinsci/blueocean 容器的端口50000 映射到主機上的端口50000。 如果您在其他機器上設置了一個或多個基於JNLP的Jenkins代理程序,而這些代理程序又與 jenkinsci/blueocean 容器交互(充當“主”Jenkins服務器,或者簡稱爲“Jenkins主”), 則這是必需的。默認情況下,基於JNLP的Jenkins代理通過TCP端口50000與Jenkins主站進行通信。 您可以通過“ 配置全局安全性” 頁面更改Jenkins主服務器上的端口號。如果您要將您的Jenkins主機的JNLP代理端口的TCP端口 值更改爲51000(例如),那麼您需要重新運行Jenkins(通過此 docker run …​命令)並指定此“發佈”選項 -p 52000:51000,其中最後一個值與Jenkins master上的這個更改值相匹配,第一個值是Jenkins主機的主機上的端口號, 通過它,基於JNLP的Jenkins代理與Jenkins主機進行通信 - 例如52000。
-v (可選,但強烈建議)映射在容器中的/var/jenkins_home 目錄到宿主的/data/jenkins_home。 如果這個卷不存在,那麼這個 docker run 命令會自動爲你創建卷。 如果您希望每次重新啓動Jenkins(通過此 docker run … 命令)時保持Jenkins狀態,則此選項是必需的 。 如果你沒有指定這個選項,那麼在每次重新啓動後,Jenkins將有效地重置爲新的實例。注意: 所述的 jenkins-data 卷也可以 docker volume create命令創建: docker volume create jenkins-data 代替映射 /var/jenkins_home 目錄轉換爲Docker卷,還 可以將此目錄映射到計算機本地文件系統上的目錄。 例如,指定該選項 -v HOME/jenkins:/var/jenkinshome/var/jenkinshomejenkinsHOME/jenkins:/var/jenkins_home 會將容器的 /var/jenkins_home 目錄映射 到 本地計算機上目錄中的 jenkins 子目錄, 該HOME目錄通常是 /Users//jenkins 或/home/<your-username>/jenkins
-v (可選 )/var/run/docker.sock 表示Docker守護程序通過其監聽的基於Unix的套接字。 該映射允許 jenkinsci/blueocean 容器與Docker守護進程通信, 如果 jenkinsci/blueocean 容器需要實例化其他Docker容器,則該守護進程是必需的。 如果運行聲明式管道,其語法包含agent部分用 docker。例如, agent { docker { … } } 此選項是必需的。 在Pipeline Syntax 頁面上閱讀更多關於這個的信息 。
-v /usr/bin/docker,將宿主的docker綁定到容器,讓容器可以操作宿主的docker
-v /home/root:/home,將宿主的/home/root目錄綁定到容器到目錄/home
–name 如果希望或需要 jenkinsci/blueocean 通過 命令提示符通過終端/命令提示符訪問docker exec ,則可以添加一個選項 --name jenkins-blueocean(如 docker run 所述),這會爲容器命名爲 “jenkins-blueocean” 。這意味着你可以使用如下命令訪問容器(通過單獨的終端/命令提示符窗口) :docker exec -it jenkins-blueocean bash
最後一行 jenkinsci/blueocean Docker鏡像本身。如果此鏡像尚未下載,則此 docker run 命令 將自動爲您下載鏡像。此外,如果自上次運行此命令後發佈了此鏡像的任何更新, 則再次運行此命令將自動爲您下載這些已發佈的鏡像更新。 注意:這個Docker鏡像也可以使用以下 docker pull命令獨立下載(或更新) : docker pull jenkinsci/blueocean 。

配置Jenkins

1,獲取初始化密碼,登陸

#進入Jenkins的docker容器
docker exec -it jenkins183 bash
#進入到初始化密碼目錄
cd /var/jenkins_home/secrets/
#查看
cat initialAdminPassword

2,設置插件資源庫地址

需要進入jenkins的工作目錄,打開hudson.model.UpdateCenter.xml
把http://updates.jenkins-ci.org/update-center.json改成

http://mirror.xmission.com/jenkins/updates/update-center.json

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

3,輸入密碼登陸,安裝所有推薦到插件

如果上通過頁面取修改的插件資源庫地址的,一定要記得提交後要點擊更新,如下圖步驟:
把界面拉到地步,點擊中文社區(要安裝中文插件先)
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章