Jenkins
部署Jenkins
Jenkins下载war包版
添加用户 useradd tomcat
给用户设置密码 passwd tomcat
解压tomcat tar -zxvf apache-tomcat-9.0.8.tar.gz -C /usr/local/
将jenkins的war复制到webapp目录下cp jenkins.war /usr/local/apache-tomcat-9.0.8/webapps/
修改tomcat端口 vim conf/server.xml
给用户添加tomcat目录的权限chown -R tomcat:tomcat apache-tomcat-9.0.8/
开启 ./startup.sh
或 ./startup.sh && tail -f ../logs/catalina.out
catalina.out为日志文件
官网上有更简便的方法 运行命令 java -jar jenkins.war --httpPort=8080
即可启动
访问Jenkins
将服务器上的文件中的内容粘贴进去则完成验证,切记任何名字不要用中文
此时发现提示Jenkins离线,或者下载插件不成功
访问 http://www.lizhiyu.xyz:9999/jenkins/pluginManager/advanced
拉到最底下,将URL
从https–》改成http,之后提交
重启tomcat 然后再次访问 http://www.lizhiyu.xyz:9999/jenkins
或者将URL改成
http://mirror.esuni.jp/jenkins/updates/update-center.json
然后再重启tomcat
注册完进入到页面或者白屏再重启下
重启后进入发现提示Jenkins版本有问题
下载新的版本再次上传重启Tomcat
Jenkins安装插件
系统管理-》插件管理
安装maven Integration,通过它能构建maven
安装publish over ssh 插件,用于发布
安装gitlab插件,用于gitlib中代码更新后Jenkins立刻部署
安装如下两个插件然后可以通过图形化界面创建一个pipeline的任务
Jenkins配置
配置JDK
设置-》全局工具配置
echo $JAVA_HOME
查看jdk配置路径
配置MAVEN
设置-》全局工具配置
echo $MAVEN_HOME
查看maven安裝路径
配置Git
yum install -y git
安装git
yum history
查看安装历史
查看安装的软件的位置
1、 rpm -qa |grep git
查找git的安装包
git-1.8.3.1-23.el7_8.x86_64
2、 rpm –ql git-1.8.3.1-23.el7_8.x86_64 | grep /usr/bin
查找安装包的安装路径
yum 命令安装软件路径如下
Directory Contents of Directory
/etc 一些配置文件的目录,例如/etc/init.d/mysql
/usr/bin 一些可执行文件
/usr/lib 一些程序使用的动态函数库
/usr/share/doc 一些基本的软件使用手册与帮助文档
/usr/share/man 一些man page文件
Jenkins中Git配置如下
配置邮箱
设置-》全局工具配置
Jenkins配置GitHub
Jenkins授权gitlib的项目
然后在服务器上用启动Jenkins的用户去生成私钥
yum -y install openssh-clients
安装创建私钥的命令
ssh-keygen -t rsa
创建私钥
more ~/.ssh/id_rsa.pub
查看公钥
more ~/.ssh/id_rsa
查看私钥
进行如下配置然后保存
首先找到启动Jenkins的用户
然后将公钥添加到gitlib上
然后来到Jenkins新建一个任务
然后填写gitlib上的git地址、刚才的用户、和分支即可
允许Jenkins感知gitlib更新
在gitlib上配置
jenkins安装gitlab插件
jenkins在创建任务时候选择
在gitlib上,在跟新后要被Jenkins感知的项目上配置url 和token,保存
测试发布
如果是linux远程无密访问另一台服务器要进行如下步骤
ssh-keygen -t rsa
如果命令不存在
yum -y install openssh-clients
cd ~/.ssh
authorized_keys:
存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
id_rsa :
生成的私钥文件
id_rsa.pub :
生成的公钥文件
know_hosts :
已知的主机公钥清单
ssh-copy-id root@www.lizhiyu.xyz
这句话的意思是将本地公钥存到www.lizhiyu.xyz
的authorized_keys
文件中,然后直接 ssh root@www.lizhiyu.xyz
即可服务器无密登录
Jenkins无密访问另一台服务器
Jenkins中 系统管理==》系统设置
配置本地私钥位置,和远程服务器ip和要登录的远程用户名
Jenkins创建Maven任务
1、指定项目地址和分支(需要Jenkins授权gitLab)
2、设置Jenkins感知gitLib更新(要设置gitLab允许Jenkins感知)
3、当项目拉取下来,加载Maven配置,构建jar包(要求配置好maven)
4、将项目发布到远程,并且调用远程的脚本启动项目(要允许Jenkins免密访问另一台服务器)
选择 Execute shell 构建成功后执行本地脚本
然后再添加个执行的步骤 Send files or execute commands over SSH
demo.sh 脚本如下
#!/bin/sh
## java env
export JAVA_HOME=/usr/local/jdk1.8.0_25
export JRE_HOME=$JAVA_HOME/jre
## service name
APP_NAME=xxx
SERVICE_DIR=/home/lizhiyu/$APP_NAME
SERVICE_NAME=xxx
JAR_NAME=$SERVICE_NAME\.jar
PID=$SERVICE_NAME\.pid
cd $SERVICE_DIR
case "$1" in
start)
nohup $JRE_HOME/bin/java -Xms512m -Xmx1024m -jar $JAR_NAME >/dev/null 2>&1 &
echo $! > $SERVICE_DIR/$PID
echo "=== start $SERVICE_NAME"
;;
stop)
kill -9 `cat $SERVICE_DIR/$PID`
restart)
$0 stop
sleep 2
$0 start
echo "=== restart $SERVICE_NAME"
;;
*)
## restart
$0 stop
sleep 2
$0 start
;;
esac
exit 0
通过pipeline来创建任务
安装好 blue ocean 等插件后来到页面创建pipeline
每个步骤执行是否成功都能通过图形化界面显示,哪步出错更容易看
要注意备注pipeline每一步的操作备注 必须是英文,
同时执行远程命令时用户要用对
在发布成功会将一个jenkinsfile文件上传到git上面用于保存执行步骤