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服务器重新点击立即构建  
- 
访问网站代码已经修改成功  










