安装
jdk
1.查看是否安装了jdk
[root@10-0-59-231 data]# java -version # 查看是否安装jdk,没有则要安装
-bash: java: 未找到命令
2.搜索可用包
yum search java |grep -i --color JDK
3.安装jdk
yum install java-1.8.0-openjdk* # 安装1.8 openjdk
4.查看
java -version
#输出
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
PS:yum自动配置了环境变量,可以通过 vim /etc/profile 查看
jenkins
1.centos 7 下安装
yum install jenkins
2.更改默认端口号和git clone代码存放目录
vim /etc/sysconfig/jenkins
JENKINS_PORT="8088" # 默认8080
JENKINS_HOME="/data/jenkins" # 默认 /var/lib/jenkins
systemctl daemon-reload # 使得配置生效
3.启动
systemctl restart jenkins # 重启
chkconfig jenkins on # 开机启动
配置
1.新建任务
2.输入名字,选择自由风格软件。
3.General,勾选丢弃旧的构建
4.设置代码仓库。我们使用的gitlab,所以勾选Git,然后贴入代码仓库地址,Credentials添加一个有权限的用户。
Branch Specifier:默认是从Master拉代码编译,我们一般发布是release,所以这里使用 release 分支。
5.构建触发器。这个不用设置,用不到。
6.构建环境。暂时用不到,跳过。
7.构建。点击“执行shell“,调用build.sh脚本完成源代码的编译工作,具体见下一节。
8.构建后。点击“Send build artifacts over SSH”,通过ssh把编译的包发布到远程机器上,具体见后面。
构建
1.构建脚本。
cd ${WORKSPACE} && cd server/paas_build
chmod 777 build_db_proxy_server.sh
./build_db_proxy_server.sh
cd ../
echo 'tar ${pwd}/online.base.im/'
tar -czvf online.base.im.tar.gz online.base.im/
这里打包压缩一下,便于后续的拷贝分发。
2.测试构建。
点击立即构建,然后在下面可以看到构建进度,再点击,查看具体构建结果。
分发
新增SSH Servers
PS:本地编译好程序后,还需要拷贝到的目标机器上运行,才完成整套流程。
点击系统管理->系统设置,拉到最下面。找到SSH Servers,点击后面的新增。
输入相关信息,其中Remote Directory,需要预先创建。推荐在/data/apps等目录。该目录代表了,后续把文件拷贝到机器上的根目录。然后点击高级设置密码后,点击“Test Connfiguration”,确保配置没问题。
如果有多台机器,多次add即可。
发布脚本
1.构建完成后,需要通过脚本执行一些安装动作,点击“Send build artifacts over SSH”。
2.选择一个服务器。相对于WorkSpace,我的包在server/online.base.im.tar.gz位置。
Remove prefix:需要移除的前缀,如果不设置。假设SSH Servers设置的Remote Directory为/data/webapps,则该压缩包拷贝后的路径为:/data/webapps/server/online.base.im.tar.gz。
Exec command:需要执行的命令。执行前请设置一下当前工作目录,比如cd /data/webapps。
附脚本:
kill -9 $(pidof db_proxy_server) # 停止进程
sleep 5 # 等一会
cd /data/webapps/
# 备份原程序
mv online.base.imdbproxyserver.service online.base.imdbproxyserver.service.$(date "+%Y%m%d")${BUILD_NUMBER}
tar -zxvf online.base.im.tar.gz
rm -rf online.base.im.tar.gz
mv online.base.im online.base.imdbproxyserver.service
cd online.base.imdbproxyserver.service
cd db_proxy_server
mv libhiredis.so.0.13 libhiredis.so.0.12
ln -s /data/webconf/dbproxyserver.xml dbproxyserver.xml
cd ../
chmod 777 *.sh
./restart.sh db_proxy_server
重新构建
此时要不停的调整脚本,直到显示成蓝色的球为止,代表中间过程一切顺利,没有错误。然后就实现了:
- 从gitlab自动拉取最新代码
- 编译
- 自动部署集群
看一下效果:
PS:如果需要发布到多个机器,在“构建后”里面在添加一个SSH Server即可。
关于
CSDN关于作者
推荐下自己的开源IM,纯Golang编写:
CoffeeChat:
https://github.com/xmcy0011/CoffeeChat
opensource im with server(go) and client(flutter+swift)
参考了TeamTalk、瓜子IM等知名项目,包含服务端(go)和客户端(flutter+swift),单聊和机器人(小微、图灵、思知)聊天功能已完成,目前正在研发群聊功能,欢迎对golang和跨平台开发flutter技术感兴趣的小伙伴Star加关注。
————————————————
版权声明:本文为CSDN博主「许非」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xmcy001122/article/details/105665732
参考:https://www.jianshu.com/p/5f671aca2b5a
参考:http://www.linuxboy.net/linuxjc/144365.html