Basic TravisCI Information
Last updated
Last updated
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
TravisCI se integra directamente con diferentes plataformas de git como Github, Bitbucket, Assembla y Gitlab. Pedirá al usuario que le dé permisos a TravisCI para acceder a los repos que desea integrar con TravisCI.
Por ejemplo, en Github pedirá los siguientes permisos:
user:email
(solo lectura)
read:org
(solo lectura)
repo
: Concede acceso de lectura y escritura al código, estados de commit, colaboradores y estados de despliegue para repositorios y organizaciones públicas y privadas.
En TravisCI, al igual que en otras plataformas de CI, es posible guardar secretos a nivel de repositorio que se guardarán encriptados y serán desencriptados y enviados en la variable de entorno de la máquina que ejecuta la construcción.
Es posible indicar las ramas a las que los secretos estarán disponibles (por defecto todas) y también si TravisCI debería ocultar su valor si aparece en los registros (por defecto lo hará).
Para cada repositorio TravisCI genera un par de claves RSA, mantiene la privada, y hace disponible la clave pública del repositorio a aquellos que tienen acceso al repositorio.
Puedes acceder a la clave pública de un repositorio con:
Luego, puedes usar esta configuración para encriptar secretos y agregarlos a tu .travis.yaml
. Los secretos serán desencriptados cuando se ejecute la construcción y accesibles en las variables de entorno.
Ten en cuenta que los secretos encriptados de esta manera no aparecerán listados en las variables de entorno de la configuración.
De la misma manera que antes, TravisCI también permite encriptar archivos y luego desencriptarlos durante la construcción:
Note que al encriptar un archivo se configurarán 2 variables de entorno dentro del repositorio, tales como:
Travis CI Enterprise es una versión on-prem de Travis CI, que puedes desplegar en tu infraestructura. Piensa en la versión ‘servidor’ de Travis CI. Usar Travis CI te permite habilitar un sistema de Integración Continua/Despliegue Continuo (CI/CD) fácil de usar en un entorno, que puedes configurar y asegurar como desees.
Travis CI Enterprise consta de dos partes principales:
Servicios TCI (o Servicios Centrales TCI), responsables de la integración con sistemas de control de versiones, autorización de compilaciones, programación de trabajos de compilación, etc.
TCI Worker e imágenes del entorno de compilación (también llamadas imágenes de SO).
Los servicios centrales de TCI requieren lo siguiente:
Una base de datos PostgreSQL11 (o posterior).
Una infraestructura para desplegar un clúster de Kubernetes; puede ser desplegado en un clúster de servidores o en una sola máquina si es necesario.
Dependiendo de tu configuración, es posible que desees desplegar y configurar algunos de los componentes por tu cuenta, por ejemplo, RabbitMQ - consulta la Configuración de Travis CI Enterprise para más detalles.
El Worker de TCI requiere lo siguiente:
Una infraestructura donde se pueda desplegar una imagen de docker que contenga el Worker y una imagen de compilación vinculada.
Conectividad a ciertos componentes de los Servicios Centrales de Travis CI - consulta la Configuración del Worker para más detalles.
La cantidad de Workers de TCI desplegados y las imágenes del entorno de compilación de SO determinarán la capacidad total concurrente del despliegue de Travis CI Enterprise en tu infraestructura.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)