1、jenkins介绍
Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)基于web界面的平台。
Jenkins是一个工具集,提供了各种各样的插件:
- 可以获取git上最新的代码
- 可以帮你编译源代码
- 可以调用自定义的shell脚本远程执行命令
2、jenkins安装
安装jenkins需要jdk的支持,所以需要先安装jdk。
yum install -y java-1.8.0-openjdk
再安装jenkins的yum源。
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
也可以编辑文件vim /etc/yum.repos.d/jenkins.repo,两种方法是一样的。
[root@jin-120 ~]# cat /etc/yum.repos.d/jenkins.repo
[jenkins]
name=Jenkins
baseurl=http://pkg.jenkins.io/redhat
gpgcheck=1
安装jenkins
yum install -y jenkins
启动jenkins
systemctl start jenkins
然后在浏览器上输入ip:8080,进入jenkins的配置页面:
此时会要求你输入管理员密码,密码可在文件/var/lib/jenkins/secrets/initialAdminPassword中看到
[root@jin-120 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword 7a7973e5f8db4d89b2a21e8ee2a3452e
输入密码后点继续,进入插件安装界面,我们选择第一个:
此时系统会自动帮我们安装推荐的插件。
插件安装完成后,会跳转到创建用户界面:
依次输入后,再点“保存并完成”按钮。
此时就可以进入jenkins的界面了。
Jenkins的相关目录:
[root@jin-120 /var/log/jenkins]# 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 //日志目录
3、发布PHP代码
插件管理:
在发布PHP代码之前,我们需先安装一些插件和做一些准备工作。
在系统管理”-“插件管理”-“已安装”,检查是否有“Git plugin”和“Publish Over SSH”两个插件,如果没有,则需点击“可选插件”,找到它并安装。 安装好两个插件后,点击“系统管理”- “系统设置”,往下拉,找到“Publish Over SSH”,把密钥/root/.ssh/id_rsa的内容粘贴到“Key”里面。 再把公钥/root/.ssh/id_rsa.pub的内容粘贴到服务器(192.168.6.123)的/.ssh/authorized_keys上。
点击左下角“增加”,SSH Server,name自定义,Hostname填写线上web服务器的ip,Username填写root,Remote Directory填写/ 如果是多台web server,继续点击“增加”,重复以上操作。 点左下角的“保存”。
配置完插件后,现在就可以新建一个任务了。
点击“新建”,任务名称自定义,比如test,选择“构建一个自由风格的软件项目”点击下方的“确定” 描述,自定义
“源码管理”选择 “Git”
“Repository URL”填写你项目的git地址,如果是公共项目可以不设置下面的参数,直接填写一个git地址即可,若是私有项目,需要填写认证信息,比如可以选择 “SSH Username whith private key”,然后设置Username以及private key
“Branches to build” 默认为*/master,意思是发布的分支为master,保持默认
“构建触发器”和“构建环境”留空。
“构建”,选择 “Send files or execute commands over SSH”
SSH Server,Name 选择对应的服务器,Transfers, Source files填写**/**,表示全部文件。
Remove prefix可以指定截掉的前缀目录,这里留空即可,Remote directory指定远程服务器上代码存放路径,比如/data/wwwroot/www.aaa.com,Exec command为文件传输完成后要执行的命令,比如可以是更改文件权限的命令,设置完成后点击 “Add Transfer Set”,如果还有另外的机器,可以点击 “Add Server”重复以上操作。
最后点击左下角的“保存”。
完成以上操作后,就可以使用这个刚刚创建的任务去工作了。
点击左面的“立即构建”,就能把git上的代码发布到指定的服务器上。
点击左下角的#1/#2… ,然后再点击 “Console Output”可以查看输出日志。
jenkins配置邮件通知:
- 插件名字Email Extension Plugin,默认已经安装。
- 系统管理->系统设置->Extended E-mail Notification。
- 填写SMTP server,点击Use SMTP Authentication,填写用户名、密码、SMTP port等。
- 还需到对应构建任务中去配置一下,下拉到“构建后操作”。
- 点击“增加构建后操作步骤”,选择“Editable Email Notification”,其中Project Recipient List为接收邮件的收件人,可以在默认内容后面增加额外的收件人邮箱,用英文逗号分隔。
- 点击右下角的“Advanced settings”,定位到“Triggers”,然后点击下方的“Add Trigger”,可以增加发邮件的条件。
Jenkins更改管理员密码:
cd /var/lib/jenkins/users/admin
vim config.xml
定位到<passwordHash>那一行 删除该行,改为 <passwordHash>#jbcrypt:$2a$10$K4WU3jiXClbcq/Mjm.eycO9a7Dic/l4Dw5iYeB2D14qhPzk7vqWV.</passwordHash>
(新密码为123456)
重启一下jenkins,然后就可以用新密码登录了。
4、部署JAVA项目
不同于上面PHP的项目,java的项目是需要编译和打包的,而编译和打包要用maven完成,所以我们需要先安装maven。