jenkins安裝+創建管理用戶+安裝漢化插件+創建視圖

文章目錄


前言:
jenkins用到的插件比較多,對jenkins的資源管理會用到各種插件

先構建,自動測試,然後自動發佈;這種稱之爲敏捷開發

一:jenkins概述

Jenkins是一個開源的、提供友好操作界面的持續集成(CI)工具,起源於Hudson(Hudson是商用的),主要用於持續、自動的構建/測試軟件項目、監控外部任務的運行(這個比較抽象,暫且寫上,不做解釋)。Jenkins用Java語言編寫,可在Tomcat等流行的servlet容器中運行,也可獨立運行。通常與版本管理工具(SCM)、構建工具結合使用。常用的版本控制工具有SVN、GIT,構建工具有Maven、Ant、Gradle。

1.1 git四個區域

git工作流程

1.代碼編寫

2.將代碼添加至暫存區

3.將代碼提交至本地倉庫

4.將代碼提交至遠程倉庫

5.從遠程倉庫拉取代碼

1.2 jenkins的功能

自動編譯
自動打包
遠程發佈
代碼拉取
郵件通知
測試統計
定時任務

現在java用的構建都是maven

1.3 CICD概述

CI(Continuous integration,中文意思是持續集成)是一種軟件開發時間。持續集成強調開發人員提交了新代碼之後,立刻進行構建、(單元)測試。根據測試結果,我們可以確定新代碼和原有代碼能否正確地集成在一起。借用網絡圖片對CI加以理解。

ci相當於configure到make過程
項目構建之後才能發佈
測試就是make是否會出現error
在這裏插入圖片描述

CD(Continuous Delivery, 中文意思持續交付)是在持續集成的基礎上,將集成後的代碼部署到更貼近真實運行環境(類生產環境)中。比如,我們完成單元測試後,可以把代碼部署到連接數據庫的Staging環境中更多的測試。如果代碼沒有問題,可以繼續手動部署到生產環境。下圖反應的是CI/CD 的大概工作模式。
在這裏插入圖片描述

二:實操演示

2.1 安裝jenkins前配置基本環境

2.1.1 修改主機名,查看java版本,清空iptables規則

[root@gsy ~]# hostnamectl set-hostname jenkins
[root@gsy ~]# su
[root@jenkins ~]# java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
[root@jenkins ~]# iptables -F
  • 安裝javajdk

卸載原有的

循環卸載openJdk

[root@jenkins ~]#  rpm -e --nodeps $(rpm -qa | grep openjdk)
[root@jenkins ~]# java -version
bash: /usr/bin/java: No such file or directory

安裝jdk

[root@jenkins ~]# tar xf /abc/jdk-8u91-linux-x64.tar.gz -C /usr/local/
[root@jenkins ~]# cd /usr/local/
[root@jenkins local]# ls
bin  etc  games  include  jdk1.8.0_91  lib  lib64  libexec  redis  sbin  share  src
[root@jenkins local]# mv jdk1.8.0_91/ java
[root@jenkins local]# ls
bin  etc  games  include  java  lib  lib64  libexec  redis  sbin  share  src

2.1.2 添加java環境變量

[root@jenkins local]# vim /etc/profile
#在末尾追加四行
JAVA_HOME=/usr/local/java
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
[root@jenkins local]# source /etc/profile
[root@jenkins local]# echo $PATH
/root/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/java/bin
[root@jenkins local]# java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

jre 虛擬機jvm

2.1.3 接下來構建maven項目

maven是用來構建項目的,構建完之後,交給git

Maven項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的項目管理工具軟件。

Maven 除了以程序構建能力爲特色之外,還提供高級項目管理工具。由於 Maven 的缺省構建規則有較高的可重用性,所以常常用兩三行 Maven 構建腳本就可以構建簡單的項目。由於 Maven 的面向項目的方法,許多 Apache Jakarta 項目發文時使用 Maven,而且公司項目採用 Maven 的比例在持續增長。

Maven這個單詞來自於意第緒語(猶太語),意爲知識的積累,最初在Jakata Turbine項目中用來簡化構建過程。當時有一些項目(有各自Ant build文件),僅有細微的差別,而JAR文件都由CVS來維護。於是希望有一種標準化的方式構建項目,一個清晰的方式定義項目的組成,一個容易的方式發佈項目的信息,以及一種簡單的方式在多個項目中共享JARs

https://maven.apache.org/
在這裏插入圖片描述

2.1.4 maven是免安裝的

[root@jenkins local]# tar xf /abc/apache-maven-3.6.3-bin.tar.gz -C /usr/local/
[root@jenkins local]# ls
apache-maven-3.6.3  bin  etc  games  include  java  lib  lib64  libexec  redis  sbin  share  src
[root@jenkins local]# mv apache-maven-3.6.3/ maven
[root@jenkins local]# ls
bin  etc  games  include  java  lib  lib64  libexec  maven  redis  sbin  share  src

2.1.5 設置maven環境變量

[root@jenkins local]# vim /etc/profile
#追加下面三行
MAVEN_HOME=/usr/local/maven
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
[root@jenkins local]# source /etc/profile
[root@jenkins local]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/maven
Java version: 1.8.0_91, vendor: Oracle Corporation, runtime: /usr/local/java/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"

2.2 開始安裝jenkins

2.2.1 官方找包

https://jenkins.io/zh/
在這裏插入圖片描述

點擊下載,點擊"Red Hat/Fedora/CentOS"

在這裏插入圖片描述

2.2.2 按照官網執行命令

[root@jenkins ~]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
--2020-05-31 21:27:25--  https://pkg.jenkins.io/redhat-stable/jenkins.repo
Resolving pkg.jenkins.io (pkg.jenkins.io)... 151.101.78.133, 2a04:4e42:12::645
Connecting to pkg.jenkins.io (pkg.jenkins.io)|151.101.78.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 85
Saving to: ‘/etc/yum.repos.d/jenkins.repo’

100%[======================================================================>] 85          --.-K/s   in 0s      

2020-05-31 21:27:28 (481 KB/s) - ‘/etc/yum.repos.d/jenkins.repo’ saved [85/85]
[root@jenkins ~]#  rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
[root@jenkins ~]# yum install jenkins -y
#下載速度過慢,我有以前下載過的一個jenkinsrpm包,直接導進來
[root@jenkins ~]# cd /abc/
[root@jenkins abc]# ls
apache-maven-3.6.3-bin.tar.gz  jdk-8u91-linux-x64.tar.gz  jenkins-2.222.3-1.1.noarch.rpm
[root@jenkins abc]# rpm -ivh /abc/jenkins-2.222.3-1.1.noarch.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:jenkins-2.222.3-1.1              ################################# [100%]

2.2.3 查看是否安裝成功

[root@jenkins abc]# rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins

2.2.4 開啓服務,出現報錯,找問題

[root@jenkins abc]# systemctl start jenkins
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.

2.2.5 java執行腳本軟連接放到/usr/bin/

再次開啓,成功

[root@jenkins abc]# ln -s /usr/local/java/bin/java /usr/bin
[root@jenkins abc]# systemctl start jenkins
Warning: jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units.
[root@jenkins abc]# systemctl daemon-reload
[root@jenkins abc]# systemctl start jenkins
[root@jenkins abc]# ps aux | grep jenkins
jenkins    5676 24.3  6.9 3652792 129176 ?      Ssl  22:02   0:05 /usr/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
root       6235  0.0  0.0 112712   964 pts/0    R+   22:02   0:00 grep --color=auto jenkins


2.2.6 輸入本機IP:8080登錄界面

因爲實驗原因中間擱置,IP爲134或142
在這裏插入圖片描述

2.2.7 查看密碼

[root@jenkins abc]# cat /var/lib/jenkins/secrets/initialAdminPassword
26085dc163d44ea7b59470b5217d19da

2.2.8 輸入密碼顯示當前jenkins處於離線狀態

在這裏插入圖片描述

出現離線報錯,點擊代理,然後返回
在這裏插入圖片描述

2.2.9 解決離線方法

訪問 http://192.168.247.134:8080/pluginManager/advanced

將 "https😕/updates.jenkins.io/update-center.json"修改爲 “http😕/updates.jenkins.io/update-center.json”

然後應用保存
在這裏插入圖片描述

2.2.10 重啓服務

[root@jenkins abc]# systemctl restart jenkins

刷新頁面

2.2.11 重新登陸,驗證

在這裏插入圖片描述

點擊check now 測試
備註:

若是在插件管理的高級選項還是有報錯

There were errors checking the update sites: SocketTimeoutException: connect timed out

那麼重新修改,重新重啓,或者等一會

刷新原始網頁

在這裏插入圖片描述

2.2.12 選擇插件來安裝,不用修改,直接點擊安裝

先點擊安裝推薦插件
在這裏插入圖片描述

點擊右邊的選擇插件執行默認安裝也是出現報錯
在這裏插入圖片描述
在這裏插入圖片描述

過了一會,再點擊安裝選擇插件安裝默認插件,出現安裝過程,應該是網絡的原因
在這裏插入圖片描述
在這裏插入圖片描述

重試,安裝完畢
重啓要等一會

2.2.13 先不創建用戶,使用admin賬戶並繼續


在這裏插入圖片描述
在這裏插入圖片描述
點擊重啓,然後登錄
在這裏插入圖片描述

2.2.14 下面是推薦安裝的插件

Ant Plugin
Apache HttpComponents Client 4.x API Plugin	
bouncycastle API Plugin
Branch API Plugin
Build Timeout
Command Agent Launcher Plugin
Credentials Binding Plugin
Credentials Plugin
Display URL API
Durable Task Plugin
Email Extension Plugin
Folders Plugin
Git client plugin
Git plugin
GIT server Plugin
GitHub API Plugin
GitHub Branch Source Plugin
GitHub plugin
Gradle Plugin
Jackson 2 API Plugin
JavaScript GUI Lib: ACE Editor bundle plugin
JavaScript GUI Lib: Handlebars bundle plugin
JavaScript GUI Lib: jQuery bundles (jQuery and jQuery UI) plugin
JavaScript GUI Lib: Moment.js bundle plugin
JSch dependency plugin	
JUnit Plugin	
LDAP Plugin	
Localization Support Plugin	
Localization: Chinese (Simplified)
Lockable Resources plugin
Mailer Plugin	
MapDB API Plugin
Matrix Authorization Strategy Plugin
Matrix Project Plugin
Oracle Java SE Development Kit Installer Plugin
OWASP Markup Formatter Plugin
PAM Authentication plugin
Pipeline
Pipeline Graph Analysis Plugin
Pipeline: API
Pipeline: Basic Steps
Pipeline: Build Step
Pipeline: Declarative
Pipeline: Declarative Extension Points API
Pipeline: GitHub Groovy Libraries
Pipeline: Groovy
Pipeline: Input Step
Pipeline: Job
Pipeline: Milestone Step
Pipeline: Model API	
Pipeline: Multibranch	
Pipeline: Nodes and Processes
Pipeline: REST API Plugin
Pipeline: SCM Step
Pipeline: Shared Groovy Libraries
Pipeline: Stage Step
Pipeline: Stage Tags Metadata
Pipeline: Stage View Plugin
Pipeline: Step API
Pipeline: Supporting APIs
Plain Credentials Plugin
Resource Disposer Plugin
SCM API Plugin
Script Security Plugin
SSH Build Agents plugin
SSH Credentials Plugin
Structs Plugin
Subversion Plug-in
Timestamper
Token Macro Plugin
Trilead API Plugin
Workspace Cleanup Plugin

2.2.15 部分插件解釋:

pipeline 常用插件

在jenkins官方文檔是這樣介紹pipeline的:Jenkins Pipeline (or simply “Pipeline”) is a suite of plugins which supports implementing and integrating continuous delivery pipelinesinto Jenkins.它的意思就是pipeline是一套jenkins官方提供的插件,它可以用來在jenkins中實現和集成連續交付。

整個流程主要有以下幾個模塊組成:

​ 1.agent

​ 2.param

​ 3.stage

首先介紹stage。pipeline實際上就是由很多個stage組成,每個stage完成一件事情。就像上圖中第二個stage用來構建項目,第三個stage用來測試項目。所以定義pipeline實際上就是定義多個stage。而stage是由多個step組成,由step來定義這個stage是如何完成一個任務的。比如要執行test這個測試stage,通過step定義第一步拉取代碼,第二步進行測試,第三步將測試結果發送郵件。

接着就是agent,agent是用來定義CI/CD流程環境的,比如你在構建gradle項目的時候需要gradle環境,這時候就由agent來定義。agent可以定義全局的,就是所有的stage都會在這個環境中進行,也可以放在stage中,意味這隻有該stage會放在這個環境中執行。

然後就是param。param是爲整個流程提供參數的。這一點是很好的,比如你使用git進行代碼管理,你需要構建某個流程,這時候你只要在構建的時候指定分支參數就可以構建項目。

最後,還有其他部分,比如所有的stage都執行完成了,或者失敗了,這時候你需要發送郵件,你可以在最後的部分定義發送郵件,不論構建成功與否。

完成ci階段的插件

build timeout 構建超時

首先LDAP是一種通訊協議,LDAP支持TCP/IP。協議就是標準,並且是抽象的。在這套標準下,AD(Active Directory)是微軟出的一套實現。
那AD是什麼呢?暫且把它理解成是個數據庫。也有很多人直接把LDAP說成數據庫(可以把LDAP理解成存儲數據的數據庫)。像是其他數據庫一樣,LDAP也是有client端和server端。server端是用來存放資源,client端用來操作增刪改查等操作。

而我們通常說的LDAP是指運行這個數據庫的服務器。

可以簡單理解AD =LDAP服務器+LDAP應用。

用樹形結構存儲數據,查詢效率更高(具體爲什麼,可以看一下關係型數據庫索引的實現原理——B樹/B+樹)。在某些特定的場景下,使用樹形數據庫更理想。比如:需要儲存大量的數據,而且數據不是經常更改,需要很快速的查找。

LDAP是一個目錄形式的數據庫

Ant是Java的生成工具,是Apache的核心項目;
Ant類似於Unix中的Make工具,都是用來編譯、生成;
Ant是跨平臺的,而Make不能;
Ant的主要目的就是把你想做的事情自動化,不用你手動一步一步做,因爲裏面內置了javac、java、創建目錄、複製文件等功能,所以可以直接點擊Ant文件,即可編譯生成你的項目。

三:對jenkins進行基本管理操作

若是使用別的瀏覽器,需要使用漢化包插件,使用谷歌可以自動翻譯

3.1 配置全局環境變量

配置jdk全局環境 全局配置jenkins
maven項目管理
java項目編譯器
#管理jenkins —> 全局工具配置 —>

  • 點擊管理插件
    在這裏插入圖片描述
  • 點擊全局組件配置
    在這裏插入圖片描述
    在這裏插入圖片描述

別名要去指定路徑

別名 JAVA_HOME
JAVA_HOME /usr/local/java/

點擊應用
在這裏插入圖片描述

配置maven
在這裏插入圖片描述

勾選install代表自行向官網下載,這裏已經安裝過了,取消勾選

然後再點應用,然後保存

四:安裝漢化插件

安裝推薦插件時已經安過了,這裏做一個未安裝時的演示

4.1 進入官網找漢化版插件

在這裏插入圖片描述

4.2 下載,點擊Archives,選擇最新版本

在這裏插入圖片描述

4.3 上傳插件

在這裏插入圖片描述
在這裏插入圖片描述

4.4 重啓,再次登錄

在這裏插入圖片描述
備註:可以發現此時是無法自行創建註冊新用戶

五:開啓允許自行創建用戶

5.1 到Configure Global Security處開啓允許用戶註冊

在這裏插入圖片描述
點擊應用保存

5.2 再次註銷查看

在這裏插入圖片描述

5.3 創建用戶,以供驗證

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

此時註冊的用戶是具有admin權限的
在這裏插入圖片描述
在這裏插入圖片描述

再創建一個,以作驗證使用

六:配置權限管理需要安裝管理插件Role-based Authorization Strategy

Role-based Authorization Strategy

切換管理員賬戶

6.1 管理jenkins —> 管理插件 —> 可選插件 —> 過濾"Role-based" —> 直接安裝(安裝完成可以返回工作臺)

授權插件

這兩個插件時一起使用的

在這裏插入圖片描述

選中,點擊直接安裝,默認從官網源上直接安裝
在這裏插入圖片描述

6.2 管理jenkins —> 全局安全配置 —> 授權策略 —> 勾選"Role-Based Strategy" —> 保存

在這裏插入圖片描述

6.3 出現報錯,翻譯一下

在這裏插入圖片描述
在這裏插入圖片描述

6.4 需要安裝一個授權項目插件Authorize Project

繼續去安裝
在這裏插入圖片描述
在這裏插入圖片描述

6.5 此時切換用戶shl

在這裏插入圖片描述

剛纔創建的gsy和shl此時無法管理

6.6 小結:誰安裝這些插件,誰就有最高級權限

在這裏插入圖片描述

七:添加管理角色,角色分配

此時沒有找到對應的插件

7.1 管理jenkins —> 管理和分配角色Manage and Assign Roles

在這裏插入圖片描述

備註:此時是管理員admin身份狀態

7.2 點擊進入管理角色

在這裏插入圖片描述

7.3 全局角色 —> 添加 gsy 角色,這個是role(類似於崗位),代表有什麼權限

在這裏插入圖片描述

7.4 勾選添加允許權限,勾選讀

在這裏插入圖片描述

7.5 項目角色Item roles,有的是project roles —> 添加 shl角色

不給權限
在這裏插入圖片描述
Pattern 是匹配任務的名字,也就是創建的任務名稱
谷歌翻譯如下
在這裏插入圖片描述
記得應用保存

八:管理分配用戶到指定的角色(崗位)

8.1 管理jenkins —> 管理和分配角色 —> 進入分配角色(通過角色管理進行匹配)

在這裏插入圖片描述

8.2 全局角色配置

在這裏插入圖片描述

admin具有admin角色的權限

gsy具有gsy角色的權限

8.3 項目角色配置

在這裏插入圖片描述
在這裏插入圖片描述

點擊應用,點擊保存

8.3 測試

8.3.1 創建兩個任務

在這裏插入圖片描述
在這裏插入圖片描述

然後默認應用保存
在這裏插入圖片描述

再新建一個
在這裏插入圖片描述
在這裏插入圖片描述

此時的項目時空的

8.4 創建視圖

視圖可以用於對項目更好的分類
在這裏插入圖片描述
在這裏插入圖片描述
確定

勾選任務列表
在這裏插入圖片描述
應用保存

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