CI runner บนเซิร์ฟเวอร์เดียวกันของ GitLab


12

ฉันกำลังตั้งค่าเซิร์ฟเวอร์ GitLab ใน บริษัท ของฉันและตอนนี้ฉันกำลังเพิ่ม GitLab CI ลงไป

ก่อนที่จะเริ่มงานนี้ฉันต้องการที่จะเข้าใจว่ามีข้อเสียใด ๆ ที่รันนักวิ่งของฉันบนเซิร์ฟเวอร์เดียวกับที่ใช้โดย GitLab และ GitLab CI

ฉันอ่านว่ามีข้อกังวลด้านความปลอดภัย แต่เราใช้ภายในเท่านั้นดังนั้นฉันจึงไม่คิดว่านี่จะเป็นปัญหา

ฉันพลาดอะไรไปรึเปล่า?

คำตอบ:


11

ลองนึกภาพสถานการณ์ต่อไปนี้:

  • ผู้พัฒนาภายในต้องการทำอันตรายกับ บริษัท (เพราะคิดว่าได้รับค่าจ้างต่ำกว่าเพราะเจ้านายของเขานอนกับภรรยาเหตุผลก็ไม่สำคัญ) เขากระทำการทดสอบหน่วยซึ่งเมื่อวิ่งแทนที่จะทดสอบแอปพลิเคชันค้นหาที่เก็บ GitLab และ ลบมัน ที่คอมมิชชันถัดไป, ประหลาดใจ, ซอร์สโค้ดทั้งหมดของโครงการจะสูญหาย (แต่คุณทำการสำรองข้อมูลและคุณทดสอบ, ใช่ไหม?)

  • หรือประกาศนักพัฒนาซอฟต์แวร์เดียวกันที่มีการกำหนดค่าการสำรองข้อมูลของที่เก็บบนเครื่องเดียวกัน เขาเปลี่ยนการกำหนดค่านี้ผ่านการทดสอบหน่วยดังนั้นตอนนี้การสำรองข้อมูลจึงมีที่เก็บข้อมูลที่แตกต่างกันและรอหนึ่งเดือน - เวลาที่เก็บข้อมูลสำรอง ตอนนี้การสำรองข้อมูลทั้งหมดเสียหายเขาสามารถทดสอบหน่วยของเขาซึ่งจะลบล้างซอร์สโค้ดจากเซิร์ฟเวอร์

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

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

ปัญหาอีกประการหนึ่งคือเซิร์ฟเวอร์ควบคุมเวอร์ชันคาดว่าจะทำงานได้อย่างรวดเร็ว เซิร์ฟเวอร์ CI ที่ติดตั้งในเครื่องเดียวกันอาจทำให้คอมมิททำงานช้าลง


8
เราเป็นนักพัฒนา 3 คน ... ถ้าใครบางคนของเราต้องการทำอันตรายกับ บริษัท เขาสามารถทำได้หลายพันวิธี = (... ดังนั้นปัญหาเดียวก็คือการแสดงที่ช้า แต่ถ้าฉันใช้เครื่องจักรที่ดีฉันไม่ควรใหญ่ ปัญหาใช่มั้ยขอบคุณ!
Fez Vrasta

ps: แล้ว chroot ล่ะ? ไม่สามารถใช้เพื่อทำให้กระบวนการปลอดภัยหรือไม่
Fez Vrasta

4
@FezVrasta: หากการรักษาความปลอดภัยไม่ได้เป็นปัญหาในกรณีของคุณหรือการแสดงผลประโยชน์เพียงอย่างเดียวที่จะมีเครื่องแยกต่างหากที่ฉันเห็นคือความสามารถในการปรับขนาดได้ในอนาคต แต่ตรงไปตรงมาการเปลี่ยนแปลงก่อนที่ปัญหาความสามารถในการขยายจะดูคล้ายกับการเพิ่มประสิทธิภาพก่อนวัยอันควร
Arseni Mourzenko

@FezVrasta: "แล้ว chroot ล่ะ? ไม่สามารถใช้เพื่อทำให้กระบวนการปลอดภัยได้หรือ?" - ฉันไม่มีทักษะเพียงพอในการรักษาความปลอดภัยของ Unix ที่จะตอบคำถามนั้น
Arseni Mourzenko

0

ระบุว่าไม่มีศูนย์กลาง“ รู้ทั้งหมด” เซิร์ฟเวอร์สำหรับคอมไพล์นี้ไม่ได้เลวร้ายอย่างที่มันจะเป็นกับระบบควบคุมซอร์สโค้ดอื่น ๆ

มีให้มีระบบอัตโนมัติของเซิร์ฟเวอร์ git นอกสถานที่ไปยังเซิร์ฟเวอร์ git anther (ที่ทดสอบ) ฉันจะไม่กังวลเกี่ยวกับการตั้งค่านี้ใน บริษัท ขนาดเล็ก

ฉันต้องการเห็นนักพัฒนาผลักดันการเปลี่ยนแปลงไปยังเซิร์ฟเวอร์ git เซิร์ฟเวอร์ออฟเซ็ตจากนั้นเซิร์ฟเวอร์ CI เพื่อดึงค่าใช้จ่ายจากเซิร์ฟเวอร์ออฟเซ็ต - วิธีที่เซิร์ฟเวอร์ภายนอกจะถูกทดสอบเมื่อทำการเช็คอินทุกครั้ง

หากนักพัฒนาทำการดึงข้อมูลจากเซิร์ฟเวอร์ในสถานที่เพื่อประหยัดเวลาเสมอนั่นไม่ใช่ปัญหา


1
ถ้าฉันต้องการเซิร์ฟเวอร์ 2 ตัว ... ทำไมฉันไม่ควรรัน runners บนเซิร์ฟเวอร์ตัวที่สอง?
Fez Vrasta

@FezVrasta " เซิร์ฟเวอร์ภายนอก " สามารถเป็นคนที่จะขายโฮสติ้งคอมไพล์คุณไม่จำเป็นต้องเป็นเซิร์ฟเวอร์ที่คุณเป็นเจ้าของ นอกจากนี้ยังเป็นผ่านทางอินเทอร์เน็ตการดึงจากมันจะช้า
เอียน

1
ฉันตั้งมันสำหรับ บริษัท ของฉันเราจะใช้เซิร์ฟเวอร์ของเราเอง ...
เฟซ Vrasta
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.