阿里云(阿里云的突发性能实例拿来做临时测试挺好的)服务器分配如下所示:(都配置好jdk1.8环境)
172.17.217.131 web-server服务
172.17.217.130 git服务
172.17.217.129 jenkins服务(同时模拟开发人员pc)
1.部署环境
git服务器操作:
1.1.安装git服务
yum install git
1.2.创建git用户
useradd git
passwd git
1.3.创建仓库
su - git #直接会进入到git用户的家目录
mkdir app.git
cd app.git
git --bare init #初始化仓库
ls -l 可以查看app.git仓库初始化完成
1.4.验证git服务(jenkins服务器上操作)
yum install git #下载安装git客户端
1.5 生成公钥并拷贝到git服务器上,生成公钥略过
ssh-copy-id git@172.17.217.130 #第一次需要输入git服务器的git用户的密码
需要注意的是,要将/home/git/.ssh/authorized_keys文件权限修改下。
chmod 600 /home/git/.ssh/authorized_keys
1.6 用git clone验证
mkdir /git && cd /git
配置下git客户端的用户信息
git config --global user.name "daquan"
再来git clone,由于app.git仓库是空的,所以会很快,并提示是个空的仓库。
[root@jenkins git]# git clone git@172.17.217.130:/home/git/app.git
Cloning into 'app'...
remote: Counting objects: 297, done.
remote: Compressing objects: 100% (233/233), done.
remote: Total 297 (delta 22), reused 297 (delta 22)
Receiving objects: 100% (297/297), 6.35 MiB | 0 bytes/s, done.
Resolving deltas: 100% (22/22), done.
[root@jenkins git]#
忽略我的操作输出,文档是后来加的。
将之前下载的tale项目push到git服务器上的app.git仓库中
mv /root/tale /git/app && cd /git/app
[root@jenkins app]# ls
bin LICENSE package.xml pom.xml README.md README_ZH.md src
然后提交到git仓库
git add .
git commit -m "add project tale"
git push origin master
1.7 安装Jenkins 2.107.3版本(略)
1.8配置jenkins
系统配置:
进入“系统管理”--“系统设置”,主要是把web-server这台服务器通过ssh方式添加进来。
图片.png
参数说明:
Name: web-server
Hostname: 172.17.217.131
Username: root
Remote Dirctory: /usr/local/tomcat/webapps 这个意思是把代码发布到172.17.217.131的/usr/local/tomcat/webapps目录下,如果没有这个目录的话需要手动创建。
Passphrase/Password: 输入172.17.217.131这台服务器的密码,当然也可以像我这样使用私钥来代替。
jdk,maven,git配置:
进入“系统管理”--“全局工具配置”
图片.png
1.9 构建maven项目
点击“新建”--“构建一个maven项目”,项目名定义为java_tale。如下图:
图片.png
2.0 源码管理
在“源码管理”项中选择git,只需配置git仓库的地址“Repository URL”,之前我们再jenkins服务器上把公钥传输到了git服务器上了,所以不需要做认证,如下图:
图片.png
2.1 构建触发器
图片.png每5分钟执行一次
2.2 build配置
在“Build”选项中,Goals and options输入: clean package 如下图:
图片.png
2.3 构建后的配置
在“Post Steps”选项中,配置如下操作:
图片.png
配置说明:
Name: 选择需要部署的web服务器,之前我们ssh增加了一台,所以这里可以直接选择
Source files:需要部署到目标服务的打包成果路径
Remove prifix: "Source files"配置的路径中要移除的前缀
Remote directory: 成果要发送到的远程目标服务目录路径,这个路径和第一步配置中的Remote Directory对应。(此处再加路径的/path的话,则成果会存在第一步配置中的Remote Directory/path下)
Exec command: 成果发送完成后,需要执行的命令
2.4 测试
配置上之后,构建此项目
图片.png
查看控制台输出日志:
图片.png
图片.png
可以在/usr/local/tomcat8080/webapps/tale目录下看到一个编译成功的jar文件,如图
图片.png
然后运行jar文件,/usr/bin/java -jar /usr/local/tomcat8080/webapps/tale/tale-least.jar,此服务监听在9000端口上。我们可以用nginx作反向代理转发至9000端口即可正常访问.
可以看到成功了。访问测试:
图片.png
优化部分:可以再加一个gitlab来做到git仓库的可视化。或者整个流程完全容器化。