ฉันต้องการย้ายข้อมูลทั้งหมดจากการไม่บูต (ดังนั้นฉันจึงไม่สามารถสร้างการสำรองข้อมูล GitLab ได้ตามปกติ) อินสแตนซ์ GitLab บน EC2 ไปยังอินสแตนซ์ใหม่ ฉันไม่มีข้อมูลสำรอง GitLab แต่สามารถเข้าถึงดิสก์ทั้งหมดของอินสแตนซ์เก่าได้
ฉันมี:
- แยกวอลุ่มออกจากอินสแตนซ์เก่าที่ไม่ได้บูต
- เปิดตัวอินสแตนซ์ EC2 ใหม่
- แนบไดรฟ์ข้อมูลกับอินสแตนซ์ใหม่ (ไม่ใช่เป็นไดรฟ์ข้อมูลรูท เป็นไดรฟ์ข้อมูลเพิ่มเติมเป็น
/gitlab-ปริมาณ
)
- ใส่ SSH ลงในอินสแตนซ์ใหม่ ติดตั้งวอลุ่มของอินสแตนซ์เก่า
- ติดตั้ง GitLab เวอร์ชันเดียวกันทุกประการ (EE 13.10.0) ซึ่งใช้โครงสร้างไดเร็กทอรีแบบแฮช
- เปิดพอร์ต 80 ใน AWS เปิดตัวบริการ GitLab นำทางไปยัง
http://public-ip-of-my-instance
สร้างรหัสผ่านสำหรับผู้ใช้รูทและลงชื่อเข้าใช้เว็บอินเตอร์เฟสผู้ดูแลระบบ GitLab สำเร็จ ณ จุดนี้ฉันมีการติดตั้ง GitLab ที่สะอาด
- วิ่ง
gitlab-ctl หยุด
- คัดลอก
/gitlab-volume/var/opt/gitlab/git-data/repositories
ถึง /var/opt/gitlab/git-data/repositories
- เหมือนกันสำหรับ
/etc/gitlab/gitlab-secrets.json
และ /etc/gitlab/gitlab.rb
- วิ่ง
gitlab-ctl กำหนดค่าใหม่
(ฉันต้องเปลี่ยนการตั้งค่า Let's Encrypt เนื่องจากตอนนี้ฉันไม่รองรับ SSL และเห็นได้ชัดว่ามันล้มเหลวในการตรวจสอบ)
- วิ่ง
เริ่มต้น gitlab-ctl
ฉันไปที่แดชบอร์ดและยังคงแสดงราวกับว่าฉันไม่เคยคัดลอกอะไรเลย:
- หลังจากค้นหาในฟอรัม ฉันพบว่ามีสคริปต์นำเข้า
นำเข้าคราด
ดังนั้นฉันจึงลอง: gitlab-rake "gitlab:import:repos[/gitlab-volume/var/opt/gitlab/git-data/repositories]"
- อีกครั้ง (หลังจากหยุด/กำหนดค่าใหม่/เริ่ม) มันยังคงแสดงราวกับว่าไม่มีอะไรเปลี่ยนแปลงจากการติดตั้งใหม่ทั้งหมด (เหมือนกับภาพหน้าจอด้านบน)
ผมทำอะไรผิดหรือเปล่า? (BTW ฉันไม่ใช่ DevOps และไม่มีประสบการณ์ในการติดตั้ง GitLab มาก่อน แต่ฉันได้รับมอบหมายให้ทำสิ่งนี้ ดังนั้นจึงยินดีรับฟังคำชี้แจงใด ๆ ในขณะที่ตอบคำถาม)