Á hậu CI trên cùng một máy chủ của GitLab?


12

Tôi đang thiết lập máy chủ GitLab trong công ty của mình và hiện tôi đang thêm GitLab CI cho nó.

Trước khi bắt đầu nhiệm vụ này, tôi muốn hiểu nếu có bất kỳ nhược điểm nào khi chạy các trình chạy của tôi trên cùng một máy chủ được sử dụng bởi GitLab và GitLab CI.

Tôi đã đọc được rằng có những lo ngại về bảo mật nhưng chúng tôi chỉ sử dụng nó trong nội bộ nên tôi không nghĩ đây có thể là một vấn đề.

Tui bỏ lỡ điều gì vậy?

Câu trả lời:


11

Hãy tưởng tượng các tình huống sau:

  • Một nhà phát triển nội bộ muốn gây hại cho công ty (vì coi như bị trả lương thấp, bởi vì ông chủ của anh ta ngủ với vợ; lý do không quan trọng) Anh ta thực hiện một bài kiểm tra đơn vị, khi chạy, thay vì kiểm tra ứng dụng, tìm kiếm kho lưu trữ GitLab và xóa nó Ở lần xác nhận tiếp theo, thật bất ngờ, tất cả mã nguồn của dự án bị mất (nhưng bạn thực hiện sao lưu và bạn đã kiểm tra chúng, phải không?)

  • Hoặc cùng một nhà phát triển thông báo rằng các bản sao lưu của kho lưu trữ được cấu hình trên cùng một máy. Anh ta thay đổi cấu hình này thông qua một bài kiểm tra đơn vị, để bản sao lưu hiện chứa một kho lưu trữ khác và đợi trong một tháng, thời gian lưu giữ bản sao lưu. Bây giờ tất cả các bản sao lưu bị hỏng, anh ta có thể thực hiện bài kiểm tra đơn vị của mình để xóa mã nguồn khỏi máy chủ.

  • Hoặc một thực tập sinh muốn bán mã nguồn cho cuộc thi. Bạn đã cẩn thận cấu hình quyền truy cập, giới hạn nó chỉ những gì anh ta cần cho công việc của mình. Đồng thời, anh ta có quyền truy cập không giới hạn vào kho lưu trữ thông qua các bài kiểm tra đơn vị, có thể thực hiện kết xuất hoàn chỉnh.

Trừ khi các bài kiểm tra đơn vị được chạy trong bối cảnh quyền hạn chế và không thể truy cập bất cứ thứ gì ngoài các thư mục và tệp mà chúng cần cho các bài kiểm tra, trộn máy chủ CI với máy chủ giữ cho kho lưu trữ của bạn thực sự nguy hiểm.

Một vấn đề khác là máy chủ kiểm soát phiên bản dự kiến ​​sẽ nhanh. Máy chủ CI được cài đặt trên cùng một máy có thể làm chậm các cam kết.


8
Chúng tôi là 3 nhà phát triển ... nếu ai đó trong chúng tôi muốn làm hại công ty, anh ta có thể làm điều đó theo hàng ngàn cách = (... Vì vậy, vấn đề duy nhất là hiệu suất chậm, nhưng nếu tôi sử dụng một máy tốt thì tôi không nên lớn rắc rối, phải không? Cảm ơn!
Fez Vrasta

ps: còn chroot thì sao? Không thể được sử dụng để làm cho quá trình an toàn?
Fez Vrasta

4
@FezVrasta: nếu bảo mật không phải là vấn đề đáng lo ngại trong trường hợp của bạn, cũng không phải là màn trình diễn, lợi ích duy nhất để có các máy riêng biệt mà tôi có thể thấy là khả năng mở rộng trong tương lai. Nhưng thẳng thắn, thực hiện các thay đổi trước khi các vấn đề về khả năng mở rộng có vẻ tương tự như tối ưu hóa sớm.
Arseni Mourzenko

@FezVrasta: "còn chroot thì sao? Không thể sử dụng để làm cho quá trình an toàn?" - Tôi không có đủ kỹ năng về bảo mật Unix để trả lời câu hỏi đó.
Arseni Mourzenko

0

Cho rằng không có máy chủ trung tâm nào, tất cả đều biết máy chủ của Google cho git, điều này không tệ như với một số hệ thống kiểm soát mã nguồn khác.

Với điều kiện là có một syk tự động của máy chủ git ngoài trang web đến máy chủ git bao phấn (đã được thử nghiệm), tôi sẽ không quan tâm đến thiết lập này trong một công ty nhỏ.

Lý tưởng nhất là tôi muốn thấy các nhà phát triển đẩy các thay đổi của họ lên máy chủ git của máy chủ bù trừ, sau đó máy chủ CI để rút các khoản phí từ máy chủ bù - theo cách đó máy chủ ngoại vi được kiểm tra khi mọi kiểm tra được thực hiện.

Nếu sau đó các nhà phát triển luôn thực hiện thao tác kéo từ máy chủ tại chỗ để tiết kiệm thời gian thì đó không phải là vấn đề.


1
Nếu tôi cần 2 máy chủ ... tại sao tôi không nên chạy runners trên máy chủ thứ 2?
Fez Vrasta

@FezVrasta, " máy chủ ngoại vi " có thể là bất kỳ ai sẽ bán cho bạn git hosting, nó không phải là máy chủ mà bạn sở hữu. Ngoài ra, trên internet, việc kéo nó sẽ bị chậm.
Ian

1
Tôi đang thiết lập nó cho công ty của mình, chúng tôi sử dụng máy chủ của riêng mình ...
Fez Vrasta
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.