Pregunta

Soy relativamente nuevo en los servidores de integración continua. He estado usando GITLAB (V6.5) por un tiempo para administrar proyectos, pero me gustaría comenzar a usar el Gitlab CI para asegurar que las pruebas pasen y se acumulen tener éxito.

Mi configuración de prueba consta de dos máquinas virtuales: una máquina para Gitlab y otra máquina para el Gitlab CI (y corredores). Sin embargo, en la producción solo tengo una máquina única, que se está ejecutando GITLAB. El equipo de Gitlab publicó una Interesante blog Post un rato de vuelta que enfatizó:

Si está ejecutando pruebas en el servidor CI, lo está haciendo mal!

Fue una publicación muy informativa, pero no me fue sentir que entendí este punto específico. ¿Esto significa que uno no debe ejecutar GITLAB y GITLAB CI en el mismo servidor? ¿Significa que uno no debe ejecutar Gitlab CI y Gitlab CI corredores en el mismo servidor? O ambos-- ¿Necesito tres servidores, uno para cada tarea?

de la misma publicación:

Cualquiera que pueda presionar a una sucursal que se analiza en un servidor CI puede poseer fácilmente ese servidor.

Esto lo implica que los corredores son el riesgo de seguridad, ya que pueden ejecutar cosas contenidas en un compromiso. Si ese es el caso, ¿cuál es la implementación típica? Ponga GITLAB y GITLAB CI en la misma máquina, ¡pero los corredores en una máquina separada? ¿No sucediría aún si la máquina del corredor estaba comprometida? Entonces, la gente está bien, perdiendo su máquina de corredor, siempre y cuando su máquina de código sea segura?

Realmente me gustaría entender esto un poco más, definitivamente antes de implementarlo en la producción. ¿Hay alguna manera posible y segura para implementar los corredores de Gitlab, Gitlab CI y Gitlab CI en la misma máquina?

¿Fue útil?

Solución

Idealmente, está bien corriendo GITLAB-CI y GITLAB en el mismo host. Otros pueden estar en desacuerdo conmigo, pero el orechestrator (el nodo Gitlab-CI) no hace ninguna de las fuertes levantamientos. Es estrictamente meta io y almacenando los resultados.

con el que se dice, lo haría no Ponga a los corredores en la misma máquina. Los corredores de GITLAB-CI son intensivos en recursos y se ejecutarán a toda velocidad en la máquina en cualquier máquina que las coloque. Es una buena idea si se está ejecutando en la producción para poner estos instancias en el lugar para ayudar a frenar algunos de los costos de ejecutar las compilaciones hambrientas de CPU / memoria a menudo, pero pueden ser poco prácticas, ya que sus instancias no siempre están encendidas en ese momento.

He tenido cierto éxito con poner a My Gitlab-Ci Runner en el océano digital en pequeños casos. No estoy haciendo grandes compilaciones, pero la idea es distribuir la carga de trabajo contra varios servidores, por lo que su servidor CI:

  • es responsivo
  • puede construir múltiples compilaciones de proyecto a la vez
  • puede ejercer aislamiento (esto es un tipo de arbitrario en esta lista)

y algunas otras cosas que no vienen a la mente de inmediato.

espero que esto ayude!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top