Migrate Gitlab from GCP to AWS

2 min readJan 22, 2020

ขั้นตอนการย้าย Gitlab จาก GCP ไปยัง AWS

ปกติแล้ว Gitlab ที่ใช้นั้น run อยู่บน GCP แต่เนื่องจากได้ Credit ฟรีจากทาง AWS มาจึงไม่รอช้าที่จะย้าย Gitlab มาไว้ที่ AWS :)

ขั้นตอนหลักๆ นั้นง่ายๆ ไม่ซับซ้อนตามนี้เลย

  1. ไปสร้าง Gitlab และ Gitlab Runner ไว้ที่ AWS
  2. ทำการ backup database ไฟล์ config ของ Gitlab และ Runner จาก GCP ไว้
  3. Restore database และ ไฟล์ config ต่างๆของ Gitlab และ Runner บน AWS

จบแล้วครับ 😅

.
.
.

จบเร็วไป ขออธิบายแต่ละขั้นตอนเพิ่มแล้วกันนะครับ :)

สร้าง Gitlab และ Runner บน AWS

  • เริ่มจากสร้าง Gitlab ไปที่ EC2 เลือก Launch Instance จากนั้นให้ search Gitlab แล้วเลือก version ตามตัวเก่าบน GCP

ย้ำ เลือก version เพราะบาง version นั้นไม่สามารถ restore backup files ของ version อื่นได้ ลองเช็คให้ดีก่อน พอสร้างเสร็จก็พร้อมใช้งานแล้ว แค่ config เพิ่มนิดหน่อย

Backup ข้อมูล Gitlab จาก GCP

  • ง่ายมากๆ เข้าไปที่ Instance Gitlab จากนั้น ก็ตามนี้
sudo gitlab-backup create# example backup name
1493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar

และที่ขาดไม่ได้เลยคือ ไฟล์ config

/etc/gitlab/gitlab-secrets.json
/etc/gitlab/gitlab.rb
  • Instance Runner ก็มีไฟล์ config ที่ต้องเก็บเหมือนกัน
/etc/gitlab-runner/config.toml

Backup เสร็จเรียบร้อย มาต่อกันเลย

Restore ค่า Database และ config ต่างๆบน AWS

  • เริ่มจาก Instance Gitlab ทำการ Copy ไฟล์ไปไว้ใน path backups ของ Gitlab ก่อน
sudo cp 11493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar /var/opt/gitlab/backups/ sudo chown git.git /var/opt/gitlab/backups/11493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar

หลังจาก Copy ไฟล์ backup มาแล้ว ทำการ Stop process

sudo gitlab-ctl stop unicorn 
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
# Verify
sudo gitlab-ctl status

Restore Database โดยใช้คำสั่ง

# This command will overwrite the contents of your GitLab database! sudo gitlab-backup restore BACKUP=1493107454_2018_04_25_10.6.4-ce

*ชื่อ backup ให้ตรงกับ ไฟล์ที่ Copy มาใส่ใน path backups

Copy ไฟล์ config ต่างๆมาใส่ แล้วทำการ reconfig โดย

sudo gitlab-ctl reconfigure 
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true
  • ส่วน Instance Runner ให้ทำการ Register เข้ากับ Gitlab แล้วตั้งค่า config ตามตัวเก่าที่ Backup มา เท่านี้ก็เสร็จเรียบร้อย

บทความนี้อาจจะไม่ค่อยละเอียดเท่าไร ถ้าอยากเข้าใจแต่ละขั้นตอน ให้เข้าไปดูที่ Doc ของ Gitlab ได้เลยครับ บทความนี้ผมทำเพื่อกันลืม เผื่ออนาคตได้ย้ายอีก

ขอบคุณที่ติดตามครับ [ I ❤ Bug ]

--

--

Theerawat Kaewchote
Theerawat Kaewchote

No responses yet