🧑💻 寫在開頭
點贊 + 收藏 === 學會🤣🤣🤣
一、安裝jenkins
1. 拉取jenkins映象
docker pull jenkins/jenkins:lts
2. 建立在宿主機建立jenkins目錄
mkdir -p ~/jenkins_home sudo chown 1000:1000 ~/jenkins_home
3. 建立docker-compose.yaml
# 自定義網路模式 可以沒有值 networks: jenkins: jenkins: # 指定服務使用的映象 image: jenkins/jenkins:lts # 設定容器重啟策略為始終重啟 restart: always # 給予容器特權許可權,允許進行Docker-in-Docker操作 privileged: true networks: - jenkins # 設定容器環境變數 environment: DOCKER_TLS_CERTDIR: /certs/client # 定義資料卷對映 volumes: - /usr/local/jenkins/jenkins-data/certs:/certs/client:ro # jenkins 資料目錄 - ~/jenkins_home:/var/jenkins_home # 私鑰目錄 - /root/jenkins/.ssh:/root/.ssh # 對映一個目錄到宿主機指定目錄,留作備份使用 - /usr/local/jenkinsBackup:/var/jenkinsBackup # 定義埠對映 ports: - "8080:8080" - "50000:50000" # 設定容器執行使用者為root,以便有足夠許可權操作Docker user: root
4. 啟動jenkins服務
docker-compose -p jenkins -f docker-compose.yaml up -d
這時候我們可以jenkins前端頁面,透過瀏覽器訪問地址http://主機IP:8080/ 我們可以看到這樣一個介面
可以透過以下命令獲取到金鑰
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
填入介面之後,會進入下面這樣的頁面,安裝外掛,建立管理員賬號,後面跟著介面操作就行了
二、環境配置
java sdk安裝及配置
現在jenkins 依賴的java最低版本是java 17,安卓步驟如下
docker exec -u root -it you-jenkins-names bash # 要改成對應jenkins 容器名稱 apt update apt install -y openjdk-17-jdk java -version
配置時,進入jenkins 全域性工具管理介面,找到JDK部分,新增如下內容
publish over SSH 金鑰配置
跨伺服器部署時,需要配置SSH金鑰
- 進入容器
# 進入jenkins容器內部,注意改成您的容器名稱 docker exec -u root -it jenkins bash
- 生成金鑰
ssh-keygen -m PEM -t rsa -b 2048
這時候需要輸入生成檔案路徑,預設即可,同時要輸入密碼,你個人輸入的金鑰要記住,後面配置要用。接下來就獲取響應的金鑰
//列印私鑰 cat /root/.ssh/id_rsa //列印公鑰 cat /root/.ssh/id_rsa.pub
- 把私鑰配置到jenkins上面 在jenkins的# Configure System配置中配置如下
4. 配置目標伺服器的authorized_keys Jenkins伺服器複製id_rsa.pub檔案的內容放到目標伺服器vim /root/.ssh/authorized_keys檔案中
金鑰所有內容即配置好了
三、使用資料備份和遷移
- 資料備份 jenkins我們可以使用ThinBackup外掛備份資料,安裝好後配置如下。特別注意,Backup directory 備份路徑要跟我們上面的yaml檔案對映的檔案路徑對應。後續資料遷移和恢復用得上
- 資料遷移
我們從其他jenkins系統透過ThinBackup備份資料後,把資料複製到當前伺服器jenkins的備份路徑對應的宿主機路徑資料夾中,透過本文上面的yaml檔案可以看出,
務器jenkins系統介面中,進入ThinBackup 管理頁面
入restore,選擇我們遷移過來的對應備份,點選restore即可完成老系統所有資料的遷移。恢復備份過程中,系統會重啟
到這裡,整個jenkins系統就部署並遷移好了
本文轉載於:https://juejin.cn/post/7446250001381244965
如果對您有所幫助,歡迎您點個關注,我會定時更新技術文件,大家一起討論學習,一起進步。