Jenkins学习内容:

  • 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界面的平台。

  • 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_第1张图片
Jenkins_第2张图片
Jenkins_第3张图片

  • 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个插件

系统管理->插件信息->已安装 过滤 (Git plugin|Publish over SSH)
系统管理->插件信息->可选插件 过滤 Plubish over SSH -> 直接安装

配置 Publish Over SSH,添加远程机器

系统管理->系统设置-> 下拉到 Publish Over SSH

ssh-keygen
ssh-copy-id 192.168.144.10

生成密钥对的私钥 ~/.ssh/id_rsa的内容粘贴到 key 这个方框中,新增加远程机器 192.168.144.10

Jenkins_第4张图片

创建一个新任务
输入一个任务名称 构建一个自由风格的软件项目 确定

Jenkins_第5张图片
Jenkins_第6张图片
Jenkins_第7张图片

保存

立即构建
Jenkins_第8张图片

测试
代码仓库的代码是否同步到 apenglinux-001.cn:/tmp/jenkins下
如果代码仓库的代码变更了就需要到 jenkins的web页面下到相应的工程下点击立即构建以同步代码


  • Jenkins邮件配置

系统管理->系统设置->管理监控配置->系统管理员邮件地址 [email protected]
系统管理->系统设置->邮件通知
smtp服务器 smtp.163.com
高级 使用smtp认证
用户名 [email protected]
密码 ........
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,[email protected],[email protected]
高级设置
应用->保存

针对相应的工程任务->立即构建
查看这个任务的控制台输出

  • 破解管理员密码
cd /var/lib/jenkins/users/
ls
admin_2412178503168175859  users.xml  -- 此行为查到的内容
cd admin_2412178503168175859/
ls
config.xml   -- 此行为查到的内容
vim +/passwordHash config.xml  -- 将匹配到的行删除掉,添加以下一行
 #jbcrypt:$2a$10$ZUIU6Un1RnO/A.92QkSn0uvGJvrgInCSvpCNuTwC1EniQi1KVVNq6   -- 此密码为 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 "[email protected]"
[root@apenglinux-002 home]# git clone [email protected]: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  -- 倒数第二行添加如下内容








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_第9张图片

Jenkins_第10张图片
应用->保存

  • 部署java项目---安装插件
    系统管理-》管理插件,检查是否安装 Maven integration plugin,deploy to container plugin
    systemctl restart jenkins
    创建新任务 java-test -> 构建一个maven项目

  • 部署java项目---构建job

任务test-java的配置
Jenkins_第11张图片
Jenkins_第12张图片

总结:

  • 安装jenkins过程中,系统提供的插件如果没有安装成功,就重试安装直到没有打叉变成绿色打对勾为止
  • 理清一下jenkins发布php代码的思路:

jenkins_server要远程到客户端上,要作免密钥登录
插件 Git plugin, publish over ssh
添加客户端jenkins_client,也就是配置publish over ssh
添加任务
立即构建