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