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)思路

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ī)器給公鑰