Jenkins结合shell+expect脚本完成线上环境自动构建部署

0?wx_fmt=jpeg
        如果jenkins部署在内网,而生产环境存在DMZ区的话,此方式就不太适合了,需要考虑其它方式来部署升级。

        由于jenkins部署在内网,生产环境在公网,所以中间需要一个安装包转移的过程,将内网的安装包copy到远程公网对应位置,可采用scp命令,同样也可以采用上传到远程服务器,在公网服务器上get下来,笔者采用是scp的方式。

        采用scp存在一个问题,此命令会与人产生交互,无法在shell中自动完成,此时需要借助另外一个工具expect(Tcl语言的另一个衍生版),上篇文章已经介绍到【如何编写无须人工干预的shell脚本

脚本如下:

#!/usr/local/bin/expect

set timeout 30

set password xxxxxx

spawn scp -P 10010 /usr/local/src/portal.war root@218.76.43.83:/home/server/apache-tomcat-7.0.70/webapps

 expect {

 "(yes/no)?"

  {

  send "yes\n"

  expect "*assword:" { send "$password\n"}

 }

 "*assword:"

{

 send "$password\n"

}

}

expect "100%"

expect eof

spawn ssh -l root 118.36.23.113 -p 10000 #远程登陆

expect "*assword:" { send "$password\n"}

expect "*#"

send "echo get into directory\r"

expect "*#"

send "cd /home/shell\r"#存放脚本的目录

expect "*#"

send "sh server-restart.sh \r" #远程的启动脚本

expect "*#"

#send "exit\r" -- 希望执行完sh脚本,退出远程服务。这么做导致war包部署时异常,这里要注释掉,统一交由jenkins的job来终结

expect "100%"

expect eof

interact

server-restart.sh脚本内部就如之前一篇《利用jenkins实现自动构建、部署,提升团队开发效率》中有提到,内容类似,这里不再赘述。

传送门:

1、如何编写无须人工干预的shell脚本

2、Jenkins构建部署后,服务无法在后台持续运行的解决方案

歪脖贰点零 ∣一个十年码农的日常碎碎念

640?wx_fmt=jpeg

640?wx_fmt=png

长按,识别二维码,加关注,获取更多精彩内容

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是 Docker + Jenkins + Gitlab+Harbor 自动构建部署的详细资料: 1. Docker Docker 是一种容器化技术,可以将应用程序及其依赖项打包为一个可移植的容器,从而实现快速、一致和可靠的部署。 2. Jenkins Jenkins 是一种开源的自动化服务器,可以用于自动构建、测试和部署软件。 3. Gitlab Gitlab 是一种基于 Git 的代码托管平台,可以管理源代码、问题和合并请求等。 4. Harbor Harbor 是一种开源的 Docker 镜像仓库,可以存储和管理 Docker 镜像。 下面是 Docker + Jenkins + Gitlab+Harbor 自动构建部署的步骤: 1. 创建一个 Gitlab 仓库,用于存储应用程序代码。 2. 在 Jenkins 中创建一个新项目,并配置 Gitlab 的 Webhook,以便在代码推送到 Gitlab 时触发构建。 3. 在 Jenkins 中配置 Docker 插件,以便在构建完成自动构建 Docker 镜像。 4. 在 Jenkins 中配置 Harbor 插件,以便在构建完成自动将 Docker 镜像上传到 Harbor 镜像仓库。 5. 在 Jenkins 中配置部署脚本,以便在 Docker 镜像上传到 Harbor 后自动部署到目标服务器。 6. 在 Gitlab 中配置 CI/CD 流水线,以便在代码推送到 Gitlab 后自动触发 Jenkins 构建部署流程。 7. 测试自动构建部署流程,确保能够自动构建、上传和部署 Docker 镜像。 总之,Docker + Jenkins + Gitlab+Harbor 自动构建部署可以大大提高软件开发和部署的效率,可以快速构建、测试和部署应用程序,从而实现持续集成和持续交付。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MavenTalk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值