เนื่องจากได้กลับมาใช้ 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__'
`
จุดสำคัญๆ มีดังนี้ครับ
endpoint ตรงนี้ต้องไปดูที่ Space > Setting ของเราว่า มันชี้ไปที่ไหน จากนั้นก็ก๊อปมาเลยแบบในรูป
เมื่อได้ endpoint แล้ว ตรง subdomain ข้างหน้าจะเป็น region ก็เอาไปใส่ให้ตรงกันครับ (อย่างในตัวอย่างมันคือ sgp1)
__API_KEY__
และ __API_SECRET__
ก็คือ อันที่เราได้มาจากการ Generate Key ในขั้นตอนก่อนหน้านี้
ตรง backup_upload_remote_directory
อันนี้ ใส่ชื่อ Space ของเรา
จากนั้น ก็สั่ง gitlab-ctl reconfigure
เพื่อ restart gitlab
แล้วก็ลอง backup ดูด้วยคำสั่ง gitlab-rake gitlab:backup:create
ถ้ามันใช้ได้ ก็จะขึ้นแบบนี้
คือไอ้ตอนแรก พอลองดู มันดันอัพไปที่ root ของ Space เรา ผมก็หาวิธีอยู่ตั้งนาน ไอ้ backup_upload_remote_directory
ชื่อมันบอกว่า เป็น directory แต่จริงๆ ก็ไม่ใช่ มันคือ bucket name ต่างหาก จะใส่เป็น name/path/to/folder
ก็ไม่ได้
สรุปว่า ตอนสั่ง backup ให้เพิ่มไปแบบนี้ครับ
gitlab-rake gitlab:backup:create DIRECTORY=path/to/folder
จบ