• 搜索
  • 夜间模式
    ©2026  依刻学习 Theme by OneBlog

    依刻学习博客

    搜索
    标签
  • 首页>
  • 学习的一天>
  • 正文
  • jenkins实现kodcloud容器集群自动部署(1)

    2025年02月17日 16 阅读 0 评论 5263 字

    前言

    本文使用jenkins结合gitee,docker实现kodcloud+mysql+redis+nginx集群部署

    系统为centos7.9,已经配置好docker,docker加速镜像
    使用主机如下

    主机名IP作用
    T1192.168.179.141jenkins
    T2192.168.179.142部署kod节点

    实现

    1. T1安装jenkins
    • 安装jdk17
      参考jenkins和java版本的适配jenkins的Java支持策略
    
    #放在/usr/local内
    sudo tar xf jdk-17.0.14_linux-x64_bin.tar.gz
    sudo rm jdk-17.0.14_linux-x64_bin.tar.gz -f
    #推荐保留版本编码如u441
    mv ./jdk-17.0.14  /usr/local/
    sudo ln -s /usr/local/jdk-17.0.14/ /usr/local/jdk
    sudo cat >>/etc/profile<<'EOF'
    export JAVA_HOME=/usr/local/jdk
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
    EOF
    source  /etc/profile
    java -version
    
    
    
    
    • 安装jenkins服务端
    sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
    sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
    sudo  yum install fontconfig -y
    sudo  yum install jenkins -y
    
    • 修改system启动配置
    sed  -i 's#User.*#User=root#;s#Group.*#Group=root#;#JAVA_HOME#i\Environment="JAVA_HOME=/usr/local/jdk"' /usr/lib/systemd/system/jenkins.service
    echo Environment="JAVA_HOME=/usr/local/jdk" >>
    vim /usr/lib/systemd/system/jenkins.service
    
    #注意:以下需要配置到[Service]中
    User=root
    Group=root
    Environment="JAVA_HOME=/usr/local/jdk"
    
    
    systemctl restart jenkins
    
    
    • 进入jenkins
      访问http://IP:8080进入jenkins,等待jenkins自动安装插件

      jenkins在进入配置完后可以修改访问地址,可以结合nginx配置,这里不配置

    #查看管理员密码
    cat /var/lib/jenkins/secrets/initialAdminPassword 
    
    1. 添加jenkins管理节点
      进入jenkins,配置节点

      指定节点名为T1
      指定工作目录为/app
      指定标签kodbox (用于匹配项目)
      指定Only build jobs with label expressions matching this node,仅构建与标签表达式匹配的项目,即项目中必须指定标签且与该节点匹配
    1. T2安装jenkins客户端agent2
    • 安装jdk,参考步骤1
    • 部署jenkins客户端(直连版)
    curl -sO http://192.168.179.141:8080/jnlpJars/agent.jar
    java -jar agent.jar -url http://192.168.179.141:8080/ -secret d19747da35a0a90223449f8f9c64fbe12699e42faa7ce189fd32767798fe7b73 -name T2 -webSocket -workDir "/app" >/dev/null &
    

    这种方法比较简单,但是直接使用java后台运行难以长久,需要配置其他启动方式(后面介绍)
    此时可以发现T2节点已经没有X了

    • 安装git
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
    yum  clean  all
    yum  repolist
    yum install git -y
    
    • 安装docker
    yum install -y yum-utils
    sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
    sudo systemctl start docker
    sudo systemctl enable docker
    

    4.配置gitee仓库
    创建仓库,推送代码步骤已略,这里只配置jenkins相关
    代码仓库为KodCloudStack

    • 配置公钥(gitee仓库)

      参考命令(在任意linux系统上运行,获取生成的文件)
    ssh-keygen -t ed25519 -C "Gitee SSH Key"
    cat ~/.ssh/id_ed25519.pub
    ls ~/.ssh/
    #私钥文件 id_ed25519,需要其内容配置到jenkins
    #公钥文件 id_ed25519.pub,需要其内容配置到gitee
    cat id_ed25519.pub
    #请将'显示内容'配置到图中'参考命令'处

    5.项目构建

    • 新建item(任务)
    • 选择freestyle project并填写任务名
    • 进入configure任务配置界面
    • General 常规



      选择使用了discard old builds丢弃旧的构建防止日志过大
      选择使用参数化构建,因为运行脚本START有两个可选内容,容器数据存储路径和域名(可以跳过,因为脚本设置了默认存储路径和域名)
      选择限制项目运行的节点,因为节点选择了仅匹配标签的策略,所有使用对应标签选择该节点(图中jenkins已经显示匹配到了一个节点)
    • 源码管理

      仓库URL需要到仓库获取,凭证即登录仓库的方式,需要user+passwd
      其他默认
    • Triggers

      选择使用触发式远程构建,只要访问指定URL就可以触发构建,用于后面的触发脚本
    • Build Steps
    #测试变量
    echo "new_home变量值为"$new_home 
    echo "new_web变量值为"$new_web
    ./START.sh <<EOF
    $new_home
    $new_web
    EOF
    
    • 构建
      经过刚刚的配置,已经完成了任务的初始化,现在可以构建任务运行了
      进入刚刚配置的kod项目,选择build with parameters(因为刚刚选择了参数化构建,一般只有build)

      选择自定的选择项进行传参,他们会作为构建时的环境变量传入构建脚本
    • 结果
      构建成功
    • 令牌触发
      访问任务设置中设置的远程触发URL
      192.168.179.141:8080/job/kod/build?token=TEST

    jenkins实现kodcloud容器集群部署出现的错误
    因为出现的问题较多,单独写bolg描述

    本文著作权归作者 [ wymm ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    Copyright©2026  All Rights Reserved.  Load:0.017 s
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。