Jenkins
部署jenkins:
https://jenkins.io/zh/
1、部署java环境
tar xvf jdk-8u211-linux-x64.tar.gz -C /usr/local/src
ln -sv /usr/local/src/jdk1.8.0_211/ /usr/local/src/jdk
#java命令软连接
ln -sv /usr/local/src/jdk/bin/* /usr/bin/
#设定环境变量
[/etc/profile] 所有用户生效
vim /root/.profile (仅对root用户生效)
export JAVA_HOME=/usr/local/src/jdk
export PATH=$ JAVA_HOME/bin:$ JAVA_HOME/jre/bin:$ PATH
export CLASSPATH=.$ CLASSPATH:$ JAVA_HOME/lib:$ JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
#使环境变量生效
#source /etc/profile
source /root/.profile
测试是否生效:
2、安装jenkins,首先安装daemon包,否则jenkins安装失败,jenkins依赖于daemon包;
apt update && apt install daemon (安装完daemon会自动尝试启动jenkins)
再次安装jenkins:
修改配置文件:以root身份运行
vim /etc/default/jenkins
重新启动systemctl restart jenkins
3、登录首页的密码:然后点击继续
cat /var/lib/jenkins/secrets/initialAdminPassword
安装插件目录:如果现实 jenkins 已离线,将以下文件中的更新检查地址改成国内清华大学地址,然后重启 jenkins 即可:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
(也可解压插件到该目录,解压插件目录为:)
cd /var/lib/jenkins/plugins
tar xvf jenkins-2.176.3-plugins.tar.gz
(插件安装过程中:http://updates.jenkins-ci.org/download/plugins/ #插件下载地址插件安装过程中。。如果因为某种原因导致有有安装失败的插件,没有关系,可以后期再单独安装。)
再次点击安装推荐的插件后直接跳到下图:(保存并继续)实例配置:不需要修改安装完成:开始使用jenkins登录jenkins:war包安装jenkins:
下载稳定版本:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.176.4/
war包部署启动:(要求JDK8)【不建议生产使用,常用于测试小服务】
部署好java环境:步骤省略。
下载war包;直接java -jar jenkins.war 前台启动
可使用 --httpPort=9090 指定端口
下图说明了数据存储的位置:此种方式启动文件会存放在启动jenkins的用户家目录中的.jenkins隐藏文件中。
指定9090端口启动:此种方式,只能kill该进程(ctl+c)。
可以使用对应端口进行访问:
192.168.42.101:9090java -jar ***.war &(nohub)后台启动,该终端不能关闭,
此种方式启动项目存放位置为root家目录下.jenkins目录中。
后续安装步骤相同:项目输出路径:
通过tomcat来启动jenkins:
jenkins.war是zip压缩文件,可解压或者直接将war包放到tomcat的业务目录中(开启自动解压)
mv jenkins.war /usr/local/tomcat/webapps/
编辑tomcat配置文件,开启自动解压
unpackWARs=“true” 默认开启使用jdk8需要解决两个依赖包:libxrender-dev libxtst-dev
unzip jenkins.war -d dirname(若未开启自动解压则将其解压到webapps目录中)
启动tomcat,访问tomcat的8080端口 访问ip:8080/jenkins
/usr/local/tomcat/bin/catalina.sh start数据目录仍存放在启动用户的家目录下的.jenkins目录中。
后续安装目录步骤相同。
此种方式可通过重启tomcat来重启jenkins。
清除tomcat缓存:设置jenkins自动拉取代码:
新建任务:构建自由风格的软件项目
点击确定:
生产环境中无需构建触发器:构建后操作:测试执行操作的用户:
选择执行shell:可查看可用环境变量:然后点击保存:测试:构建完成后会显示:
选择控制台输出:查看输出:
基于ssh key拉取代码:
配置jenkins从gitlab拉取代码:需要首先配置jenkins主机登录到gitlab主机的免密登录。
0、在jenkins服务器生成秘钥
ssh-keygen查看公钥:cat id_rsa.pub1、设置中找到ssh keys(存放公钥)将公钥拷贝进去:点击create添加公钥成功:测试免密拉取代码:
使用此地址
(首次连接需要确认输入yes)
git clone git@192.168.42.106:test-group/test-project.git
配置jenkins到gitlab非交互式拉取代码:
jenkins服务器配置源码仓库(需要配置凭证):jenkins服务器添加证书:添加全局凭据:选择:添加私钥:点击确定创建jenkins的project:配置源码管理:添加完成的证书没有报错表示认证通过。
构建项目进行测试:
点击立即构建:项目构建中:验证构建结果:服务器进行验证:
配置通过命令拉取代码:构建项目:验证:若构建项目报错如下:则进行项目配置如下:构建之前删除文件再次构建成功:将代码部署到后端服务器:(静态页面无需重启服务,jsp文件需要重启服务)
(需提前配置jenkins到后端服务器的免密登录,将jenkins服务器的公钥拷贝到后端tomcat服务器。
ssh-copy-id 192.168.42.104)
cd /var/lib/jenkins/workspace/test-demo1 切换到该项目目录下进行打包,否则写绝对路径打包的话会将这个目录全部打包。
tar cvf code.tar.gz index.html
拷贝到tomcat服务器:有tomcat用户
scp code.tar.gz tomcat@192.168.42.104:/usr/local/src/tomcat/webapps/myapp1/
远程执行命令:
ssh 192.168.42.104 “catalina.sh stop && cd /usr/local/src/tomcat/webapps/myapp1/ && tar xvf code.tar.gz”
远程执行命令启动tomcat:
ssh 192.168.42.104 “catalina.sh start”
测试访问:在gitlab上重新编辑项目:通过jenkins直接推送到后端服务器:
在jenkins端配置test-demo1工程:编辑构建后操作:选择执行shell命令:重新构建项目:(配置中勾选构建前删除文件)访问tomcat测试效果:对于压缩文件,使用哪个用户执行解压命令,解压后所得的文件的所有者及所属组为该用户。安装插件:将插件解压到jenkins目录中即可。使用清华源。
插件目录:/var/lib/jenkins/plugins
插件下载地址:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/
用户创建:创建的用户默认是超级管理员。需要安装插件role-based,才能实现权限控制。
默认是超级管理员权限:
安装插件重启服务:
选择保存后:之后才会出现角色管理:点击进行配置点击管理角色:创建角色并为之配置权限:然后点击保存
将用户与角色关联:全局基本权限读,需要给到角色。
点击分配角色:用户与角色进行关联,然后点击保存测试test1用户的权限:只能查看工程jenkins用户密码相关的配置:
jenkins用户密码存放位置:/var/lib/jenkins/users/用户目录/config.xml 中 位置。
每个用户都对应一个单独的目录。
cat /var/lib/jenkins/users/users.xml若忘记密码,则新建一个用户,将其中的加密码拷贝替换至此即可:重新启动jenkins然后登录检测即可。
邮件配置:
点击系统设置-系统设置
1、首先配置系统管理员的邮件地址(否则后续邮件无法发出)2、再配置邮件通知邮件收到:构造错误:增加构建后操作:工程构建失败会发送邮件通知。
为何报错!keepalive邮件配置: