shell脚本一键搭建jenkins服务

本文介绍如何通过shell脚本在内网环境下一键安装Docker,配置Docker服务,并从私服拉取Jenkins镜像,同时保留之前安装的所有插件。通过将插件所在目录打包并挂载至新容器,实现Jenkins服务及其插件的一键迁移。

背景

目前有个docker启动的jenkins机器在运行,该jenkins服务上已经安装了很多需要的插件。现在想写个shell脚本在一台干净的机器上一键安装docker,拉取jenkins镜像并启动容器,但是这个jenkins容器中需要有之前安装过的插件。

问题

直接使用docker commit命令从原先的jenkins容器创建一个新的镜像,在另外的机器上启动这个镜像,发现jenkins服务没有任何插件,还是需要自己安装插件。commit没有生效的原因是因为之前的jenkins容器启动时挂载了宿主机的目录(/var/jenkins_home),安装的插件都在宿主机。

方案

将之前的jenkins容器挂载的目录整个打包,直接启动时解压这个包放到指定的目录,启动jenkins容器时挂载这个目录即可。(后续定期对这个目录进行打包留作备份,防止数据丢失)

cd /var
tar -cvf jenkins_home.tar jenkins_home

shell脚本

这里的操作环境是内网,所以docker是离线安装,内网搭建的harbor私服(配置了HTTPS访问),配置了DNS。
脚本名:install.sh
同级目录下的文件:docker-18.06.1-ce.tgz、ca.crt、jenkins_home.tar

#!/bin/bash

#安装docker
tar -xvf docker-18.06.1-ce.tgz

#把解压的docker文件移到/usr/bin目录下
cp docker/* /usr/bin

#删除解压的目录
rm -rf docker 

#docker配置文件
if [ ! -f /etc/systemd/system/docker.service ]; then
    touch /etc/systemd/system.docker.service
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值