背景

公司服务器缩减,运维平台迁移,以前的项目得一个一个迁移,比如gogs仓库迁移,jenkins迁移,sonarqube迁移,gogs迁移过程算是幸运,从阿里云迁移至ucloud,包括打包仓库,错误处理,总共花费2小时。在此记录一下jenkins迁移记录,后续的迁移也会一一记录的。

# 表示注释, $ 表示shell

服务器迁移准备

迁移思路

部署

## jenkins
$ cd /var/lib/jenkins
$ tar zcf jenkins.tar.gz jenkins
$ scp -P6822 jenkins.tar.gz  myhost:/data/jenkins
$ mkdir /data/jenkins/data
$ touch docker-compose.yaml
$ tree -L 1
.
├── data
└── docker-compose.yaml
version: '2'
services:
  jenkins:
    image: jenkins/jenkins:latest
    container_name: jenkins
    restart: always
    ports:
      - 18000:8080
      - 50000:50000
    volumes:
      - /data/jenkins/data:/var/jenkins_home
$ cd /data/jenkins
$ tar zcf jenkins.tar.gz
$ mv jenkins/users data/
$ mv jenkins/plugins data/
$ mv jenkins/config.xml data/
$ mv jenkins/jobs data/
$ mv jenkins/workspace data/
## 调式的时候去掉-d,便于观察日志是否有报错信息,根据报错信息依次解决.
$ docker-compose up -d

## 如果去权限错误,记得chown 修改为docker的启动用户权限;实在不777大法
$ chmod -R 777 data/
## (一路enter,记得要使用密码)
$ ssh-keggen  
$ ls ~/.ssh/
id_rsa      id_rsa.pub
## 将此密钥作为jenkins,连接远程主机执行shell脚本,实现pipeline自动化。
## 具体原理请查阅ssh原理,这里不再赘述.

总结

jenkins的部署相对简单,主要是一些插件的使用比较繁琐,需要慢慢的学习.这次迁移基本没有什么报错,一路成功.

参考