Jenkins

Jenkins學習內容:php

  • Jenkins介紹
  • Jenkins安裝
  • Jenkins相關目錄
  • Jenkins發佈php代碼
  • Jenkins郵件配置
  • Jenkins郵件-Email Extension Plugin
  • 破解管理員密碼
  • 建立私有倉庫
  • 將zrlog源代碼放到gitlab:/test-java/
  • 部署java項目---配置tomcat
  • 部署java項目---安裝maven
  • 部署java項目---安裝插件
  • 部署java項目---構建job

  • Jenkins介紹
    官網 https://jenkins.io
    Jenkins 是一個開源的、可擴展的持續集成、交付、部署(軟件代碼的編譯、打包、部署)基於web界面的平臺。java

  • jenkins安裝
yum -y install java-1.8.0-openjdk.x86_64 -y
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins -y
systemctl start jenkins
ps aux|grep jenkins
grep -A5 password /var/log/jenkins/jenkins.log
http://192.168.144.20:8080

Jenkins
Jenkins
Jenkins

  • jenkins相關的目錄
/etc/sysconfig/jenkins -- 配置文件
/var/lib/jenkins/ -- 程序主目錄
/var/lib/jenkins/jobs/ --  建立的任務目錄
/var/lib/jenkins/nodes/ -- 多節點目錄
/var/lib/jenkins/plugins/ --插件所在的目錄
/var/lib/jenkins/users/   -- 用戶信息所在的目錄
  • 發佈php代碼

檢查是否安裝 Git plugin 和 Publish over SSH 2個插件node

系統管理->插件信息->已安裝 過濾 (Git plugin|Publish over SSH)
系統管理->插件信息->可選插件 過濾 Plubish over SSH -> 直接安裝linux

配置 Publish Over SSH,添加遠程機器git

系統管理->系統設置-> 下拉到 Publish Over SSHgithub

ssh-keygen
ssh-copy-id 192.168.144.10

生成密鑰對的私鑰 ~/.ssh/id_rsa的內容粘貼到 key 這個方框中,新增長遠程機器 192.168.144.10web

Jenkins

建立一個新任務
輸入一個任務名稱 構建一個自由風格的軟件項目 肯定apache

Jenkins
Jenkins
Jenkins

保存vim

當即構建
Jenkinstomcat

測試
代碼倉庫的代碼是否同步到 apenglinux-001.cn:/tmp/jenkins下
若是代碼倉庫的代碼變動了就須要到 jenkins的web頁面下到相應的工程下點擊當即構建以同步代碼


  • Jenkins郵件配置

系統管理->系統設置->管理監控配置->系統管理員郵件地址 xxxxxxx@163.com
系統管理->系統設置->郵件通知
smtp服務器 smtp.163.com
高級 使用smtp認證
用戶名 xxxxxxx@163.com
密碼 ........
smtp端口 25
應用->保存

工程 (test_task) ->配置->增長構建後操做步驟->E-mail Notification->填寫Recipients
應用->保存

針對相應的工程當即構建
能夠針對相應的工程任務 #5(第幾回構建)查看控制檯輸出
查看郵箱

  • Jenkins郵件-Email Extension Plugin

查看插件 Email Extension Plugin 是否安裝
取消 郵件通知
系統管理->系統設置->配置 Extended E-mail Notification 這項

填寫SMTP server smtp.163.com
Use SMTP Authentication 打對勾
填寫User Name
填寫Password
填寫SMTP port
填寫Default Triggers Always

應用->保存

修改對應任務的配置
刪除構建後操做 E-mail Notification
選擇 Editable Email Notificaion
Project Recipient List $DEFAULT_RECIPIENTS,xxxx@163.com,xxxxx@qq.com
高級設置
應用->保存

針對相應的工程任務->當即構建
查看這個任務的控制檯輸出

  • 破解管理員密碼
cd /var/lib/jenkins/users/
ls
admin_2412178503168175859  users.xml  -- 此行爲查到的內容
cd admin_2412178503168175859/
ls
config.xml   -- 此行爲查到的內容
vim +/passwordHash config.xml  -- 將匹配到的行刪除掉,添加如下一行
 <passwordHash>#jbcrypt:$2a$10$ZUIU6Un1RnO/A.92QkSn0uvGJvrgInCSvpCNuTwC1EniQi1KVVNq6</passwordHash>   -- 此密碼爲 123456 加密碼後的密碼
systemctl restart jenkins.service 
 就可用 123456 登錄到 jenkins web頁面了就可從新設置密碼了
  • 建立私有倉庫

    用 github的帳號登錄到 gitlab.com
    建立一個Project test-java
    將jenkins服務器的公鑰放到 User Settings -> SSH Keys 窗口中的 key 方框中,add key
    建立私用倉庫

[root@apenglinux-002 ~]# cd /home/
[root@apenglinux-002 home]# git config --global user.name "apenglinux"
[root@apenglinux-002 home]# git config --global user.email "2242740665@qq.com"
[root@apenglinux-002 home]# git clone git@gitlab.com:apenglinux/test-java.git
Cloning into 'test-java'...
The authenticity of host 'gitlab.com (35.231.145.151)' can't be established.
ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.
ECDSA key fingerprint is MD5:f1:d0:fb:46:73:7a:70:92:5a:ab:5d:ef:43:e2:1c:35.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitlab.com,35.231.145.151' (ECDSA) to the list of known hosts.
warning: You appear to have cloned an empty repository.
[root@apenglinux-002 home]# ls
test-java
[root@apenglinux-002 home]# cd test-java
[root@apenglinux-002 test-java]# touch README.md
[root@apenglinux-002 test-java]# git add README.md
[root@apenglinux-002 test-java]# git commit -m "add README"
[master (root-commit) 2a75836] add README
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.md
 [root@apenglinux-002 test-java]# vim README.md   -- 在這個文件中隨便寫點什麼
 [root@apenglinux-002 test-java]# git add README.md
[root@apenglinux-002 test-java]# git commit -m "change readme.md"
[root@apenglinux-002 test-java]# git push -u origin master
從新刷新 gitlab頁面就ok了
  • 將zrlog源代碼放到gitlab:/test-java/
[root@apenglinux-002 home]# wget https://codeload.github.com/94fzb/zrlog/zip/master
[root@apenglinux-002 home]# unzip master
[root@apenglinux-002 home]# ls
master  test-java  zrlog-master
[root@apenglinux-002 home]# mv zrlog-master/* test-java/
[root@apenglinux-002 home]# cd test-java/
[root@apenglinux-002 test-java]# git add .
[root@apenglinux-002 test-java]# git commit -m "add zrlog"
[root@apenglinux-002 test-java]# git push
刷新gitlab頁面就ok了
  • 部署java項目---配置tomcat(apenglinux-001.cn 192.168.144.10)

安裝 jdk ,tomcat

vim /usr/local/tomcat/conf/tomcat-users.xml  -- 倒數第二行添加以下內容
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user name="admin" password="123456" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.144.*" />

重啓tomcat
訪問tomcat服務器 http://192.168.144.10/ 點擊這個頁面上的
manager webapp 連接,會彈出一個認證的頁面 輸入用戶名爲:admin,密碼爲:123456 就可進入 Tomcat Web Application Manager 這個頁面

  • 部署java項目---安裝maven
    安裝maven目的是爲了編譯java的源碼並打包

下載 maven並解壓查看版本信息

https://maven.apache.org/download.cgi   
  cd /usr/local/src
  wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
  tar zxvf apache-maven-3.6.1-bin.tar.gz 
  /usr/local/src/apache-maven-3.6.1/bin/mvn --version

配置jenkins
系統管理->全局工具配置

Jenkins

Jenkins
應用->保存

  • 部署java項目---安裝插件
    系統管理-》管理插件,檢查是否安裝 Maven integration plugin,deploy to container plugin
    systemctl restart jenkins
    建立新任務 java-test -> 構建一個maven項目

  • 部署java項目---構建job

任務test-java的配置
Jenkins
Jenkins

總結:

  • 安裝jenkins過程當中,系統提供的插件若是沒有安裝成功,就重試安裝直到沒有打叉變成綠色打對勾爲止
  • 理清一下jenkins發佈php代碼的思路:

jenkins_server要遠程到客戶端上,要做免密鑰登陸插件 Git plugin, publish over ssh添加客戶端jenkins_client,也就是配置publish over ssh添加任務當即構建

相關文章
相關標籤/搜索