jenkins自動部署及插件安裝及管理節點

準備的東西

ip.txt

192.168.1.10

192.168.1.10

192.168.1.10

auto_deploy_war.sh

#!/bin/bash

#Auto deploy Tomcat

#by yinxingyouyou `date +%F`

TOMCAT_DIR="/usr/local/tomcat/"

WAR="jfedu.war"

DES_DIR="/usr/local/tomcat/webapps/ROOT"

DES_URL="http://192.168.1.107:7001/"

BAK_DIR="/export/backup/`date +%Y%m%d-%H%M`"

cd $DES_DIR

rm -rf $DES_DIR/*

wget $DES_URL/$WAR

jar  -xvf  $FILES

####################

cd $TOMCAT_DIR;rm -rf work

/bin/sh $TOMCAT_DIR/bin/start.sh

ssh+for循環

#!/bin/bash

for ip in hosts;do

ssh root@$ip 'bash -x -s'</data/sh/auto_deploy_100_war.sh;

done

#直接寫到Jenkins構建計劃裏

ansible

touch etc/ansible/screen.yaml

cat >etc/ansible/screen.yaml<EOF

- hosts: all

  remote_user: root

  tasks:

  - name: auto deploy 100 war

    shell: 

rm -rf /usr/local/tomcat/webapps/ROOT/*;cd /usr/local/tomcat/webapps/ROOT/; wget 192.168.1.107:7001/jfedu.war;jar -xf /usr/local/tomcat/webapps/ROO

T/jfedu.war;rm -rf /usr/local/tomcat/work;/bin/bash /usr/local/tomcat/bin/shundown.sh;/bin/bash /usr/local/tomcat/bin/sta

rt.sh

然後在hosts里加IP,執行ansible-playbook scree.yaml


或者用ansible批量遠程執行腳本

#!/bin/bash

source /etc/profile

在項目裏執行腳本里寫ansible all -m shell -a "'bash -x -s'</data/sh/deploy_lunch_war.sh;"

或者寫先拷貝過去再執行

ansible all -m copy -a "src=/data/sh/deploy_lunch_war.sh dest=/tmp/"

ansible all -m shell -a "sh /tmp/deploy_lunch_war.sh"

然後在控制機創建腳本

#!/bin/bash

#2017年5月24日20:21:09

#auto deploy tomcat for jenkins war.

###############

TOMCAT_DIR="/usr/local/tomcat/"

APP_WAR="edu.war"

BACK_DIR="/data/backup/`date +%Y%m%d`"

#TOMCAT_PID=`ps -ef |grep java|grep -v grep |grep -v auto|awk '{print $2}'`

TOMCAT_PID=`lsof -i :7002|awk '{print $2}'|grep -v PID`

source /etc/profile

###############

if [ ! -d $BACK_DIR ];then

mkdir -p $BACK_DIR

fi

cd $TOMCAT_DIR/webapps/ROOT/

\cp *  $BACK_DIR -a

##############

kill -9 $TOMCAT_PID

rm   -rf  $APP_WAR  $TOMCAT_DIR/work/*

wget -c   http://192.168.1.107/$APP_WAR

touch $APP_WAR

#jar  -xvf $APP_WAR

echo "/bin/sh $TOMCAT_DIR/bin/startup.sh---------------------------"

set -m;/bin/sh $TOMCAT_DIR/bin/startup.sh

#nohup /bin/sh $TOMCAT_DIR/bin/startup.sh &&

echo "--------------------------------done"

tail -n 30 $TOMCAT_DIR/logs/catalina.out 


這裏面的tomcat重啓時要在前面加上set -m,在start.sh前面加上source /etc/profile


·Aborting, target uses selinux but pythonbindings (libselinux-python) aren't installed!

解決:# yum install libselinux-python -y

注意這個是在 host機器上安裝,不是在ansible控制機器上。



插件安裝

系統管理>管理插件,去官網https://wiki.jenkins-ci.org/display/JENKINS/Plugins

右上角搜git,下載下來,下面提示的denpendencies也要安裝從jenkins上傳.hpi文件

也可以下到~./jenkins/plugins/然後重啓jenkins就可以了

重啓:在/後面加exit,再加restart

郵件服務器:

下載email-ext和token-macro、emailext-template,重啓

系統設置,Extended E-mail Notification


SMTP server:設置郵件提供商的SMTP地址,mail.jfedu.net

Default user E-mail suffix 寫@jfedu.net後綴

Default Content Type:內容展現的格式,一般選擇HTML
Default Recipients:默認收件人,逗號隔開

Default Subject    默認郵件標題


Default Content內容如下:

<hr/>

<h3>(本郵件是程序自動下發的,請勿回覆!)</h3><hr/>

 

項目名稱:$PROJECT_NAME<br/><hr/>

 

構建編號:$BUILD_NUMBER<br/><hr/>

 

構建狀態:$BUILD_STATUS<br/><hr/>

 

觸發原因:${CAUSE}<br/><hr/>

 

構建日誌地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/><hr/>

 

構建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>

 

變更集:${JELLY_SCRIPT,template="html"}<br/>

<hr/>

Use SMTP Authentication:使用SMTP身份驗證,點開Default user E-mail suffix下面的高級按鈕才能看到,選中。
User Name:郵件發送賬戶的用戶名。
Password:郵件發送賬戶的密碼。
SMTP port:SMTP端口。


maven下面有個jenkins Location 把管理員郵箱地址改了,有些後綴的郵箱不能接收


填完郵箱設置,項目裏設置增加構建後的操作步驟,其他都默認,要配trigger


管理節點

系統配置,管理節點,子節點也是一臺服務器,遠程目錄/home/kenkins,啓動方法via ssh,遠程創建一個jenkins用戶,高級裏配端口號,java路徑配置到/usr/java/bin/java

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