一:持續(xù)集成的概念:
1.1:總體的概括
持續(xù)集成Continuous Integration 持續(xù)交付Continuous Delivery 持續(xù)部署Continuous Deployment
1.2:什么是持續(xù)集成:
持續(xù)集成是指開發(fā)者在代碼的開發(fā)過程中,可以頻繁的將代碼部署集成到主干,并進程自動化測試
1.3:什么是持續(xù)交付:
持續(xù)交付指的是在持續(xù)集成的環(huán)境基礎(chǔ)之上,將代碼部署到預(yù)生產(chǎn)環(huán)境
1.4:持續(xù)部署:
在持續(xù)交付的基礎(chǔ)上,把部署到生產(chǎn)環(huán)境的過程自動化,持續(xù)部署和持續(xù)交付的區(qū)別就是最終部署到生產(chǎn)環(huán)境是自動化的。
1.5:關(guān)于安全:OWASP:每年發(fā)布top 10web漏洞:
top1:注入攻擊漏洞,例如SQL,OS 以及 LDAP注入。這些攻擊發(fā)生在當不可信的數(shù)據(jù)作為命令或者查詢語句的一部分,被發(fā)送給解釋器的時候。攻擊者發(fā)送的惡意數(shù)據(jù)可以欺騙解釋器,以執(zhí)行計劃外的命令或者在未被恰當授權(quán)時訪問數(shù)據(jù)。
top2:失效的身份認證和會話管理:與身份認證和會話管理相關(guān)的應(yīng)用程序功能往往得不到正確的實現(xiàn),這就導(dǎo)致了攻擊者破壞密碼、密匙、會話令牌或攻擊其他的漏洞去冒充其他用戶的身份。
top3:跨站腳本(XSS):當應(yīng)用程序收到含有不可信的數(shù)據(jù),在沒有進行適當?shù)尿炞C和轉(zhuǎn)義的情況下,就將它發(fā)送給一個網(wǎng)頁瀏覽器,這就會產(chǎn)生跨站腳本攻擊(簡稱XSS)。XSS允許攻擊者在受害者的瀏覽器上執(zhí)行腳本,從而劫持用戶會話、危害網(wǎng)站、或者將用戶轉(zhuǎn)向至惡意網(wǎng)站。
相關(guān)資料:http://www.owasp.org.cn/owasp-project/download/mobile-top-10-2013-2
二:部署持續(xù)集成工具jenkins:
安裝方法
下載jdk:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下載tomcat:https://tomcat.apache.org/
下載jenkins.war包:http://updates.jenkins-ci.org/download/war/
安裝Jdk和tomcat
tar zxf jdk-8u181-linux-x64.tar.gz
mv jdk1.8.0_131/ /usr/local/
ln -s /usr/local/jdk1.8.0_181/ /usr/local/jdk
tar zxf apache-tomcat-8.5.32.tar.gz
mv apache-tomcat-8.5.32 /usr/local/
ln -s /usr/local/apache-tomcat-8.5.32/ /usr/local/tomcat
設(shè)置環(huán)境變量
[root@localhost local]# echo "export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/usr/local/tomcat" >> /etc/profile
[root@localhost local]# source /etc/profile
查看java環(huán)境是否生效
[root@localhost local]# java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
[root@localhost local]# useradd tomcat
[root@localhost local]# chown -R tomcat.tomcat /usr/local/tomcat/
[root@localhost local]# cd /usr/local/tomcat/bin/
[root@localhost local]# ./startup.sh
查看8080端口
[root@localhost bin]# netstat -tunlp |grep 8080
tcp6 0 0 :::8080 :::* LISTEN 6445/java
根據(jù)啟動腳本編寫重啟腳本如下
# vim tomcat.sh
#!/bin/bash usage() { echo "Usage: $0 [start|stop|restart|status]" } start_tomcat(){ /usr/local/tomcat/bin/startup.sh } status_tomcat(){ ps -ef|grep java|grep tomcat|grep -v grep } stop_tomcat(){ TPID=$(ps -ef|grep java|grep tomcat|grep -v grep|awk '{print $2}') kill -9 $TPID sleep 3 STAT=$(ps -ef|grep java|grep tomcat|grep -v grep|awk '{print $2}') if [ -z $STAT ];then echo 'tomcat stoped...' else kill -9 $STAT fi } restart_tomcat(){ stop_tomcat start_tomcat } main(){ case $1 in start) start_tomcat;; stop) stop_tomcat;; restart) restart_tomcat;; status) status_tomcat;; *) usage; esac } main $1
# 將jenkins.war放到/usr/local/tomcat/webapps目錄下
cp jenkins.war /usr/local/tomcat/webapps/
useradd jenkins
chown -R jenkins.jenkins /usr/local/tomcat
打開web界面:第一次打開要輸入隨機生成的密碼:
http://192.168.74.11:8080/jenkins
[root@localhost ~]# cat /root/.jenkins/secrets/initialAdminPassword
651632cacfae427084ad4b310ea02b2f
輸入密碼點下確認之后選擇插件,選擇默認安裝插件即可,此過程需要一段時間,而且根據(jù)網(wǎng)絡(luò)不同有些插件安裝不成功,但是之后可以添加需要的插件。
創(chuàng)建用戶名密碼
配置郵件通知,系統(tǒng)管理–系統(tǒng)設(shè)置-添加管理員郵箱,添加郵件
點擊保存或測試郵件,系統(tǒng)會給目標郵箱發(fā)送一封測試郵件:
安裝gitlab插件,系統(tǒng)管理–管理插件–可選插件