安装
- 参考:
- 初始化安装插件的时候应该跳过(选择自定义然后什么都不装),后续更换国内镜像安装
- 修改Jenkins插件下载地址:
- 更新简体中文插件到1.0.10+(没装的话先装一下,搜Chinese)
- 点击页面右下角(确保浏览器的语言为中文)的Jenkins中文社区
- 点击使用按钮
- 修改更新中心的地址为https://updates.jenkins-zh.cn/update-center.json(就在使用页面)
- 在插件管理的高级页面,点击立即获取
基本使用
- 启动:systemctl start jenkins
配置文件:/etc/sysconfig/jenkins
# 设置用户名和端口
JENKINS_USER="root"
JENKINS_PORT="8888"
权限管理
插件:Role-based Authorization Strategy
- 装好之后到 Configure Global Security—-授权策略,选中插件提供的策略
之后到Manage Jenkins—-Security—-manage and assign roles—-manage roles
global roles:全局
- 在其中可以创建角色,之后可以为用户分配该角色
- 默认有一个admin的角色
item roles:项目角色
- 使用正则表达式表达角色能访问到的项目
- 如”accident.*”表示该角色可以访问到路径为accident之后的项目
node roles:节点角色(如果Jenkins做了主从,那么就可以使用这个选项)
可以去Manage Jenkins—-security—-manage users新建角色,随后在Manage Jenkins—-Security—-manage and assign roles—-assign roles分配角色,可以给不同用户分配不同的角色
插件:Credentials Binding
- 装好后到Manage Jenkins—-Security—-Manage Credentials 管理凭证,点击全局即可添加不同类型的凭证
凭证的一些类型:
默认的工作目录:/var/lib/jenkins/workspace
- 配置:
- git(Jenkins要装插件,宿主机要装软件)
- jdk:
- 在Global Tool Configuration中配置
- 新增jdk,把本地jdk的安装目录放进去(去掉install automatic勾选)
- maven:同jdk
- 一定要重新maven镜像源!
- 为jenkins添加全局变量:
- 在Configure System—-全局属性—-environment variable中添加键值对
- 键:JAVA_HOME 值:/usr/local/java/jdk1.8.0_251
- 键:M2_HOME 值:/usr/local/maven/apache-maven-3.5.2
- 键:PATH+EXTRA 值:$M2_HOME/bin
- 表示在原有命令中追加maven的命令
- 如果需要发布到远程的tomcat服务器,需要配置tomcat的登录账号(详见:https://www.yuque.com/mrwemmick/gzlept/aboii0)
构建maven项目
使用自由风格
- 拉取代码:选中freestyle创建项目后,在源码管理中选中git,填写远程仓库的地址以及凭证(如果事先配置了,可以使用事先配置的,如果没有,可以临时填)
编译打包:
- 构建-添加构建步骤-execute shell
- 构建的命令:
echo '-------------开始构建--------------'
mvn clean install
echo '-------------结束构建--------------'
本地部署:把项目部署到jenkins所在的服务器上
- 思路就是构建成功后运行项目
- 增加构建的命令:
echo '-------------开始构建--------------'
mvn clean install
echo '-------------结束构建--------------'
# 此处应该填写maven打包后的jar包名称,我的是jenkins-0.0.1-SNAPSHOT.jar
ps -ef | grep "jenkins-0.0.1-SNAPSHOT.jar" | grep -v grep | awk '{print $2}'|while read pid
do
kill $pid;
done
# 指定BUILD_ID使得该进程不会在构建结束后被杀死
# 默认在当前目录输出日志,如果对日志输出有要求,请自行研究nohup命令输出日志的方式
BUILD_ID=dontKillMe nohup java -jar target/jenkins-0.0.1-SNAPSHOT.jar &
远程部署:(jenkins和项目部署的服务器不在同一台机器上)
- 安装插件 Send build artifacts over SSH
- 该插件的思路为将构建后的项目通过SSH发送给目标服务器,随后在目标服务器中使用脚本运行项目
- 在system_config中配置服务器信息(可以选择使用密码,或者是key,使用key可以参考SSH的配置
- remote directory为上传至服务器中的路径
- 在项目中可以使用预先配置好的服务器信息
- 此处的source files表示构建好的项目所在的目录,默认为jenkins的工作目录
- 插件会先把文件上载至服务器,再运行Exec command中的脚本
- 如果需要输出脚本的运行信息,可以在Server菜单的高级选项中选中Verbose output in console
-
其他注意事项
在windows中使用jenkins
- 安装插件 Send build artifacts over SSH
- 如果选则的是execute window batch command,则只能运行dos命令,比如copy、move,而mv、cp这种命令是不被支持的
配置nginx反向代理
``` server {listen 80;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
} ```