기존에 jenkins를 설정하고 다른곳에 넘어가서 새로 연결하는게 너무 귀찮았다.
그래서 어떻게 방법이 없을까 하고 찾아보다가 jenkins jobs를 다른 jenkins로 이동시키는 방법이 있기에 공유하고자 한다.
환경 : mac m1, aws ec2, docker
동작 : local docker에 설치된 jenkins를 local에 이동 -> local에서 ec2로 이동 -> ec2 docker에 설치된 jenkins로 이동
1. Local Docker에 설치된 jenkins를 Local directory로 이동
- 복사를 원하는 local directory에서, docker의 /var/jenkins_home/jobs에 접속한다
- 다음 명령어로 docker의 jenkins에 접속하면 /var/jenkins_home/jobs가 보인다.
docker exec -it [jenkins 컨테이너이름] bash
- 다음 명령어로 docker의 jenkins에 접속하면 /var/jenkins_home/jobs가 보인다.
- 도커 컨테이너에서 jobs에 존재하는 폴더를 local directory로 이동시킨다
docker cp [jenkins 컨테이너이름]:/var/jenkins_home/jobs/[폴더명] [복사되었을 때의 이름]
2. Local에서 AWS ec2로 이동
- 복사해온 jenkins jobs가 존재하는 Local에서, scp를 사용하여 ec2로 폴더를 이동시킨다
- 이때 -r 옵션을 사용해야 폴더가 옮겨진다
scp -i "ssh접근을 위한 pem키 경로" -r [복사된 jenkins jobs] ec2계정@ec2-ip-ip-ip-ip.ap-northeast-2.xxx...:~/
- 이때 -r 옵션을 사용해야 폴더가 옮겨진다
3. AWS ec2에서 Docker Jenkins로 이동
- 먼저, 폴더를 @ubuntu로 이동시켰다면 @root로 옮겨준다
sudo mv [복사한 jenkins jobs] /root/ or sudo cp [복사한 jenkins jobs] /root/
- sudo -i로 루트에 접근한 뒤, ls로 잘 복사/이동이 되었는지 확인해본다
- 복사가 잘 되었다면 다음 명령어로 Jenkins Jobs를 Docker 컨테이너로 옮겨준다
docker cp [복사한 jenkins jobs] [jenkins 컨테이너 이름]:/var/jenkins_home/jobs/
4. Jenkins Reload
- ec2 ip:젠킨스포트 로 jenkins ui에 접속한 후 다음을 따라서 Jenkins를 rerload한다
- Jenkins 관리
- Tools and Actions의 Reload COnfiguration from Disk
- 끝!
이제 ec2 젠킨스에 기존에 연결했던 project가 보일것이다!
Reference