จำนวนการเปิดอ่าน 51
คะแนนเอกสาร

เนื่องจากได้กลับมาใช้ gitlab อีกครั้ง ก็เลยจะทำ backup ซะหน่อย ไปอ่านๆ  doc มันดู ปรากฏว่า มัน bacup local ธรรมดาได้แล้ว ยังส่งขึนไปบน space ของ digitalocean ได้อีกด้วย

มาเริ่มกันเลย

เริ่มจาก ไปของ API key ของ Sapce ก่อน ไปที่หน้าเว็บ https://cloud.digitalocean.com/account/api/tokens แล้วกดปุ่ม Generate New Key ได้เลยครับ มันจะได้ Key และ Secret มา ให้ก๊อปเก็บไว้ (รู้สึกว่า Secret จะดูไม่ได้อีกรอบนะครับ ต้อง เจนใหม่)

จากนั้นเปิดไฟล์ config gitlab ที่  /etc/gitlab/gitlab.rb  แก้ตรง

gitlab_rails['backup_upload_connection'] = {
   'provider' => 'AWS',
   'region' => 'sgp1',
   'aws_access_key_id' => '__API_KEY__',
   'aws_secret_access_key' => '__API_SECRET__',
   'endpoint' => 'https://sgp1.digitaloceanspaces.com'
}
gitlab_rails['backup_upload_remote_directory'] = '__NAME__'

จุดสำคัญๆ มีดังนี้ครับ

  1. endpoint ตรงนี้ต้องไปดูที่ Space -> Setting ของเราว่า มันชี้ไปที่ไหน จากนั้นก็ก๊อปมาเลยแบบในรูป
  2. เมื่อได้ endpoint แล้ว ตรง subdomain ข้างหน้าจะเป็น region ก็เอาไปใส่ให้ตรงกันครับ (อย่างในตัวอย่างมันคือ sgp1)
  3. __API_KEY__ และ __API_SECRET__ ก็คือ อันที่เราได้มาจากการ Generate Key ในขั้นตอนก่อนหน้านี้
  4. ตรง backup_upload_remote_directory  อันนี้ ใส่ชื่อ Space ของเรา

จากนั้น ก็สั่ง gitlab-ctl reconfigure  เพื่อ restart gitlab

แล้วก็ลอง backup ดูด้วยคำสั่ง gitlab-rake gitlab:backup:create  ถ้ามันใช้ได้ ก็จะขึ้นแบบนี้

อยากอัพไปแล้วไปอยู่ใน Folder ที่ต้องการใน Space ทำไง

คือไอ้ตอนแรก พอลองดู มันดันอัพไปที่ root ของ Space เรา ผมก็หาวิธีอยู่ตั้งนาน ไอ้ backup_upload_remote_directory  ชื่อมันบอกว่า เป็น directory แต่จริงๆ ก็ไม่ใช่ มันคือ bucket name ต่างหาก จะใส่เป็น  name/path/to/folder  ก็ไม่ได้

สรุปว่า ตอนสั่ง backup ให้เพิ่มไปแบบนี้ครับ

gitlab-rake gitlab:backup:create DIRECTORY=path/to/folder

จบ