写在前面的话,搭建过程中有任何问题,及时百度
没有解决不了的问题,今天搞不定,就明天搞,要坚信没有搞不定的问题。
构建环境
Jenkins Centos7 GitHub Springboot
搭建过程主要在三个地方操作
- 服务器配置
- github配置
- jenkins配置
服务器配置
1.准备jar包
jenkins,tomcat,jdk,maven,git,这些jar包官网都有,不会下载的自行百度,就当学习了,我把jar包放在了 /usr/local/src 目录下。
2.解压jar包
tomcat,jdk,maven我们解压在了 /usr/local 目录下,
git我们解压在 /usr/local/src 就可以,稍后安装在 /usr/local,
jenkins 是个 war 包,稍后放在 tomcat 的 webapps 启动。
3.配置环境变量(重点)
首先说明,在本节我们一共需要配置3个,分别是 jdk,maven,git。
在 /etc/profile 文件配置 jdk 和 maven,文件最后添加如下内容。
export JAVA_HOME=/usr/local/jdk1.8.0_211
export M2_HOME=/usr/local/apache-maven-3.6.1
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
哦,对了,修改完需要使用命令source /etc/profile
让配置生效。
使用java -version
和mvn -v
查看我们是否修改成功,如下则为成功。
接下来我们安装git
-
进入解压后的git目录
cd /usr/local/src/git-2.9.5
-
安装编译依赖
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
-
检验相关依赖,设置安装路径
./configure --prefix=/usr/local/git
-
编译安装
make && make install
然后把 git 配置到环境变量
-
删除已有的 git
yum remove git
-
配置环境变量
export GIT_HOME=/usr/local/git export PATH=$PATH:$GIT_HOME/bin
-
刷新配置
source /etc/profile
使用git version
查看 git 版本,如下则为成功。
4.启动 jenkins
- 删除 tomcat/webapps 目录下的文件
- 复制 jenkins.war 到 tomcat/webapps 目录下
- 进入 tomcat/bin 目录,使用
./start.sh
启动 tomcat
5.开放端口
- 查看已开放端口
firewall-cmd --list-ports
- 开放指定端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
- 重新加载firewall
firewall-cmd --reload
浏览器访问 http://192.168.119.128:8080/jenkins
当然,个人ip不同,只需修改ip即可。
这时候我们可以成功看到如下画面,稍等片刻…
至此,我们服务器上的配置告一段落,我们转移主战场到github。
GitHub配置
设置token
登陆github,头像旁边有个下标
Settting ==> 左侧 Developer Setting ==> 左侧 Personal access tokens
到这里我们就生成了github的token,一定要记下这个token,后面会用。
设置ssh-rsa
配置ssh-rsa是为了服务器从github拉取代码
进入root目录,使用在github注册用的邮箱生成ssh-rsa秘钥
ssh-keygen -t rsa -C "youremail@example.com"
一路Enter
下去
查看公钥,将公钥添加到github
cat /root/.ssh/id_rsa.pub
Setttings ==> 左侧 SSH and GPG keys ==> new SSH keys
Jenkins配置
1. 登录系统,进行简单设置
好了,到这里我们简单的安装配置了jenkins,离成功又近了一步。
2.点击左侧 Manage Jenkins,开始设置jenkins(重点)
这里需要配置以下四个:
- 添加凭据
- 插件管理 Manage Plugins
- 工具管理 Global Tool Configuration
- 系统管理 Configure System
凭据我们添加2个,类型分别为Username with password 和 Secret text
Username with password 为github注册的用户名密码(ID和描述随意写)
Secret text是我们在github设置的token(ID和描述随意写)
插件需要再安装2个,一个 GitHub Integration,一个 Maven Integration
工具需要配置3个,分别是 jdk,git,maven,jdk配置如下,git和maven配置类似
** 特别需要注意的是git的配置后需要再加一个 /bin/git
系统管理我们只配置github服务器,其他邮件什么的不配置了,有精力者可以自行百度设置。
- 名称随意起
- API URL 固定用 https://api.github.com
- 凭据我们选择刚才添加的token类型那个
3.创建一个任务,然后配置
点击任务,进入一个如下图所示的页面。
在源码管理我们选择 Git
- 项目地址是github上项目的地址
- 凭据我们选择Username with password类型那个
这个时候你很可能发现报错了,如下,甚至其他别的错误。
查看服务器,可能会打印如下信息,
然后 /root/.ssh 目录下也只有两个文件
The authenticity of host 'github.com (13.229.188.59)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
RSA key fingerprint is MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
这时候需要在服务器执行以下命令
ssh -T git@github.com
执行后又出现刚才的提示,然后输入yes
会在 /root/.ssh 目录下生成一个 known_hosts 文件
这时候再看源码管理可能就会好了,不行就刷新一下浏览器重新配置。
除了源码管理,还有构建环境和绑定需要勾选一下。
哦,我们再配一个Post Steps,让它构建完之后启动项目
BUILD_ID=DONTKILLME #避免jenkins构建完之后干掉boot项目进程
echo "hello world" #简单打印一个hello world
sh /usr/local/app/start.sh #执行shell脚本
这里我们简单写一个shell脚本
简单介绍一个这个脚本,这个脚本把jenkins构建完的项目jar包复制到指定目录 /usr/local/app ,然后查看项目有没有启动,若启动则kill掉,然后重新启动项目。
提醒一下,如果boot项目访问不到不妨看看项目的启动端口是否放开了。
#!/bin/bash
cp /root/.jenkins/workspace/jenkins-job/target/demo-0.0.1-SNAPSHOT.jar /usr/local/app
cd /usr/local/app
pid=`ps -ef | grep java | grep demo-0.0.1-SNAPSHOT.jar |awk '{print $2}'`
kill -9 $pid
nohup java -jar demo-0.0.1-SNAPSHOT.jar &
好了,到这里我们基本配置完了jenkins,记得保存。
试着立即构建一下任务,去构建日志查看是否成功。