Jenkins學習內容:php
Jenkins介紹
官網 https://jenkins.io
Jenkins 是一個開源的、可擴展的持續集成、交付、部署(軟件代碼的編譯、打包、部署)基於web界面的平臺。java
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
/etc/sysconfig/jenkins -- 配置文件 /var/lib/jenkins/ -- 程序主目錄 /var/lib/jenkins/jobs/ -- 建立的任務目錄 /var/lib/jenkins/nodes/ -- 多節點目錄 /var/lib/jenkins/plugins/ --插件所在的目錄 /var/lib/jenkins/users/ -- 用戶信息所在的目錄
檢查是否安裝 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
建立一個新任務
輸入一個任務名稱 構建一個自由風格的軟件項目 肯定apache
保存vim
當即構建
tomcat
測試
代碼倉庫的代碼是否同步到 apenglinux-001.cn:/tmp/jenkins下
若是代碼倉庫的代碼變動了就須要到 jenkins的web頁面下到相應的工程下點擊當即構建以同步代碼
系統管理->系統設置->管理監控配置->系統管理員郵件地址 xxxxxxx@163.com
系統管理->系統設置->郵件通知
smtp服務器 smtp.163.com
高級 使用smtp認證
用戶名 xxxxxxx@163.com
密碼 ........
smtp端口 25
應用->保存工程 (test_task) ->配置->增長構建後操做步驟->E-mail Notification->填寫Recipients
應用->保存針對相應的工程當即構建
能夠針對相應的工程任務 #5(第幾回構建)查看控制檯輸出
查看郵箱
查看插件 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了
[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了
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 這個頁面
下載 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
系統管理->全局工具配置
應用->保存
部署java項目---安裝插件
系統管理-》管理插件,檢查是否安裝 Maven integration plugin,deploy to container plugin
systemctl restart jenkins
建立新任務 java-test -> 構建一個maven項目
任務test-java的配置
總結:
jenkins_server要遠程到客戶端上,要做免密鑰登陸插件 Git plugin, publish over ssh添加客戶端jenkins_client,也就是配置publish over ssh添加任務當即構建