Anonim

ทำไมต้อง Gitlab

ลิงค์ด่วน

  • ทำไมต้อง Gitlab
  • ติดตั้ง
  • ติดตั้งการพึ่งพา
  • ติดตั้ง Gitlab
  • เรียกใช้การตั้งค่า
  • ตั้งค่าเริ่มต้น
  • ตั้งค่า SSH
    • สำหรับ SSH ปกติ
  • กำหนดค่า UFW
  • การปิดความคิด

มีตัวเลือกที่ยอดเยี่ยมมากมายสำหรับการโฮสต์โครงการของคุณและแบ่งปันรหัสของคุณ คุณสามารถไปตั้งค่าบัญชี Github ได้ฟรีทันที ดังนั้นทำไมคุณต้องการที่จะผ่านปัญหาในการตั้งค่า Gitlab ด้วยตัวคุณเอง?

มีสองสามข้อโต้แย้งที่ดีสำหรับมันจริง ๆ แล้วไม่ใช่ความเป็นส่วนตัว Gitlab เป็นของคุณ คุณเป็นเจ้าภาพและคุณเป็นเจ้าของมัน ดังนั้นคุณสามารถควบคุมผู้ที่สามารถเข้าถึงที่เก็บของคุณได้ นั่นหมายความว่าคุณสามารถควบคุมแพลตฟอร์มได้ด้วยตนเอง คุณไม่ได้อยู่ภายใต้นโยบายขององค์กรการเปลี่ยนแปลงราคาหรือการรวบรวมข้อมูลโดยพลการ

การควบคุมเวอร์ชันที่โฮสต์เองนั้นหมายความว่าคุณไม่ได้พึ่งพาบริการในการเข้าถึงรหัสของคุณ แน่นอนว่าโอกาสของ Github หรือบริการอื่น ๆ ที่ไม่สามารถให้บริการได้อย่างสมบูรณ์เนื่องจากไฟดับ แต่คุณไม่ต้องการที่จะเป็นไปได้หรือไม่?

Gitlab นั้นง่ายต่อการติดตั้งและต้องการเพียงแค่คุณมีเซิร์ฟเวอร์ Linux ที่ใช้งานซอฟต์แวร์โอเพ่นซอร์ส Gitlab ซึ่งส่วนใหญ่มาพร้อมการกำหนดค่าล่วงหน้าและพร้อมใช้งาน

ติดตั้ง

ก่อนที่คุณจะเริ่มคุณจะต้องตั้งค่า VPS เพื่อโฮสต์ Gitlab เว้นแต่คุณจะวางแผนการโฮสต์ไว้ในเครื่อง บริษัท ที่ให้บริการพื้นที่เช่น DigitalOcean และ Linode เสนอตัวเลือกที่คุ้มค่าซึ่งสามารถทำให้เซิร์ฟเวอร์ของคุณทำงานได้

คุณควรซื้อชื่อโดเมนสำหรับเซิร์ฟเวอร์ของคุณด้วยเช่นกัน หรือคุณสามารถชี้โดเมนย่อยของชื่อโดเมนที่มีอยู่ที่เซิร์ฟเวอร์ Gitlab ของคุณ ไม่ว่าจะด้วยวิธีใดจะทำให้เข้าถึงเว็บอินเตอร์เฟสได้ง่ายขึ้น

คู่มือนี้จะเป็นไปตาม Ubuntu 16.04 LTS มันเป็นรุ่นล่าสุดที่สนับสนุน Ubuntu ในระยะยาวและใช้งานง่ายมาก Debian Stretch (Stable) ก็เป็นตัวเลือกที่ยอดเยี่ยมและคู่มือนี้ส่วนใหญ่ก็ใช้งานได้เช่นกัน ทั้ง DigitalOcean และ Linode จะตั้งค่าเซิร์ฟเวอร์ของคุณด้วยระบบปฏิบัติการที่คุณเลือกดังนั้นไม่จำเป็นต้องติดตั้ง Ubuntu

ติดตั้งการพึ่งพา

เมื่อคุณบูท Ubuntu ครั้งแรกขอแนะนำให้คุณอัปเดตระบบเพื่อให้แน่ใจว่าไม่มีการแก้ไขความปลอดภัยใด ๆ ไปข้างหน้าและทำสิ่งนั้นก่อน

$ sudo apt อัปเดต $ sudo apt อัปเกรด

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

$ sudo apt ติดตั้ง curl openssh-server คำนำหน้าหลังใบรับรอง ca

แค่นั้นแหละ. คุณพร้อมที่จะเรียกใช้สคริปต์ตัวติดตั้ง Gitlab แล้ว

ติดตั้ง Gitlab

Gitlab รักษาที่เก็บ Debian / Ubuntu ของตัวเอง หากต้องการเปิดใช้งานที่เก็บข้อมูลบนเซิร์ฟเวอร์ของคุณให้ดาวน์โหลดและเรียกใช้สคริปต์การติดตั้งที่สะดวกโดยทีมงาน Gitlab

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

ที่อาจดูเหมือนมาก แต่ก็แค่ดาวน์โหลดสคริปต์และบอกให้เชลล์บรรทัดคำสั่งเรียกใช้ สคริปต์จะใช้เวลาสองสามวินาทีในการเรียกใช้และตั้งค่าที่เก็บ เมื่อทำแล้วคุณจะพร้อมติดตั้งแพ็คเกจ Gitlab

$ sudo apt ติดตั้ง gitlab-ce

การติดตั้งนั้นจะใช้เวลาสักครู่ Gitlab มาในแพ็คเกจใหญ่ที่เรียกว่า“ Omnibus package” มันมาพร้อมกับทุกสิ่งที่ Gitlab ต้องการมารวมเข้าด้วยกัน

เรียกใช้การตั้งค่า

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

$ sudo gitlab-ctl ตั้งค่าใหม่

สคริปต์จะใช้เวลาสองสามนาทีในการทำงานทุกอย่าง ส่วนใหญ่เป็นการตั้งค่าแบ็กเอนด์ฐานข้อมูลสำหรับ Gitlab คุณจะเห็นการโยกย้าย Ruby on Rails จำนวนมากบนหน้าจอ อาจใช้เวลาสักครู่ แต่เมื่อเสร็จแล้ว Gitlab จะพร้อมใช้งาน

ตั้งค่าเริ่มต้น

เปิดเว็บเบราว์เซอร์ของคุณและนำทางไปยังเซิร์ฟเวอร์ Gitlab ของคุณ คุณจะได้รับการต้อนรับจากหน้าเว็บที่ขอให้คุณตั้งรหัสผ่านผู้ดูแลระบบ นี่คือรหัสผ่านสำหรับบัญชีผู้ดูแลระบบของคุณ โดยค่าเริ่มต้นชื่อบัญชีนั้นคือ“ รูต”

หลังจากตั้งค่าบัญชีแล้วคุณสามารถลงชื่อเข้าใช้หรือลงทะเบียนบัญชีผู้ใช้ทั่วไปและลงชื่อเข้าใช้ไม่ว่าด้วยวิธีใดเมื่อคุณลงชื่อเข้าใช้คุณจะสามารถเข้าถึงแผงควบคุม Gitlab ทั้งหมดเพื่อสร้างและจัดการที่เก็บ

ตั้งค่า SSH

คุณไม่ต้องการที่จะผลักดันการเปลี่ยนแปลงในโครงการของคุณโดยใช้รหัสผ่าน มันเป็นความเจ็บปวดและมันไม่ปลอดภัยมาก สิ่งที่ดีที่สุดที่คุณสามารถทำได้คือสร้าง SSH เพื่อเข้าสู่ระบบโดยอัตโนมัติจากคอมพิวเตอร์เครื่องใด ๆ ที่มีการติดตั้งกุญแจ

ปุ่ม SSH นั้นง่ายต่อการสร้างบน Linux และ Mac บน Windows 10 กระบวนการควรเหมือนกันผ่านแอพ OpenSSH ที่มีอยู่

เปิดเทอร์มินัลแล้วเรียกใช้คำสั่งต่อไปนี้เพื่อสร้างคีย์ของคุณ คุณสามารถออกจากส่วน -C '' หากคุณต้องการใช้ข้อมูลเข้าสู่ระบบของคอมพิวเตอร์ของคุณ มิฉะนั้นที่อยู่อีเมลมักจะเป็นการโทรที่ถูกต้อง

$ ssh-keygen -b 4096 -t rsa -C ''

กระบวนการนี้จะนำคุณสู่ขั้นตอนต่างๆ ค่าเริ่มต้นส่วนใหญ่ดีและทุกอย่างค่อนข้างอธิบายตนเอง หากคุณเลือกที่จะเชื่อมโยงรหัสผ่านกับรหัสของคุณคุณจะต้องใช้รหัสผ่านนั้นทุกครั้งที่คุณล็อกอินหรือผลักดันการเปลี่ยนแปลง คุณสามารถปล่อยให้รหัสผ่านว่างเปล่าเพื่อไม่ให้ใช้รหัสผ่านได้

หากต้องการดูกุญแจของคุณให้เรียกใช้คำสั่งด้านล่าง มันจะดูเหมือนไร้สาระพวงและโดยพื้นฐานแล้วมันเป็นกุญแจของคุณ คุณจะต้องคัดลอกออกจากเทอร์มินัลและวางใน Gitlab

$ cat ~ / .ssh / id_rsa.pub

กลับไปที่ Gitlab คลิกที่ไอคอนโปรไฟล์ที่ด้านบนขวาของหน้าจอ จากนั้นคลิก“ การตั้งค่า” บนเมนูผลลัพธ์ ในเมนูทางด้านซ้ายของหน้าคลิก“ คีย์ SSH”

คัดลอกคีย์จากเทอร์มินัลของคุณ เริ่มต้นหลังจาก“ ssh-rsa” และหยุดก่อนที่อยู่อีเมลของคุณ ดังนั้นเพียงคัดลอกส่วนไร้สาระ วางลงในกล่องขนาดใหญ่ที่มีชื่อว่า“ คีย์” ตั้งชื่อคีย์ของคุณแล้วบันทึก จากจุดนั้นเป็นต้นไปคุณจะสามารถผลักดันรหัสของคุณไปยังที่เก็บข้อมูลของคุณโดยไม่ต้องลงชื่อเข้าใช้

สำหรับ SSH ปกติ

คุณมีรหัส SSH แล้ว คุณอาจใช้ SSH ด้วยเช่นกัน OpenSSH มียูทิลิตี้ในตัวเพื่อส่งคีย์ไปยังเซิร์ฟเวอร์ของคุณ

$ ssh-copy-id -i ~ / .ssh / id_rsa.pub _IP

แทนที่ server_username และ SERVER_IP ด้วยชื่อผู้ใช้ของคุณบนเซิร์ฟเวอร์และที่อยู่ IP ของเซิร์ฟเวอร์

ลองเข้าสู่ระบบเซิร์ฟเวอร์ของคุณโดยใช้รหัสใหม่

$ ssh _IP

คุณควรเชื่อมต่อทันทีโดยไม่จำเป็นต้องใส่รหัสผ่าน

มันจะดีกว่าที่จะล็อค SSH ที่เหลือด้วย อาจเป็นหนึ่งในจุดอ่อนที่สุดในเซิร์ฟเวอร์สาธารณะ เปิด / etc / ssh / sshd_confg ในเท็กซ์เอดิเตอร์ที่คุณเลือกบนเซิร์ฟเวอร์

มีสองสิ่งที่คุณต้องเปลี่ยน ก่อนอื่นให้ค้นหา PermitRootLogin และตั้งค่าเป็นไม่

PermitRootLogin ไม่

ถัดไปค้นหา PasswordAuthentication uncomment และตั้งค่าเป็น no

รหัสผ่านการตรวจสอบหมายเลข

จากนั้นตรวจสอบให้แน่ใจว่าได้ตั้งค่าสองบรรทัดต่อไปนี้เป็นไม่ ควรเป็นค่าเริ่มต้นบน Ubuntu แต่ควรตรวจสอบดีกว่า

PermitEmptyPasswords no HostbasedAuthentication no

ในที่สุดค้นหา UsePAM ที่ด้านล่างของการกำหนดค่าและตั้งค่าเป็นไม่เกินไป

ใช้หมายเลข PAM

บันทึกและออกจากการกำหนดค่าของคุณ จากนั้นเริ่มบริการ SSH ใหม่

$ sudo systemctl รีสตาร์ท sshd

กำหนดค่า UFW

มาตรการรักษาความปลอดภัยล่าสุดที่คุณอาจต้องการใช้คือการติดตั้งและตั้งค่าไฟร์วอลล์ Ubuntu ทำงานได้ดีมากกับไฟร์วอลล์ที่ไม่ซับซ้อน (UFW) มันเป็นเพียง wrapper รอบ ๆ เคอร์เนลไฟร์วอลล์ iptables แต่มันทำให้การทำงานกับไฟร์วอลล์ง่ายขึ้นมาก ไปข้างหน้าและติดตั้ง

$ sudo apt ติดตั้ง ufw

เมื่อคุณติดตั้ง ufw แล้วให้เริ่มด้วยการตั้งค่ากฎเริ่มต้นเพื่อปฏิเสธทุกอย่าง

$ sudo ufw ค่าเริ่มต้นปฏิเสธขาเข้า $ sudo ufw ค่าเริ่มต้นปฏิเสธขาออก $ sudo ufw ค่าเริ่มต้นปฏิเสธไปข้างหน้า

ถัดไปตั้งค่ากฎของคุณเพื่ออนุญาตบริการพื้นฐานรวมถึง Git ความเห็นเป็นเพียงสำหรับข้อมูล อย่าพยายามเรียกใช้พวกเขา

# SSH $ sudo ufw อนุญาตเป็น ssh $ sudo ufw อนุญาตให้ใช้ ssh # HTTP และ HTTPS สำหรับเว็บ $ sudo ufw อนุญาตใน http $ sudo ufw อนุญาตให้ออก http $ sudo ufw อนุญาตใน https $ sudo ufw ให้เวลา https # NTP สำหรับการรักษาเวลา ถูกต้อง $ sudo ufw อนุญาตเป็น ntp $ sudo ufw อนุญาตออก ntp # พอร์ต 53 สำหรับการแก้ปัญหาโดเมน DNS $ sudo ufw อนุญาตใน 53 $ sudo ufw อนุญาตออก 53 # คุณอาจไม่จำเป็นต้องใช้ # ถ้าเซิร์ฟเวอร์ของคุณใช้ DHCP ปลดบล็อก 67 $ sudo ufw อนุญาตใน 67 $ sudo ufw อนุญาตออก 67 # ในที่สุด, git $ sudo ufw อนุญาตใน 9418 $ sudo ufw allo out 9418

ตรวจสอบให้แน่ใจว่าทุกอย่างดีและเปิดใช้งานไฟร์วอลล์

$ sudo ufw เปิดใช้งาน

คุณสามารถตรวจสอบสถานะของไฟร์วอลล์ได้ดังนี้:

$ sudo ufw สถานะ

แค่นั้นแหละ! เซิร์ฟเวอร์ Gitlab ของคุณอยู่หลังไฟร์วอลล์

การปิดความคิด

ถึงตอนนี้คุณมีเซิร์ฟเวอร์ Gitlab ที่ใช้งานได้ คุณสามารถเริ่มการตั้งค่าบัญชีผู้ใช้และโครงการผ่านอินเทอร์เฟซ Gitlab Gitlab เป็นแพคเกจ Ubuntu ปกติดังนั้นมันจะอัปเดตอย่างสม่ำเสมอด้วย apt เมื่อคุณอัปเดตระบบของคุณอยู่เสมอ

Gitlab จะมอบความยืดหยุ่นทั้งหมดที่คุณต้องใช้ในการจัดการโครงการของคุณเองและโครงการขนาดใหญ่ที่คุณอาจทำงานร่วมกับทีม มันเป็นแพลตฟอร์มที่มีความสามารถและมีประสิทธิภาพอย่างเต็มที่ซึ่งทีมงานเริ่มพึ่งพิงมากขึ้นเรื่อย ๆ

โฮสต์โครงการซอฟต์แวร์ของคุณเองด้วย gitlab