萊蕪做網(wǎng)站建設(shè)的公司自己如何優(yōu)化網(wǎng)站排名
jenkins
Jenkins是一個開源的、提供友好操作界面的持續(xù)集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持續(xù)、自動的構(gòu)建/測試軟件項目、監(jiān)控外部任務(wù)的運行(這個比較抽象,暫且寫上,不做解釋)。Jenkins用Java語言編寫,可在Tomcat等流行的servlet容器中運行,也可獨立運行。通常與版本管理工具(SCM)、構(gòu)建工具結(jié)合使用。常用的版本控制工具有SVN、GIT,構(gòu)建工具有Maven、Ant、Gradle。
CI/CD
CI
CI(Continuous Integration,中文意思是持續(xù)集成)是一種軟件開發(fā)時間。持續(xù)集成強調(diào)開發(fā)人員提交了新代碼之后,立刻進行構(gòu)建、(單元)測試。根據(jù)測試結(jié)果,我們可以確定新代碼和原有代碼能否正確地集成在一起。。

CD
CD(Continuous Delivery, 中文意思持續(xù)交付)是在持續(xù)集成的基礎(chǔ)上,將集成后的代碼部署到更貼近真實運行環(huán)境(類生產(chǎn)環(huán)境)中。比如,我們完成單元測試后,可以把代碼部署到連接數(shù)據(jù)庫的Staging環(huán)境中更多的測試。如果代碼沒有問題,可以繼續(xù)手動部署到生產(chǎn)環(huán)境。

配置maven(linux)
創(chuàng)建maven文件
在/usr/local/software/下創(chuàng)建maven文件夾
mkdir maven
上傳maven解壓后的程序
我使用maven3.6.3版本,并創(chuàng)建子文件夾maven-repository存儲依賴
[root@localhost apache-maven-3.6.3]# ll
總用量 36
drwxr-xr-x. 2 root root 97 11月 9 10:08 bin
drwxr-xr-x. 2 root root 76 11月 9 10:08 boot
drwxr-xr-x. 3 root root 92 11月 9 10:10 conf
drwxr-xr-x. 4 root root 4096 11月 9 10:08 lib
-rw-r--r--. 1 root root 17504 11月 9 10:08 LICENSE
drwxr-xr-x. 2 root root 6 11月 9 15:41 maven-repository
-rw-r--r--. 1 root root 5141 11月 9 10:08 NOTICE
-rw-r--r--. 1 root root 2612 11月 9 10:08 README.txt
配置settings.xml
進入/usr/local/software/maven/apache-maven-3.6.3/conf 修改settings.xml。 修改存儲依賴的位置。
<localRepository>../maven-repository</localRepository>
配置maven環(huán)境
編輯/etc/profile文件
M2_HOME=/usr/local/software/maven/apache-maven-3.6.3
export PATH=$PATH:${M2_HOME}/bin
讓編輯生效
source /etc/profile
測試配置是否生效
mvn -version
[root@localhost conf]# mvn -version
-bash: /usr/local/software/apache-maven-3.6.3/bin/mvn: 權(quán)限不夠
解決方案: chmod a+x /usr/local/software/apache-maven-3.6.3/bin/mvn
[root@localhost conf]# chmod a+x /usr/local/software/apache-maven-3.6.3/bin/mvn
[root@localhost apache-maven-3.6.3]# mvn -versionApache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/software/maven/apache-maven-3.6.3
Java version: 1.8.0_341, vendor: Oracle Corporation, runtime: /usr/local/software/jdk/jdk1.8.0_341/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.99.1.el7.x86_64", arch: "amd64", family: "unix"
jenkins安裝(docker)配置
安裝jenkins
查詢jenkins
查詢jenkins
docker search jenkinsci/blueocean
下載 jenkins鏡像
docker pull jenkinsci/blueocean
創(chuàng)建掛載文件jenkins
在jenkins文件夾中創(chuàng)建 data和jenkins_home
在jekins_home下創(chuàng)建docker.sock文件,并授權(quán)777
[root@localhost software]# mkdir jenkins
[root@localhost jenkins]# mkdir data jenkins_home
[root@localhost jenkins]# ls
data jenkins_home
[root@localhost jenkins]# cd jenkins_home/
[root@localhost jenkins_home]# touch docker.sock
[root@localhost jenkins_home]# chmod 777 docker.sock
[root@localhost jenkins_home]# tree
.
└── docker.sock
創(chuàng)建運行運行容器
docker run -it \
-u root \
--name jenkins \
--privileged \
-p 9055:8080 \
-p 50000:50000 \
--network wn_docker_net \
--ip 172.18.12.60 \
-v /etc/localtime:/etc/localtime \
-v /usr/local/software/jenkins/data:/var/jenkins_home \
-v /usr/local/software/jenkins/jenkins_home/docker.sock:/var/run/docker.sock \
-v /usr/local/software/apache-maven-3.6.3:/usr/local/maven \
-d jenkinsci/blueocean
開放8087,50000端口
[root@localhost jenkins]# firewall-cmd --zone=public --add-port=8087/tcp --permanent
success
[root@localhost jenkins]# firewall-cmd --zone=public --add-port=50000/tcp --permanent
success
[root@localhost jenkins]# firewall-cmd --reload
success
初次訪問
訪問管理頁面
輸入請求地址:http://192.168.201.75:8087
查詢jenkins的初始密碼
data文件夾映射容器的 /home/jenkins_home
進入secrets文件夾,顯示initialAdminPassword。
輸入密碼
安裝插件
點擊繼續(xù)
創(chuàng)建第一個管理員用戶
配置實例
重啟應(yīng)用
后臺手動重啟
[root@localhost jenkins]# docker restart jenkins
登錄系統(tǒng)
配置系統(tǒng)
升級最新版本
重啟jenkins
安裝jenkins插件
設(shè)置鏡像源
設(shè)置清華的鏡像源: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
安裝Git插件
重啟jenkins容器
docker restart jenkins
安裝gitlab插件
系統(tǒng)配置
全局工具配置
配置maven
配置用戶憑證
配置用戶憑證是為了將來gitlab訪問jenkins。

選擇stores from parent
jenkins使用
創(chuàng)建一個springboot項目,使用jenkins+gitlab。
gitlab創(chuàng)建maven項目
idea 導(dǎo)入gitlab項目
idea中隱藏不必要的文件/夾(可選)


修改項目名稱
在pom.xml中修改
<groupId>com.wnhz.bms</groupId>
<artifactId>wnhz-bms</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging><name>wnhz-bms</name>
<description>使用jenkins構(gòu)建項目</description>
創(chuàng)建項目提交到gitlab
gitlab提交報錯
error: unable to read askpass response from ‘C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2021.3\tmp\intellij-git-askpass-local.sh’
bash: line 1: /dev/tty: No such device or address
解決方案:需要修改git的remote用戶名密碼

再次提交
gitlab
jenkins構(gòu)建
創(chuàng)建新項目(maven)
配置(Configure)
總覽如下圖:
保存
立即構(gòu)建
點擊#1進入構(gòu)建詳情
jenkins的自動構(gòu)建
使用gitlab hook插件完成gitlab上有提交jenkins的自動構(gòu)建過程。
在項目配置中配置構(gòu)建觸發(fā)器
取消認證
登錄gitlab
管理員登錄 gitlaba
點擊Admin,設(shè)置Network 的Outbound requests設(shè)置的選中。
退出管理員

當(dāng)前用登錄
普通用戶登錄(我的是test),點擊項目->settings->Webhooks

測試自動構(gòu)建
push項目到gitlab
查看jenkins是否自動構(gòu)建
jenkins發(fā)布
安裝publisher ssh over插件
配置ssh

修改springboot項目的輸出路徑
由于項目采用多級目錄,我們將打包后的結(jié)果統(tǒng)一輸出到某個目錄,暫時定為out。在項目打包插件中添加打包位置。
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><outputDirectory>../../out</outputDirectory></configuration></plugin></plugins>
</build>
發(fā)布項目配置
點擊項目設(shè)置post steps
測試發(fā)布
linux服務(wù)器
[root@localhost projects]# nohup java -jar wnhz-bms-0.0.1-SNAPSHOT.jar &
[1] 67855
[root@localhost projects]# nohup: 忽略輸入并把輸出追加到"nohup.out"[root@localhost projects]# ls
nohup.out wnhz-bms-0.0.1-SNAPSHOT.jar[root@localhost projects]cat nohup.out/^\ /^\{ O} { O}\ / \ /// // _------_// // ./~ ~-_/ ~----~/ / \/ : ./ _---_ ~-
| \________) : /~ ~\ |
| / | | :~~\ | |
| | | | \___-~ |
| \ __/`^\______\. ./\ ~-______-~\..| ~-_
/_________蝸牛杭州Jenkins測試__________~~
2023-11-10 17:15:43.926 INFO 28907 --- [ main] com.wnhz.bms.BmsApp : Starting BmsApp v0.0.1-SNAPSHOT using Java 1.8.0_341 on localhost.localdomain with PID 28907 (/usr/local/projects/wnhz-bms-0.0.1-SNAPSHOT.jar started by root in /usr/local/projects)
2023-11-10 17:15:44.062 INFO 28907 --- [ main] com.wnhz.bms.BmsApp : The following 1 profile is active: "dev"
2023-11-10 17:15:47.587 INFO 28907 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 9090 (http)
2023-11-10 17:15:47.610 INFO 28907 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2023-11-10 17:15:47.611 INFO 28907 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.68]
2023-11-10 17:15:47.860 INFO 28907 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2023-11-10 17:15:47.861 INFO 28907 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3472 ms
2023-11-10 17:15:49.326 INFO 28907 --- [ main] pertySourcedRequestMappingHandlerMapping : Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2ControllerWebMvc#getDocumentation(String, HttpServletRequest)]
2023-11-10 17:15:49.475 INFO 28907 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9090 (http) with context path ''
2023-11-10 17:15:49.477 INFO 28907 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Documentation plugins bootstrapped
2023-11-10 17:15:49.486 INFO 28907 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Found 1 custom documentation plugin(s)
2023-11-10 17:15:49.558 INFO 28907 --- [ main] s.d.s.w.s.ApiListingReferenceScanner : Scanning for api listing references
2023-11-10 17:15:49.887 INFO 28907 --- [ main] com.wnhz.bms.BmsApp : Started BmsApp in 8.873 seconds (JVM running for 10.226)
2023-11-10 17:16:19.245 INFO 28907 --- [nio-9090-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2023-11-10 17:16:19.245 INFO 28907 --- [nio-9090-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2023-11-10 17:16:19.247 INFO 28907 --- [nio-9090-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
swagger測試
關(guān)閉應(yīng)用
[root@localhost projects]# ps aux|grep 67855
root 67855 8.8 3.9 5856660 318416 pts/4 Sl 17:31 0:18 java -jar wnhz-bms-0.0.1-SNAPSHOT.jar
root 76563 0.0 0.0 112824 988 pts/4 S+ 17:34 0:00 grep --color=auto 67855
[root@localhost projects]# kill -9 67855
[root@localhost projects]# ps aux|grep 67855
root 79602 0.0 0.0 112824 984 pts/4 S+ 17:35 0:00 grep --color=auto 67855
[1]+ 已殺死 nohup java -jar wnhz-bms-0.0.1-SNAPSHOT.jar
g-TG9kGPpx-1713174351305)]
關(guān)閉應(yīng)用
[外鏈圖片轉(zhuǎn)存中…(img-19K8gVWG-1713174351306)]
[root@localhost projects]# ps aux|grep 67855
root 67855 8.8 3.9 5856660 318416 pts/4 Sl 17:31 0:18 java -jar wnhz-bms-0.0.1-SNAPSHOT.jar
root 76563 0.0 0.0 112824 988 pts/4 S+ 17:34 0:00 grep --color=auto 67855
[root@localhost projects]# kill -9 67855
[root@localhost projects]# ps aux|grep 67855
root 79602 0.0 0.0 112824 984 pts/4 S+ 17:35 0:00 grep --color=auto 67855
[1]+ 已殺死 nohup java -jar wnhz-bms-0.0.1-SNAPSHOT.jar