Coding Gun

ขั้นตอนการติดตั้ง Gitlab ลงบน Linux

ในบทความนี้เราจะเริ่มมาลองติดตั้ง Gitlab ลงบน linux ซึ่งในตัวอย่างเราจะแนะนำการติดตั้งลงบน Ubuntu และ Redhat ซึ่งถือได้ว่าเป็น linux ยอดนิยม เหมาะสำหรับผู้ที่ต้องการติดตั้ง Gitlab ไว้ใช้ภายในองค์กรด้วยตัวเอง

ติดตั้ง Gitlab ลงบน Ubuntu

ขั้นตอนที่ 1 เริ่มจากการติดตั้ง dependencies ต่างๆ

ในขั้นตอนนี้จะทำการติดตั้งสิ่งที่จำเป็นต้องมีในการใช้งาน Gitlab ซึ่งเราจะใช้คำสั่ง

# ทำการ update ubuntu กันก่อน
sudo apt-get update 

# ติดตั้ง curl, openssh, ca-certificate, tzdata และ perl
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl

โดย package มีอยู่ 2 packages ที่ค่อนข้างจะแปลกตา ซึ่ง 2 packages นี้จะทำหน้าที่ ดังนี้

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

โดยขั้นตอนนี้เราจะทำการตรวจสอบ dependencies และ เพิ่ม repository เข้าไปใน source list ด้วยคำสั่งนี้

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

สามารถเปลี่ยน url จาก gitlab-ce เป็น gitlab-ee ได้ถ้าต้องการทดลอง enterprise edition

หลังจากนั้นเราก็จะทำการติดตั้่ง gitlab ด้วยคำสั่ง

sudo apt-get install gitlab-ce

ขั้นตอนที่ 3 กำหนดต่า configuration

โดย deafault gitlab จะกำหนดค่า baseurl ไว้เป็น https://gitlab.example.com ดังนั้นถ้าเราต้องการจะเข้าถึง gitlab ผ่าน url แบบนี้สิ่งที่เราต้องมีคือ

นอกจากนี้เรายังสามารถกำหนด configuration อื่นๆ ที่อยู่ในไฟล์ /etc/gitlab/gitlab.rb ยกตัวอย่างเช่นการ set SMTP server สำหรับการส่ง notification ผ่านทาง email

ถ้าเรามี smtp server ติดตั้งอยู่ใน server เดียวกัน เช่นในเครื่องมี postfix เราจะใช้แค่

gitlab_rails['smtp_enable'] = true

แต่ถ้าเราต้องเชื่อมต่อกับ smtp server ที่อยู่บน server คนละตัวเราจะใช้

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.server"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "smtp user"
gitlab_rails['smtp_password'] = "smtp password"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'

#เราสามารถเปลี่ยน email ของผู้ส่งได้ที่บรรทัดนี้
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
# หรือจะให้ตอบกลับมาที่ e-mail ไหนก็กำหนดได้ที่บรรทัดนี้
gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'

# กำหนด path ที่เก็บ certificate ที่จะใช้ใน tls protocol
gitlab_rails['smtp_ca_file'] = '/path/to/your/cacert.pem'

และทำการ update configuration ด้วยคำสั่ง

gitlab-ctl reconfigure

ถ้าไม่มี SMTP server เราสามารถติดตั้ง postfix ลงในเครื่องนี้เลยก็ได้

ขั้นตอนที่ 4 login ด้วย intial root password

เราจะใช้ password ที่ได้ generate ขึ้นมาและถูกเก็บอยู่ที่ /etc/gitlab/initial_root_password

initial root password นั้นจะถูกเก็บแค่ไว้ 24 ชม. เท่านั้น

หลังจากนั้นทำการ login เข้าไปใน gitlab ด้วย user root และ password ที่ได้จากใน file initial_root_password หลังจากนั้นระบบจะบังคับให้เราตั้ง password สำหรับ root ใหม่ และเราก็จะได้ gitlab server ที่พร้อมให้บริการแล้ว

ขั้นตอนที่ 5 ทำการ config email subscription

ในขั้นตอนนี้ถือเป็น option เสริม เราสามารถไปลงทะเบียนกับ gitlab เพื่อขอรับข่าวสารต่างๆ รวมทั้งการแจ้งเตือนด้านความปลอดภัย ซึ่งเราสามารถเข้าไปที่ Communication Preference Center และกำหนดรายละเอียดต่างๆ ดังรูป

Communication Preference Centre

ติดตั้ง Gitlab ลงบน RedHat

ขั้นตอนที่ 1 เริ่มจากการติดตั้ง dependencies ต่างๆ

ในขั้นตอนนี้จะทำการติดตั้งสิ่งที่จำเป็นต้องมีในการใช้งาน Gitlab ซึ่งเราจะใช้คำสั่ง

# ทำการ update ubuntu กันก่อน
sudo apt-get update 

# ติดตั้ง curl, openssh, ca-certificate, tzdata และ perl
sudo yum install -y curl policycoreutils openssh-server perl

policycoreutils เป็น package สำหรับเพิ่ม policy ใน SELinux

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

โดยขั้นตอนนี้เราจะทำการตรวจสอบ dependencies และ เพิ่ม repository เข้าไปใน source list ด้วยคำสั่งนี้

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

สามารถเปลี่ยน url จาก gitlab-ce เป็น gitlab-ee ได้ถ้าต้องการทดลอง enterprise edition

หลังจากนั้นเราก็จะทำการติดตั้่ง gitlab ด้วยคำสั่ง

sudo yum install -y gitlab-ce

ขั้นตอนที่ 3 กำหนดต่า configuration

โดย deafault gitlab จะกำหนดค่า baseurl ไว้เป็น https://gitlab.example.com ดังนั้นถ้าเราต้องการจะเข้าถึง gitlab ผ่าน url แบบนี้สิ่งที่เราต้องมีคือ

นอกจากนี้เรายังสามารถกำหนด configuration อื่นๆ ที่อยู่ในไฟล์ /etc/gitlab/gitlab.rb ยกตัวอย่างเช่นการ set smtp server สำหรับการส่ง notification ผ่านทาง email

ในตัวอย่างนี้เราจะใช้ gmail เป็น smtp server

# ตัวอย่างการ set gmail เป็น smtp server
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "my.email@gmail.com"
gitlab_rails['smtp_password'] = "gmail-password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'

#เราสามารถเปลี่ยน email ที่ส่งไปที่บรรทัดนี้
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
# หรือจะให้ตอบกลับมาที่ e-mail ไหนก็กำหนดได้ที่บรรทัดนี้
gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'

และทำการ update configuration ด้วยคำสั่ง

gitlab-ctl reconfigure

ขั้นตอนที่ 4 login ด้วย intial root password

เราจะใช้ password ที่ได้ generate ขึ้นมาและถูกเก็บอยู่ที่ /etc/gitlab/initial_root_password

initial root password นั้นจะถูกเก็บแค่ไว้ 24 ชม. เท่านั้น

หลังจากนั้นทำการ login เข้าไปใน gitlab ด้วย user root และ password ที่ได้จากใน file initial_root_password หลังจากนั้นระบบจะบังคับให้เราตั้ง password สำหรับ root ใหม่ และเราก็จะได้ gitlab server ที่พร้อมให้บริการแล้ว

ขั้นตอนที่ 5 ทำการ config email subscription

ในขั้นตอนนี้ถือเป็น option เสริม เราสามารถไปลงทะเบียนกับ gitlab เพื่อขอรับข่าวสารต่างๆ รวมทั้งการแจ้งเตือนด้านความปลอดภัย ซึ่งเราสามารถเข้าไปที่ Communication Preference Center และกำหนดรายละเอียดต่างๆ ดังรูป

Communication Preference Centre

อ่านต่อเพิ่มเติมได้ที่นี่

Phanupong Permpimol
Follow me