ข้ามไปยังเนื้อหาหลัก

เซิร์ฟเวอร์เฉพาะ: ติดตั้ง GitLab บน Linux

คู่มือนี้ถูกสร้างขึ้นด้วยผลิตภัณฑ์ดังต่อไปนี้:

(รายละเอียดอาจแตกต่างกันไปตามผลิตภัณฑ์จากผู้ให้บริการต่างๆ แต่แนวคิดหลักยังคงเหมือนเดิม)

แนะนำ

GitLab คือแพลตฟอร์ม DevOps ครบวงจรที่ช่วยให้ทีมสามารถทำงานร่วมกันบนโค้ด อัตโนมัติกระบวนการทำงาน และจัดการวงจรการพัฒนาซอฟต์แวร์ทั้งหมดได้อย่างมีประสิทธิภาพ ในคู่มือนี้จะอธิบายการติดตั้ง GitLab บนเซิร์ฟเวอร์ Linux

การเตรียมตัว

ข้อกำหนดต่อไปนี้ได้รับการแนะนำโดยทีมงาน GitLab อย่างเป็นทางการ และแนะนำอย่างยิ่งให้ปฏิบัติตามข้อกำหนดล่วงหน้าเพื่อหลีกเลี่ยงปัญหาและความไม่สะดวกในภายหลัง

ฮาร์ดแวร์

อุปกรณ์ขั้นต่ำแนะนำ
CPU2x 2 GHz4x 2.6+ GHz
RAM4 GB8 GB
พื้นที่จัดเก็บ10 GB50+ GB
แบนด์วิดท์100 mbit/s (อัปโหลด & ดาวน์โหลด)100 mbit/s (อัปโหลด & ดาวน์โหลด)

ซอฟต์แวร์

แพลตฟอร์มตัวเลือก
ระบบปฏิบัติการUbuntu (20.04, 22.04, 24.04), Debian(10, 11, 12), OpenSUSE (15.5)
ฐานข้อมูลPostgreSQL 14.9+
เว็บเซิร์ฟเวอร์NGINX (มาพร้อมกับ GitLab), Puma 6.4.2+
อื่นๆRedis 7.x+, Sidekiq 7.3.2+, Prometheus 2.54.1+
ข้อมูล

สำหรับข้อมูลสเปคที่แม่นยำและอัปเดตที่สุด กรุณาอ้างอิงเอกสาร ข้อกำหนดฮาร์ดแวร์ อย่างเป็นทางการของ GitLab

การเตรียมตัว

ต้องเชื่อมต่อผ่านไคลเอนต์ SSH เพื่อทำการติดตั้ง GitLab บนเซิร์ฟเวอร์ Linux ของคุณ ดูคู่มือ การเข้าถึงเบื้องต้น (SSH) เพื่อเรียนรู้เพิ่มเติม

เมื่อเชื่อมต่อสำเร็จแล้ว คุณสามารถเริ่มติดตั้งแพ็กเกจที่จำเป็นสำหรับการติดตั้ง GitLab ได้เลย

ขั้นตอนที่ 1: ติดตั้ง Dependencies

ก่อนอื่น คุณต้องติดตั้ง dependencies บางตัวเพื่อให้ตัวติดตั้ง GitLab ทำงานได้ ใช้คำสั่งต่อไปนี้เพื่อติดตั้ง dependencies ที่จำเป็นบนเซิร์ฟเวอร์ Linux ของคุณ

อัปเดตรายการแพ็กเกจเป็นเวอร์ชันล่าสุดและติดตั้งแพ็กเกจ OpenSSH Server พร้อม dependencies ที่จำเป็นโดยใช้คำสั่งนี้ นี่คือวิธีที่แดชบอร์ดเว็บของ GitLab จะถูกโฮสต์

sudo apt update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl

คุณสามารถติดตั้ง Postfix (เซิร์ฟเวอร์ SMTP) หากต้องการส่งการแจ้งเตือนทางอีเมลเมื่อใช้ GitLab ซึ่งเป็น ตัวเลือกเสริม

ถ้าต้องการใช้การแจ้งเตือนทางอีเมล ให้ติดตั้ง Postfix ด้วยคำสั่งนี้

sudo apt-get install -y postfix
ข้อมูล

ระหว่างติดตั้ง Postfix อาจมีหน้าการตั้งค่าแสดงขึ้นมา ในกรณีนี้ ให้เลือก 'Internet Site' แล้วกด Enter ใช้ DNS ภายนอกของเซิร์ฟเวอร์ Linux ของคุณสำหรับ 'mail name' แล้วกด Enter หากมีหน้าจอเพิ่มเติม ให้กด Enter เพื่อยอมรับค่าดีฟอลต์

ถ้าคุณต้องการใช้โซลูชันอื่นในการส่งอีเมล ให้ข้ามขั้นตอนนี้และ ตั้งค่าเซิร์ฟเวอร์ SMTP ภายนอก หลังจากติดตั้ง GitLab บนเซิร์ฟเวอร์ Linux ของคุณตามคู่มือจากทีม GitLab อย่างเป็นทางการ

ขั้นตอนที่ 2: ติดตั้ง GitLab

หลังจากดาวน์โหลดและติดตั้ง dependencies ที่จำเป็นทั้งหมดแล้ว คุณก็พร้อมที่จะติดตั้ง GitLab

ในคู่มือนี้ เราจะติดตั้ง GitLab โดยตรงจากที่เก็บแพ็กเกจอย่างเป็นทางการ

สคริปต์ต่อไปนี้จะเพิ่มที่เก็บ GitLab ลงในตัวจัดการแพ็กเกจ apt:

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

เมื่อเสร็จแล้ว สามารถติดตั้งแพ็กเกจ gitlab-ee ได้:

sudo apt-get install -y gitlab-ee

เมื่อกระบวนการนี้เสร็จสิ้น คุณจะมี GitLab พร้อมใช้งานบนเซิร์ฟเวอร์ Linux ของคุณ ต่อไปให้ดำเนินการในส่วนถัดไปเพื่อกำหนดค่าการตั้งค่าที่จำเป็นเพื่อให้เซิร์ฟเวอร์ทำงานได้

ขั้นตอนที่ 3: กำหนดค่า GitLab

เพื่อให้แน่ใจว่าทุกอย่างทำงานได้ คุณต้องแก้ไขไฟล์การตั้งค่า เริ่มต้นด้วยการเปิดไฟล์การตั้งค่า GitLab โดยใช้โปรแกรมแก้ไขข้อความที่คุณชอบ ตัวอย่างนี้จะใช้โปรแกรมแก้ไข nano ที่ติดตั้งมาแล้ว

sudo nano /etc/gitlab/gitlab.rb

ถัดไป ค้นหาบรรทัด external_url และกรอกโดเมนของคุณ หรือกรอกที่อยู่ IP ของเซิร์ฟเวอร์ Linux ของคุณหากคุณไม่มีโดเมนสำหรับใช้กับ GitLab

## GitLab URL
##! URL ที่ GitLab จะเข้าถึงได้
##! สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่า external_url ดูที่:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! หมายเหตุ: ระหว่างการติดตั้ง/อัปเกรด ค่าของตัวแปรแวดล้อม
##! EXTERNAL_URL จะถูกใช้เพื่อเติม/แทนที่ค่านี้
##! บนอินสแตนซ์ AWS EC2 เราจะพยายามดึงโฮสต์เนมหรือที่อยู่ IP สาธารณะ
##! จาก AWS ดูรายละเอียดเพิ่มเติมที่:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'http`s`://`โดเมนของคุณ / ที่อยู่ IPv4 ของเซิร์ฟเวอร์ Linux`'

นอกจากนี้ เราแนะนำให้กรอกอีเมลของคุณในบรรทัด letsencrypt['contact_emails'] เพื่อให้ Let's Encrypt สามารถส่งการแจ้งเตือนและติดต่อคุณเกี่ยวกับใบรับรอง SSL อัตโนมัติและฟรี

บันทึก

คุณต้องใช้โดเมนถ้าต้องการรับใบรับรอง SSL ฟรีจาก Let's Encrypt ไม่สามารถขอใบรับรองโดยตรงกับที่อยู่ IP ได้

################################################################################
# การรวม Let's Encrypt
################################################################################
# letsencrypt['enable'] = nil
# letsencrypt['contact_emails'] = [`อีเมลของคุณที่นี่`] # ควรเป็นอาร์เรย์ของที่อยู่อีเมลสำหรับติดต่อ
# letsencrypt['group'] = 'root'
# letsencrypt['key_size'] = 2048
# letsencrypt['owner'] = 'root'
# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'
# ดู https://docs.gitlab.com/omnibus/settings/ssl/index.html#renew-the-certificates-automatically สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าเหล่านี้
# letsencrypt['auto_renew'] = true
# letsencrypt['auto_renew_hour'] = 0
# letsencrypt['auto_renew_minute'] = nil # ควรเป็นตัวเลขหรือสคริปต์ cron ถ้ามีระบุ
# letsencrypt['auto_renew_day_of_month'] = "*/4"
# letsencrypt['auto_renew_log_directory'] = '/var/log/gitlab/lets-encrypt'
# letsencrypt['alt_names'] = []
เคล็ดลับ

คุณสามารถใช้ CTRL+W เพื่อค้นหา letsencrypt['contact_emails'] แล้วกด Enter เพื่อไม่ต้องค้นหาไฟล์ทั้งหมดด้วยตนเอง

เมื่อพร้อมแล้ว กด CTRL+X ตามด้วย Y แล้วกด Enter เพื่อยืนยันการเปลี่ยนแปลง

สุดท้าย รันคำสั่งนี้เพื่อกำหนดค่า GitLab ใหม่ด้วยตัวเลือกการตั้งค่าใหม่

sudo gitlab-ctl reconfigure

กระบวนการนี้อาจใช้เวลาสักครู่เพราะจะเริ่มต้น GitLab โดยใช้ข้อมูลการตั้งค่าใหม่แบบอัตโนมัติ ใบรับรอง SSL จะถูกออกให้ถ้าใช้โดเมน

ขั้นตอนที่ 4: เข้าถึงเว็บอินเทอร์เฟซ

หลังจากการเริ่มต้น เซิร์ฟเวอร์ควรเข้าถึงได้ผ่านเว็บเบราว์เซอร์ ไปที่เว็บไซต์ของคุณโดยกรอกชื่อโดเมนหรือที่อยู่ IP ดังนี้

https://[your_domain] OR http://[your_ip_address]

เมื่อเข้าครั้งแรก คุณจะเจอหน้าล็อกอิน

เพื่อเข้าสู่ระบบด้วยสิทธิ์แอดมินครั้งแรก ให้ล็อกอินด้วยผู้ใช้ root โดยใช้ชื่อผู้ใช้ root

สำหรับรหัสผ่าน คุณต้องเข้าไปดูไฟล์บนเซิร์ฟเวอร์ Linux ที่เก็บรหัสผ่านไว้ ใช้คำสั่งนี้เพื่อเปิดไฟล์และค้นหาฟิลด์ Password

sudo nano /etc/gitlab/initial_root_password
# WARNING: ค่านี้ใช้ได้เฉพาะในเงื่อนไขต่อไปนี้

# 1. ถ้ากำหนดด้วยตนเอง (ผ่านตัวแปรแวดล้อม `GITLAB_ROOT_PASSWORD` หรือผ่านการตั้งค่า `gitlab_rails['initial_root_password']` ใน `gitlab.rb` ก่อนฐานข้อมูลจะถูกสร้างครั้งแรก)

# 2. รหัสผ่านยังไม่ถูกเปลี่ยนด้วยตนเอง ไม่ว่าจะผ่าน UI หรือคำสั่ง

#

# ถ้ารหัสผ่านที่แสดงไม่ทำงาน คุณต้องรีเซ็ตรหัสผ่านแอดมินตาม https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password

Password: `[รหัสผ่านของคุณอยู่ที่นี่]`

# หมายเหตุ: ไฟล์นี้จะถูกลบอัตโนมัติในการรัน reconfigure ครั้งแรกหลัง 24 ชั่วโมง

กรอกชื่อผู้ใช้และรหัสผ่านในหน้าล็อกอินเพื่อเข้าสู่แดชบอร์ด GitLab ครั้งแรก คุณจะสามารถเข้าถึงแผงควบคุม GitLab บนเซิร์ฟเวอร์ Linux ของคุณได้แล้ว

เราแนะนำอย่างยิ่งให้สร้างผู้ใช้ใหม่และ/หรือเปลี่ยนรหัสผ่านของผู้ใช้ root คุณสามารถทำทั้งหมดนี้ได้โดยเข้าไปที่ Admin มุมล่างซ้าย แล้วเลือก Overview->Users ในหน้านี้คุณจะจัดการผู้ใช้สำหรับอินสแตนซ์ GitLab ของคุณได้

ตัวเลือกเสริม: ตั้งค่าไฟร์วอลล์ด้วย ufw

คุณสามารถข้ามส่วนนี้ได้ถ้าไม่ต้องการตั้งค่าไฟร์วอลล์ หรือถ้าใช้ firewalld บน OpenSUSE อยู่แล้ว ตรวจสอบให้แน่ใจว่าอนุญาตพอร์ต 80/443 และพอร์ต 22

ติดตั้ง ufw

ถ้าคุณติดตั้ง ufw แล้ว สามารถข้ามขั้นตอนนี้ได้เลย

sudo apt-get install -y ufw

เปิดพอร์ตที่จำเป็น

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

เปิดใช้งานไฟร์วอลล์

คำเตือน

คำสั่งนี้จะบล็อกการเข้าถึงพอร์ตทั้งหมดที่ไม่ได้อนุญาตไว้โดยค่าเริ่มต้น ตรวจสอบให้แน่ใจว่า whitelist ถูกตั้งค่าอย่างถูกต้องก่อนรันคำสั่งนี้

เพื่อให้ไฟร์วอลล์ทำงาน ให้เปิดใช้งานด้วยคำสั่งนี้

sudo ufw enable

สรุป

ยินดีด้วย คุณติดตั้ง GitLab สำเร็จแล้ว! หากมีคำถามหรือปัญหาเพิ่มเติม ติดต่อทีมซัพพอร์ตของเราได้เลย พร้อมช่วยเหลือคุณทุกวัน!

ถ้าต้องการตั้งค่าเพิ่มเติม เราแนะนำให้อ่าน เอกสาร GitLab อย่างเป็นทางการ สำหรับขั้นตอนถัดไป