Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Tutorial: Configurar un ejecutor CodeBuild de BuildKite alojado
Este tutorial te muestra cómo configurar tus CodeBuild proyectos para ejecutar trabajos de Buildkite. Para obtener más información sobre el uso de Buildkite con, consulte. CodeBuild Ejecutor BuildLite autogestionado en AWS CodeBuild
Para completar este tutorial, primero debe:
-
Tener acceso a una organización de Buildkite. Para obtener más información sobre cómo configurar una cuenta y una organización de Buildkite, puede seguir este Tutorial de introducción
. -
Cree una canalización, un clúster y una cola de Buildkite configurados para usar ejecutores autoalojados. Para obtener más información sobre la configuración de estos recursos, puede consultar el Tutorial de configuración de canalización de Buildkite
.
Paso 1: generación de un token de agente de Buildkite
En este paso, generarás un token de agente en Buildkite que se utilizará para autenticar a los corredores autohospedados. CodeBuild Para obtener más información sobre este recurso, consulta Tokens de agente de Buildkite
Generación de un token de agente de Buildkite
-
En el clúster de Buildkite, elija Tokens de agente y, a continuación, Nuevo token.
-
Agregue una descripción al token y haga clic en Crear token.
-
Guarda el valor del token del agente, ya que se utilizará más adelante durante la configuración del proyecto. CodeBuild
Paso 2: Crea un CodeBuild proyecto con un webhook
Para crear un CodeBuild proyecto con un webhook
Abre la AWS CodeBuild consola en https://console.aws.amazon.com/codesuite/codebuild/home
. -
Cree un proyecto de compilación autoalojado. Para obtener más información, consulte Creación de un proyecto de compilación (consola) y Ejecutar una compilación (consola).
-
En Project Configurator, seleccione Proyecto de ejecutor. En Ejecutor:
-
En Proveedor de ejecutor, elija Buildkite.
-
En Token de agente de Buildkite, seleccione Crear un nuevo token de agente mediante la página de creación de secreto. Se te pedirá que crees un nuevo código secreto AWS Secrets Manager con un valor secreto igual al token de agente de Buildkite que generaste anteriormente.
-
(Opcional) Si quieres usar credenciales CodeBuild administradas para tu trabajo, selecciona el proveedor del repositorio de origen de tu trabajo en las opciones de credenciales de origen de Buildkite y verifica que las credenciales estén configuradas para tu cuenta. Además, verifique que la canalización de Buildkite utilice Extracción mediante HTTPS.
nota
Buildkite requiere credenciales de código fuente en el entorno de compilación para poder extraer el código fuente del trabajo. Consulte en Autenticación de Buildkite en un repositorio privado las opciones de credenciales de código fuente disponibles.
-
-
(Opcional) En Entorno:
-
Elija una Imagen del entorno y una Computación compatibles.
Tenga en cuenta que tiene la opción de anular la configuración de imagen e instancia mediante una etiqueta en los pasos de YAML de Buildkite. Para obtener más información, consulte Paso 4: actualización de los pasos de la canalización de Buildkite.
-
-
(Opcional) En Buildspec:
-
La buildspec se ignorará de forma predeterminada a menos que se agregue
buildspec-override: "true"como etiqueta. En su lugar, las CodeBuild anulará para usar comandos que configurarán el ejecutor autohospedado.nota
CodeBuild no admite archivos de especificaciones de compilación para compilaciones de ejecutores autohospedados por Buildkite. Para las especificaciones de compilación integradas, tendrás que habilitarlas en tu especificación de compilación si has configurado las credenciales de fuente git-credential-helperadministrada CodeBuild
-
-
-
Continúe con los valores predeterminados y, a continuación, elija Crear el proyecto de compilación.
-
Guarde los valores de URL de carga útil y Secreto de la ventana emergente Crear webhook. Siga las instrucciones de la ventana emergente para crear un nuevo webhook de organización de Buildkite o continúe con la siguiente sección.
Paso 3: Crea un webhook en Buildkite CodeBuild
En este paso, utilizarás la URL de carga útil y los valores secretos del CodeBuild webhook para crear un nuevo webhook en Buildkite. Este webhook se usará para activar las compilaciones internas CodeBuild cuando se inicie un trabajo válido de Buildkite.
Cómo crear un nuevo webhook en Buildkite
-
Vaya a la página Configuración de la organización de Buildkite.
-
En Integraciones, seleccione Servicios de notificación.
-
Seleccione Agregar junto a la casilla Webhook. En la página Agregar notificación de webhook, use la siguiente configuración:
-
En URL de webhook, agregue el valor de URL de carga útil guardado.
-
En Token, verifica que la opción Enviar el token como X-Buildkite-Token esté seleccionada. Agregue el valor de Secreto de webhook al campo Token.
-
En, compruebe que esté seleccionada la opción Enviar el token como X-Buildkite-Token. Agregue el valor de Secreto de webhook al campo Token.
-
En Eventos, seleccione el evento del webhook
job.scheduled. -
(Opcional) En Canalizaciones, puede elegir opcionalmente desencadenar solo las compilaciones de una canalización específica.
-
-
Seleccione Agregar notificación de webhook.
Paso 4: actualización de los pasos de la canalización de Buildkite
En este paso, actualizará los pasos de la canalización de Buildkite para agregar las etiquetas necesarias y las anulaciones opcionales. Para ver la lista completa de las anulaciones de etiquetas admitidas, consulte Las CodeBuild anulaciones de etiquetas son compatibles con el ejecutor Buildkite alojado en él.
Actualización de los pasos de la canalización
-
Vaya a la página de pasos de la canalización de Buildkite seleccionando la canalización de Buildkite, luego Configuración y, por último, Pasos.
Si aún no lo ha hecho, elija Convertir a pasos de YAML.
-
Como mínimo, tendrás que especificar una etiqueta de agente de Buildkite
que haga referencia al nombre de tu canalización. CodeBuild El nombre del proyecto es necesario para vincular los ajustes AWS relacionados con tu trabajo de Buildkite a un proyecto específico. CodeBuild Al incluir el nombre del proyecto en el YAML, CodeBuild se pueden invocar trabajos con la configuración de proyecto correcta. agents: project: "codebuild-<project name>"A continuación, se muestra un ejemplo de pasos de canalización de Buildkite solo con la etiqueta del proyecto:
agents: project: "codebuild-myProject" steps: - command: "echo \"Hello World\""También puede anular el tipo de computación e imagen en la etiqueta. Consulte Calcule imágenes compatibles con el CodeBuild ejecutor Buildkite alojado para obtener una lista de las imágenes disponibles. El tipo de computación y la imagen de la etiqueta anularán la configuración del entorno en el proyecto. Para anular la configuración de su entorno para una compilación de procesamiento Lambda CodeBuild EC2 o Lambda, utilice la siguiente sintaxis:
agents: project: "codebuild-<project name>" image: "<environment-type>-<image-identifier>" instance-size: "<instance-size>"A continuación, se muestra un ejemplo de pasos de canalización de Buildkite con anulaciones de tamaño de imagen e instancia:
agents: project: "codebuild-myProject" image: "arm-3.0" instance-size: "small" steps: - command: "echo \"Hello World\""Puede anular la flota utilizada para su compilación en la etiqueta. Al hacerlo, se anularán los valores de flota configurados en el proyecto para usar la flota especificada. Para obtener más información, consulte Ejecución de compilaciones en flotas de capacidad reservada.
Para anular la configuración de tu flota para una compilación de Amazon EC2 Compute, usa la siguiente sintaxis:
agents: project: "codebuild-<project name>" fleet: "<fleet-name>"Para anular tanto la flota como la imagen utilizadas para la compilación, utilice la sintaxis siguiente:
agents: project: "codebuild-<project name>" fleet: "<fleet-name>" image: "<environment-type>-<image-identifier>"A continuación, se muestra un ejemplo de pasos de canalización de Buildkite con anulaciones de flota e imagen:
agents: project: "codebuild-myProject" fleet: "myFleet" image: "arm-3.0" steps: - command: "echo \"Hello World\"" -
Puede optar por ejecutar comandos buildspec integrados durante la compilación del ejecutor autoalojado en Buildkite (consulte Ejecución de comandos buildspec durante las fases INSTALL, PRE_BUILD y POST_BUILD para obtener más información). Para especificar que la CodeBuild compilación debe ejecutar los comandos buildspec durante la compilación del ejecutor autohospedado de Buildkite, usa la siguiente sintaxis:
agents: project: "codebuild-<project name>" buildspec-override: "true"A continuación, se muestra un ejemplo de canalización de Buildkite con anulaciones de buildspec:
agents: project: "codebuild-myProject" buildspec-override: "true" steps: - command: "echo \"Hello World\"" -
Opcionalmente, puedes proporcionar etiquetas distintas de las compatibles. CodeBuild Estas etiquetas se ignorarán para el fin de anular los atributos de la compilación, pero no provocarán un error de la solicitud de webhook. Por ejemplo, agregar
myLabel: “testLabel"como etiqueta no impedirá que la compilación se ejecute.
Paso 5: Revisa los resultados
Cada vez que se inicie un trabajo de Buildkite en tu cartera, CodeBuild recibirás un evento de webhook a través del job.scheduled webhook de Buildkite. Para cada trabajo de tu compilación de Buildkite, se CodeBuild iniciará una compilación para ejecutar un corredor efímero de Buildkite. El ejecutor es responsable de ejecutar un único trabajo de Buildkite. Una vez que se complete el trabajo, el ejecutor y el proceso de compilación asociado finalizarán de forma inmediata.
Para ver los registros de trabajos de flujo de trabajo, navegue hasta la canalización de Buildkite y seleccione la compilación más reciente (para desencadenar una nueva compilación, seleccione Nueva compilación). Una vez que la CodeBuild compilación asociada a cada uno de tus trabajos comience y recoja el trabajo, deberías ver los registros del trabajo en la consola de Buildkite
Autenticación de Buildkite en un repositorio privado
Si tiene un repositorio privado configurado en la canalización de Buildkite, Buildkite requiere permisos adicionales en el entorno de compilación
Para autenticarte con CodeBuild
CodeBuild ofrece la gestión de credenciales gestionadas para los tipos de fuentes compatibles. Para usar las credenciales de CodeBuild origen para acceder al repositorio de fuentes de su trabajo, puede seguir los siguientes pasos:
-
En la CodeBuild consola, vaya a Editar proyecto o cree un CodeBuild proyecto nuevo siguiendo los pasos que se indicanPaso 2: Crea un CodeBuild proyecto con un webhook.
-
En Opciones de credenciales de código fuente de Buildkite, seleccione el proveedor de repositorio de código fuente del trabajo.
-
Si desea utilizar CodeBuild credenciales a nivel de cuenta, compruebe que estén configuradas correctamente. Además, si tu proyecto tiene una especificación de compilación integrada configurada, comprueba que esté habilitada. git-credential-helper
-
Si quieres usar credenciales a nivel de proyecto, selecciona Usar CodeBuild credenciales de anulación solo para este proyecto y configura las credenciales para tu proyecto.
-
-
En la configuración de la canalización de Buildkite, vaya a Configuración del repositorio. Establezca la configuración de extracción del repositorio de código fuente en Extracción mediante HTTPS
Cómo autenticarse con secretos de Buildkite
Buildkite mantiene un complemento ssh-checkout
-
Genere una clave ssh privada y pública con su dirección de correo electrónico, p. ej.
ssh-keygen -t rsa -b 4096 -C "myEmail@address.com" -
Agregue la clave pública al repositorio de código fuente privado. Por ejemplo, puedes seguir esta guía
para añadir una clave a una GitHub cuenta. -
Agregue una nueva clave SSH secreta
al clúster de Buildkite. En el clúster de Buildkite, seleccione Secretos → Nuevo secreto. Agregue un nombre para el secreto en el campo Clave y agregue la clave SSH privada al campo Valor:
-
En la canalización de Buildkite, navegue hasta la configuración del repositorio y configure el proceso de extracción para que use SSH.
-
Actualice los pasos de YAML de la canalización para usar el complemento
git-ssh-checkout. Por ejemplo, el siguiente archivo YAML de canalización utiliza la acción de extracción con la clave del secreto de Buildkite anterior:agents: project: "codebuild-myProject" steps: - command: "npm run build" plugins: - git-ssh-checkout#v0.4.1: ssh-secret-key-name: 'SOURCE_SSH_KEY' -
Al ejecutar un trabajo de ejecución autohospedado en Buildkite CodeBuild, Buildkite ahora usará automáticamente el valor secreto que hayas configurado al acceder a tu repositorio privado
Opciones de configuración del ejecutor
Puede especificar las siguientes variables de entorno en la configuración del proyecto para modificar la configuración de instalación de los ejecutores autoalojados:
-
CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN: CodeBuild obtendrá el valor secreto configurado como el valor de esta variable de entorno para registrar el agente de ejecución autohospedado AWS Secrets Manager de Buildkite. Esta variable de entorno debe ser de tipoSECRETS_MANAGERy el valor debe ser el nombre del secreto en Secrets Manager. Se requiere una variable de entorno de token de agente de Buildkite para todos los proyectos de ejecutor de Buildkite. -
CODEBUILD_CONFIG_BUILDKITE_CREDENTIAL_DISABLE: De forma predeterminada, CodeBuild cargará las credenciales de origen a nivel de cuenta o proyecto en el entorno de compilación, ya que el agente de Buildkite utiliza estas credenciales para acceder al repositorio fuente de la tarea. Para deshabilitar este comportamiento, puede agregar esta variable de entorno al proyecto con el valor establecido entrue, lo que evitará que las credenciales de código fuente se carguen en el entorno de compilación.