某些情况下会遇到openjdk无法编译java程序,或在编译中存在异常,需要我们手动安装jdk,首先去Oracle官网下载对应版本的jdk
tar -zxvf jdk-8u121-linux-x64.gz -C /usr/local && \ ln -sv /usr/local/jdk1.8.0_121 /usr/local/jdk1.8 && \ echo "export PATH=$PATH:/usr/local/jdk1.8/bin" >/etc/profile.d/java.sh source /etc/profile.d/java.sh 三、WEB界面配置 3.1 密码修改 cd /var/lib/jenkins/users/admin #此为admin用户的目录,也可以对应自己创建的用户 vim config.xml //定位到<passwordHash>那一行 删除改行,改为 <passwordHash>#jbcrypt:$2a$10$pDQks0ytOkCfmpdgpLygrOC3uY7i/XnZHBKRQDhrBPwKoN2f5Kz8C</passwordHash>重启一下jenkins
新密码为admin
针对之前手动安装的maven需要在web界面配置进行结合。
系统管理---全局工具配置(Maven Configuration)配置:
此处为手动安装的maven,需要取消自动安装maven,name可以自定义,MAVEN_HOME指定下载安装的maven具体文件目录
3.3 GIT配置
手动安装的git,web界面只需添加具体可执行路径即可
对应手动安装的jdk,需要web配置java_home路径
jenkins有内置的邮件功能但由于其对于成功的发布不会发送邮件可定制化程度低,在此直接配置插件邮件(Editable Email Notification),2.32以上版本的jenkins,常用的插件都已经在最初部署的时候安装了(如果你当初选择的是suggest的plugins)。
可以使用qq邮件服务器或163等其他邮件服务器,在此配置使用163邮箱,首先需要开启163邮箱的smtp服务。
需要记录此处开启smtp时的密码。
在jenkins 系统管理---系统设置---Extended E-mail Notification
在默认的触发器 Default Triggers 标签下,可以勾选邮件通知触发的情况,如任何情况下均需要选择always,也可以在仅失败情况下发送,也可以对应的邮件接受人不通,进行邮件分类。
以下的内容,如邮件主题,内容均可自定义,可以参考url:
至此全局插件邮件已经配置完毕,需要在具体的项目中使用此邮件进行发送通知。 四、实战php程序自动发布 4.1 插件安装
系统管理---管理插件---已安装
检查是否有“Git plugin”和“Publish Over SSH”两个插件,如果没有,则需点击“可选插件”,找到它并安装
安装好两个插件后,点击“系统管理”-- “系统设置”
系统管理---系统设置---Publish over SSH
在key内填写jenkins服务器的私钥,如果没有需要先在jenkins服务器生成私钥与公钥。ssh-keygen -t rsa回车后会在登录用户的家目录下生成一个.ssh 的目录,此目录下存在id_rsa私钥与id_rsa.pub公钥。且讲公钥发布至代码发布的目标服务器上ssh-copy-id -i /root/.ssh/id_rsa.pub root@IP。
SSH Server配置
name:需要将php程序发布到目标服务器的名称,可自定义
Hostname:填写目录服务器的IP地址
Username:使用那个用户进行发布,此处为进行密钥互信的用户
Remote Directory:此出为发布到目标服务器的相对根路径,建议填写/,防止后续填写路径异常。
注:如果为多台目标服务器,可以继续添加,如果目标服务器存在代理,也可设置proxy 4.3 构建项目
新建Item---填入项目名称---选择构建一个自由风格的软件项目---确定
源码管理选择git
Repository URL 填写具体git上的仓库url,如果为私有,需要继续添加Credentials,如果为公有直接填写url即可,Credentials为none,
构建后够操作
选择(Send files or execute commands over SSH)
SSH Server选择目标服务器如:php-server
Source files:/ #将git拉去下来的原始文件
Remote directory:/var/www/html #发布到目标服务器的制定目录
Exec command:chown apache:apache -R /var/www/html/* #制定后续的操作