26.1 jenkins介绍
26.2 jenkins安装
26.3 了解jenkins
26.4/26.5 发布php代码
26.6 jenkins邮件设置
26.7 插件email-ext
26.8 破解jenkins管理员密码
扩展:
1 请同窗们自行建立一个私有git仓库,把discuz代码push进去,并整合到你的jenkins任务里
2 动手更改若干php代码文件,而后发布到线上
3 思考一下,如何回滚?php
产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线
持续集成 (Continuous integration,简称CI)
持续交付(Continuous delivery)
持续部署(continuous deployment)
以上参考 http://www.ruanyifeng.com/blog/2015/09/continuous-integration.htmlhtml
1、 jenkins介绍java
官网 https://jenkins.io Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)基于web界面的平台。 Jenkins是一个工具集,提供了各类各样的插件 好比获取git上最新的代码 好比能够帮你编译源代码 好比能够调用自定义的shell脚本远程执行命令 官方文档 https://jenkins.io/doc/
2、Jenkins安装node
最低配置: 很多于256M内存,不低于1G磁盘,jdk版本>=8linux
安装jdk1.8,此处安装openjdkgit
yum install -y java-1.8.0-openjdk
安装jenkins的yum源web
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo cat /etc/yum.repos.d/jenkins.repo
安装jenkins的keyshell
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
安装jenkinsvim
yum install -y jenkins systemctl start jenkins ps aux |grep jenkins less /var/log/jenkins/jenkins.log //安装时产生的日志,查询admin密码,作初始化安装使用 还能够到这个目录查看密码: /var/lib/jenkins/secrets/initialAdminPassword
浏览器访问 http://192.168.216.3:8080/ 进行安装,把刚刚的密码粘贴进去浏览器
选择推荐的插件安装
安装完成建立管理员帐号
3、了解jenkins
Jenkins相关目录
rpm -ql jenkins
1.安装目录,即程序的主目录,备份时拷贝走改目录便可: /var/lib/jenkins jobs即页面上建立的任务,生成任务目录 nodes多节点时用到 plugins 插件所在目录 secrets 密码秘钥相关目录 2.配置文件 /etc/sysconfig/jenkins 3.日志目录 /var/log/jenkins
4、Jenkins发布php代码
"系统管理(Manage Jenkins)"->"管理插件(Manage Plugins)"->"已安装"
检查是否有"Git plugin"和"Publish Over SSH"两个插件,若是没有,则需点击"可选插件",找到它并安装
安装完成直接在服务器中重启服务: systemctl restart jenkins
事先在一台linux服务器上生成一对密钥
cd /root/.ssh/
若是生成过,则不须要一下操做
ssh-keygen -f /root/.ssh/jenkins //生成新的秘钥对,文件名是jenkins,也能够用现有的,能够设置密码,也可不设置
安装好两个插件后,点击"系统管理" -> "系统设置(Configure System)" 下拉,找到"Publish Over SSH" "Passphrase"填写设置的密码或为空, "Path to key"留空,"key"粘贴/root/.ssh/jenkins文件内容或者id_rsa的内容,即私钥。 左下角,SSH Server定义发布到哪台机器上,点击"增长",name自定义,Hostname填写线上web服务器的ip,Username填写root,Remote Directory填写/(根)。 若是是多台web server,继续点击"增长",重复以上操做 点左下角的"保存"
在002机器上 vim authorized_keys,把001机器上的公钥复制过去,也要把公钥放到本机的authorized_keys 中去。
新建任务,任务名称自定义,好比test,选择"构建一个自由风格的软件项目"点击下方的"肯定" 描述,自定义 "源码管理"选择 "Git" 到代码管理仓库获取代码: https://git.coding.net/aminglinux/aminglinux-book.git 此处使用课件中地址book.aminglinux.com "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指定远程服务器上代码存放路径,好比/tmp/jentest, Exec command为文件传输完成后要执行的命令,好比能够是更改属主属组的命令(chown -R nobody:nobody /tmp/jentest),设置完成后点击 "Add Transfer Set",若是还有另外的机器,能够点击 "Add Server"重复以上操做 最后点击左下角的"保存" 完成以上操做后,就能够使用这个刚刚建立的任务去工做了。
进入任务后,点击左面的"当即构建(Build Now)",就能把git上的代码发布到指定的服务器上。
点击左下角的#1/#2… ,而后再点击 "Console Output"能够查看输出日志
变动代码后须要到对应任务从新点击当即构建
5、Jenkins配置邮件 – 内置邮件
系统管理 -> 系统设置 -> Jenkins Location 先设置系统管理员邮件地址,这里的邮件地址须要和后续要设置的发邮件地址一致。 往下拉,找到“邮件通知”那一栏 填写SMTP服务器,点右侧的高级,打勾“使用SMTP认证”,填写用户名密码,这个密码是qq邮箱上生成的受权码,若是使用的是ssl协议,还须要在这里打勾,smtp端口默认为25 能够打勾“经过发送测试邮件测试配置”,而后填写接收邮件的地址,点右侧的Test configuration进行测试
而后就是到已经构建过的job里去配置接收邮件的地址了。在最下面“构建后操做”那一栏,找到E-mail Notification,Recipients填写收邮件人
这个收件人只会在job构建失败时才能收到邮件
能够经过修改/tmp/jenkins_test/目录权限来测试:
rm -rf jenkins_test/* chattr +i jenkins_test/ 更改完权限后去页面当即构建便可
6、Jenkins配置邮件 – 插件email-ext
插件名字Email Extension Plugin,默认已经安装
配置Extended E-mail Notification:
系统管理->系统设置->Extended E-mail Notification 填写SMTP server,选择高级,点击Use SMTP Authentication,填写用户名、密码此密码为受权码、SMTP port等 选择下方的Default Triggers,选择Always老是发送,点击应用,保存
还需到对应构建任务中去配置一下,下拉到“构建后操做” 点击“增长构建后操做步骤”,选择“Editable Email Notification”,其中Project Recipient List为接收邮件的收件人,能够在默认内容后面增长额外的收件人邮箱,用逗号分隔 点击右下角的“Advanced settings”,定位到“Triggers”,而后点击下方的“Add Trigger”,能够增长发邮件的条件。 参考文章http://www.cnblogs.com/zz0412/p/jenkins_jj_01.html
此处进行测试,须要把刚刚jenkins_test目录的权限改回去,chattr -i jenkins_test/
发送成功,能够收到邮件
7、Jenkins破解管理员密码
cd /var/lib/jenkins/users/tobe_6892560001535223816 vim config.xml//定位到<passwordHash>这一行 删除该行,改成 <passwordHash>#jbcrypt:$2a$10$pre7I4liZFdF6ZE05QntTOoKoKa5pCUumaFO/mMzMoH09bNBzyj6O</passwordHash> 重启一下 systemctl restart jenkins 新密码为aminglinux.com