jenkins来实现代码的上线

脚本:
    1.进入对应的目录
    2.打包
    3.scp推送
  • 脚本内容:html_deploy.sh
#!/usr/bin/bash

Date=$(date +%F-%H-%M)
web_server="192.168.111.22 192.168.111.23"
code_tar () {
        cd /var/lib/jenkins/workspace/freestyle-monitor
        tar czf /opt/web-${Date}.tar.gz ./*
}

scp_web () {
    for host in $web_server
    do
        scp -r /opt/web-${Date}.tar.gz root@${host}:/code/
        ssh root@${host} "mkdir -p /code/web-${Date} && \
                    tar xf /code/web-${Date}.tar.gz -C /code/web-${Date} && \
                    rm -f /code/web-${Date}.tar.gz && \
                    rm -rf /code/web && \
                    ln -s /code/web-${Date} /code/web"
    done
}

deploy () {
        code_tar
        scp_web
}

        deploy
  • jenkins系统与web系统需要密钥配置,所有将jenkins主机的公钥发送到两台web主机即可
[root@jenkins /scripts]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.111.23
#脚本需要添加执行权限
[root@jenkins /scripts]# chmod +x html_deploy.sh 
[root@jenkins /scripts]# sh -x html_deploy.sh    #测试执行脚本运行 
  • 查看系统已经存在web站点代码 在这里插入图片描述

  • jenkins服务配置,继承“9.搭建一套。。。”的jenkins配置的基础上添加shell命令:sh -x /scripts/html_deploy.sh 在这里插入图片描述

  • 由于Jenkins服务默认系统用户是jenkins。所有需要在配置文件中修改为root用户,减少很多权限问题 在这里插入图片描述

  • 重启jenkins服务

systemctl restart jenkins.service
  • jenkins服务上点击立即构建,构建成功 在这里插入图片描述

  • 生成最新代码 在这里插入图片描述

  • 访问网站成功 在这里插入图片描述

测试修改代码文件重新集成

  • 修改代码 在这里插入图片描述

  • 重新提交gitlab仓库 在这里插入图片描述

  • jenkins服务器重新点击立即构建 在这里插入图片描述

  • 访问网站代码已经修改成功 在这里插入图片描述