Informações Básicas do TravisCI
Reading time: 5 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Acesso
TravisCI integra-se diretamente com diferentes plataformas git, como Github, Bitbucket, Assembla e Gitlab. Ele pedirá ao usuário que conceda permissões ao TravisCI para acessar os repositórios que deseja integrar com o TravisCI.
Por exemplo, no Github, ele pedirá as seguintes permissões:
user:email
(somente leitura)read:org
(somente leitura)repo
: Concede acesso de leitura e gravação ao código, status de commit, colaboradores e status de implantação para repositórios e organizações públicas e privadas.
Segredos Criptografados
Variáveis de Ambiente
No TravisCI, assim como em outras plataformas de CI, é possível salvar segredos a nível de repositório que serão salvos criptografados e decriptados e enviados na variável de ambiente da máquina que executa a construção.
É possível indicar os ramos aos quais os segredos estarão disponíveis (por padrão, todos) e também se o TravisCI deve ocultar seu valor se ele aparecer nos logs (por padrão, ele fará isso).
Segredos Criptografados Personalizados
Para cada repositório, o TravisCI gera um par de chaves RSA, mantém a chave privada e torna a chave pública do repositório disponível para aqueles que têm acesso ao repositório.
Você pode acessar a chave pública de um repositório com:
travis pubkey -r <owner>/<repo_name>
travis pubkey -r carlospolop/t-ci-test
Então, você pode usar esta configuração para criptografar segredos e adicioná-los ao seu .travis.yaml
. Os segredos serão descriptografados quando a construção for executada e acessíveis nas variáveis de ambiente.
Observe que os segredos criptografados dessa forma não aparecerão listados nas variáveis de ambiente das configurações.
Arquivos Criptografados Personalizados
Da mesma forma que antes, o TravisCI também permite criptografar arquivos e depois descriptografá-los durante a construção:
travis encrypt-file super_secret.txt -r carlospolop/t-ci-test
encrypting super_secret.txt for carlospolop/t-ci-test
storing result as super_secret.txt.enc
storing secure env variables for decryption
Please add the following to your build script (before_install stage in your .travis.yml, for instance):
openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d
Pro Tip: You can add it automatically by running with --add.
Make sure to add super_secret.txt.enc to the git repository.
Make sure not to add super_secret.txt to the git repository.
Commit all changes to your .travis.yml.
Note que ao criptografar um arquivo, 2 Variáveis de Ambiente serão configuradas dentro do repositório, como:
TravisCI Enterprise
Travis CI Enterprise é uma versão on-prem do Travis CI, que você pode implantar em sua infraestrutura. Pense na versão ‘servidor’ do Travis CI. Usar o Travis CI permite que você ative um sistema de Integração Contínua/Implantação Contínua (CI/CD) fácil de usar em um ambiente, que você pode configurar e proteger como desejar.
Travis CI Enterprise consiste em duas partes principais:
- Serviços TCI (ou Serviços Centrais TCI), responsáveis pela integração com sistemas de controle de versão, autorização de builds, agendamento de jobs de build, etc.
- TCI Worker e imagens de ambiente de build (também chamadas de imagens de SO).
Os serviços Centrais TCI requerem o seguinte:
- Um banco de dados PostgreSQL11 (ou posterior).
- Uma infraestrutura para implantar um cluster Kubernetes; pode ser implantado em um cluster de servidores ou em uma única máquina, se necessário.
- Dependendo da sua configuração, você pode querer implantar e configurar alguns dos componentes por conta própria, por exemplo, RabbitMQ - veja o Configurando o Travis CI Enterprise para mais detalhes.
O Worker TCI requer o seguinte:
- Uma infraestrutura onde uma imagem docker contendo o Worker e uma imagem de build vinculada podem ser implantadas.
- Conectividade com certos componentes dos Serviços Centrais do Travis CI - veja o Configurando o Worker para mais detalhes.
A quantidade de Workers TCI implantados e imagens de ambiente de build determinará a capacidade total concorrente da implantação do Travis CI Enterprise em sua infraestrutura.
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.