jenkins安装部署实现自动化构建

1. jenkins源码
https://github.com/jenkinsci/jenkins/releases/tag/jenkins-2.346
2. 安装(cenos7没jdk17需要装11)
https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos
检查版本 yum -y list java*
yum install fontconfig java-17-openjdk
3. 生成密钥
su -s /bin/bash jenkins
ssh-keygen -t rsa
粘贴公钥到gitlab
cat /var/lib/jenkins/.ssh/id_rsa.pub
jenkins的密码设置为无
可能需要在jenkins服务器执行下git clone xxx
可能出现: Too many open files
1、增大允许打开的文件数——命令方式
[root@bogon webServer]# ulimit -l
64
ulimit -n 2048
1
这样就可以把当前用户的最大允许打开文件数量设置为2048了,但这种设置方法在重启后会还原为默认值。
ulimit -n命令非root用户只能设置到4096。
想要设置到8192需要sudo权限或者root用户。
2、增大允许打开的文件数——修改系统配置文件
vim /etc/security/limits.conf
#在最后加入
* soft nofile 40960
* hard nofile 40960
4. Linux快速安装nodejs-14
这个给前端用的你不用就忽略
下载安装包
wget https://npm.taobao.org/mirrors/node/v14.17.5/node-v14.17.5-linux-x64.tar.xz
解压安装包
tar xf node-v14.17.5-linux-x64.tar.xz -C /usr/local/
添加软连接
ln -sfv /usr/local/node-v14.17.5-linux-x64 /usr/local/node
添加环境变量
echo 'export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH' >>/etc/profile
加载环境变量
source /etc/profile
查看node版本
node -v
v14.17.5
看到如上效果则为nodejs安装成功。
4.1 npm源
如果有换源需要的情况,可执行一下命令进行更换npm淘宝源。
npm config set registry registry.npmmirror.com/
默认安装目录修改淘宝镜像配置
/var/lib/jenkins/.npmrc
registry=https://registry.npmmirror.com
问题一:如果Jenkins执行npm install 的时候卡死
解决方案:
需要切换jenkins用户执行
npm config set registry https://registry.npmmirror.com/
5. 安装sshpass
yum -y install sshpass
问题一:执行sshpass无返回解决,命令不生效
解决方案:
如果没连过那个机器需要用ssh连一次,不然sshpass执行是失效的,记得在jenkins用户上去连
su -s /bin/bash jenkins
6.安装rz sz
yum -y install lrzsz
7. 创建定时扫描gitlab打包部署
7.1 创建自由式作业-》构建触发器-》轮询 SCM
# 这个是设置每5分钟轮询一次,看看gitlab有没有新代码提交
H/5 * * * *
7.2 创建自由式作业-》构建触发器-》勾选Build when…
- 这种用的是配置每个项目的身份验证
再点击Generate,生成Secret token(后续Gitlab的WebHooks会用),应用保存。
Gitlab配置WebHooks,*Secret 令牌为Jenkins生成的Secret token*,保存即可。
7.1和7.2任选其一
这里我给2例子,一个是web前端的一个是web后端的
例子1:web前端
讲下整体的步骤,首先是192.168.10.31已经安装了nginx等,且启动着,前端代码能正常通过nginx代理访问,前端的代码在/var/dba/web/html里边,我这个脚本的意思是打包好vue代码然后压缩,传到192.1