Jenkins 部署多个环境

        上一篇博客中我们讲到了如何使用 jenkins 去同步代码,但是这是有局限性的,我们自己可以玩儿一玩儿,但是是无法用在实际工作中。大家都知道,在工作中开发的时候一般不只有一个环境,一般是有三个环境(开发、测试、生产),如果把三个环境分成三个任务去部署就显得很多余,重复了很多操作,现在我们就可以使用多环境部署去解决这个问题,我们这里用了两个服务器,服务器可以是多个的。这一次我从部署jenkins开始(默认已经安装docker了)。


一、安装jenkins、启动jenkins

docker search jenkins //查看jenkins版本

docker pull jenkins/jenkins:latest //选择这个版本的jenkins安装

安装成功后使用 docker images 查看,出现下图即成功

启动jenkins:(一定要记得开放端口)

docker run -d -uroot -p 8080:8080 -p 50000:50000 --privileged=true --restart=always --name jenkins -v /var/jenkins_mount:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker --user="root" jenkins/jenkins:latest
  • --name jenkins:为容器指定一个名称
  • -d:以守护进程模式运行容器,即容器会在后台运行,不会自动退出
  • -u root:以root用户运行容器
  • -p 8080:8080:将容器内的端口8080映射到宿主机的端口8080,这样可以在浏览器中访问Jenkins的Web界面。
  • -p 50000:50000:将容器内的端口50000映射到宿主机的端口50000,这是Jenkins与Docker交互的端口。
  • --privileged=true:给予容器特权,即允许容器访问所有网络和文件系统。
  • --restart=always:容器总是重启,即使它终止 normally
  • -v /var/jenkins_mount:/var/jenkins_home:将宿主机的/var/jenkins_mount目录映射到容器内的/var/jenkins_home目录,用于存储Jenkins的数据。
  • /var/run/docker.sock:/var/run/docker.sock:将宿主机的/var/run/docker.sock文件映射到容器内的/var/run/docker.sock文件,以便Jenkins可以与Docker交互。
  • -v /usr/bin/docker:/usr/bin/docker:将宿主机的/usr/bin/docker文件映射到容器内的/usr/bin/docker文件,以便Jenkins可以使用Docker命令。
  • jenkins/jenkins:latest:使用Jenkins的官方Docker镜像,版本为latest。

执行完成后还需要授权一下 :

chown -R 1000:1000 /var/run/docker.sock

请记住,标红的指令很重要,这些决定了 jenkins 能否执行 docker 指令。


二、安装插件、配置

初始化步骤跳过,选择安装系统推荐的插件,剩下的插件进入后安装

需要手动安装的插件:

  • SSH server
  • Publish Over SSH
  • NodeJS Plugin
  • Gitee Plugin(因为我这里用的是gitee,其他平台请自行下载对应插件,步骤都是一样的)

配置SSH :系统管理 ——>  全局系统配置 ——> SSH (...此处省略1w字,详情请看Jenkins配置远程服务器SSH Server流程)(对了在填写 Remote Directory 的时候不要写"/" ,要写 "." 要不然在构建的时候连接不上第二台服务器

配置 node:系统管理 ——> 全局工具配置 ——> NodeJS 安装

        选一个版本安装,我安装的是 18.17


三、新建任务

选择第一个

描述随便写写

选择参数化构建过程(选 选项参数)

源码管理选git

分支选择看你们想构建的是哪一个分支就填那个

构建触发器 选定时构建(每天的 0、9、12、18点自动构建)

构建环境选择你配置好的node(如果不选择的话,在执行脚本的时候是没有node和npm的)

Build Steps 选择

        执行shell

        Send files or execute commands over SSH(将打包好的文件通过ssh发向指定服务器)

node -v
npm -v
docker -v
docker run --rm -v /var/jenkins_mount/workspace/multi-environment/:/home/frontend/ -w /home/frontend/ node:18.17 sh -c "npm config set registry https://registry.npmmirror.com && npm install && npm run build"

这里的 multi-environment 就是你创建的任务的名称。

这是开发环境的,下面是测试环境的配置(只有一点小改动)

然后点击高级选择

最后应用保存,准备构建


四、构建

构建成功

我只构建了两个环境(开发,测试)

如果想构建生产环境且生产环境在另一台服务器上(jenkins所在服务器1,开发、测试环境所在服务器2,生产环境所在服务器3)所需步骤和上面是一样的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值