參數(shù)化構(gòu)建代碼發(fā)布、pipeline流水線代碼發(fā)布

jenkins? 1.配置Java環(huán)境????2. /usr/local/tomcat/webapps目錄下刪除原有內(nèi)容,放jenkins.war包 ?? 啟動訪問ip:8080/jenkins

安裝基礎(chǔ)環(huán)境

git

gitlab 192.168.222.123

jenkins? 192.168.222.130

nginx ? 192.168.222.121

shell


jenkins主機(jī)寫入腳本,并給予權(quán)限?chmod a+x /cron/control.sh

jenkins頁面配置

gitlab主機(jī)寫入腳本,并給予權(quán)限? chmod a+x /cron/update.sh

gitlab,nginx主機(jī)拉取代碼庫,創(chuàng)建文件index.html(代碼存放)并提交

密碼認(rèn)證:1.gitlab和nginx的公鑰上傳到gitlab網(wǎng)頁中

2.jenkins 主機(jī)執(zhí)行? ssh-keygen
????????????????????????????????ssh-copy-id -i 192.168.222.121 ? 可以自動化免密執(zhí)行腳本
3.gitlab 主機(jī)執(zhí)行?scp ~/.ssh/id_rsa.pub 192.168.222.121:/root/.ssh/

或jenkins主機(jī)執(zhí)行 scp ~/.ssh/id_rsa 192.168.222.121:/root/.ssh 私鑰拷貝到nginx主機(jī)


pipeline流水線代碼發(fā)布

1.通過ansible 進(jìn)行管理及相關(guān)備份 優(yōu)點: 編輯簡單、方便更改等等 比較難做到很好版本管理

2.通過jenkins pipeline + gitlab 方式進(jìn)行 配置文件治理。? ? 版本管理方便、回退方便、完全可以自動化發(fā)布? ? 需要 知曉整個構(gòu)建原理、以及根據(jù)實際業(yè)務(wù)需要編寫 相關(guān)腳本、需要知識相對負(fù)載。

架構(gòu)思路

git push 到gitlab >> 觸發(fā)jenkins webhooks API >> 執(zhí)行ansible

jenkins所需插件:在插件里面搜索pipeline ,凡是有pipeline的都安裝,完成后,重啟jenkins

pipeline {

? ? agent any

? ? environment {

? ? ? ? def GIT_NAME = "my-test1"

? ? ? ? def CODE_DIR = "/cron"

? ? ? ? def GIT_ADDR = "git@10.3.138.30:root/my-test1.git"

? ? ? ? def ANSIBLE_HOST_DIR = "/cron/ansible/hosts-nginx"

? ? ? ? def ANSIBLE_HOST_NAME = "nginx1"

? ? }

? ? stages {

? ? ? ? stage('Git') {

? ? ? ? ? ? steps {

? ? ? ? ? ? ? ? sh '/root/scripts/jenkins_pip_git_pull.sh $CODE_DIR $GIT_NAME $GIT_ADDR'

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? stage('Ansible Git pull') {

? ? ? ? ? ? steps {

? ? ? ? ? ? ? ? sh 'ansible -i $ANSIBLE_HOST_DIR $ANSIBLE_HOST_NAME? -m shell -a "cd $CODE_DIR/$GIT_NAME;git pull"'

? ? ? ? ? ? }

? ? ? ? }

? ? }

}
在你的ansible機(jī)器上創(chuàng)建 jenkins_pip_git_pull.sh

?

#!/bin/bash

## Version:1.0?

GIT_DIR=$1

GIT_NAME=$2

GIT_ADDR=$3

#echo $GIT_DIR $GIT_NAME $GIT_ADDR

if [ -d ${GIT_DIR}/${GIT_NAME} ];then

? ? ?? cd ${GIT_DIR}/${GIT_NAME}

? ? ?? git pull

else

? ? ?? cd ${GIT_DIR}

# ? ? ? git clone ${GIT_ADDR}/${GIT_NAME}.git

? ? ?? git clone ${GIT_ADDR}

fi

創(chuàng)建文件,腳本給權(quán)限,機(jī)器給公鑰

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容