# Basiese TravisCI Inligting

{{#include ../../banners/hacktricks-training.md}}

## Toegang

TravisCI integreer direk met verskillende git platforms soos Github, Bitbucket, Assembla, en Gitlab. Dit sal die gebruiker vra om TravisCI toestemming te gee om toegang te verkry tot die repos wat hy wil integreer met TravisCI.

Byvoorbeeld, in Github sal dit om die volgende toestemmings vra:

- `user:email` (slegs lees)
- `read:org` (slegs lees)
- `repo`: Gee lees- en skryftoegang tot kode, verbintenisstatusse, medewerkers, en ontplooiingstatusse vir openbare en private repositories en organisasies.

## Geënkripteerde Geheimen

### Omgewing Veranderlikes

In TravisCI, soos in ander CI platforms, is dit moontlik om **geheimen op repo vlak te stoor** wat geënkripteer gestoor sal word en **ontsleuteld en in die omgewing veranderlike** van die masjien wat die bou uitvoer, gepush sal word.

![](<../../images/image (203).png>)

Dit is moontlik om die **takke aan te dui waartoe die geheimen beskikbaar gaan wees** (standaard al) en ook of TravisCI **sy waarde moet wegsteek** as dit **in die logs** verskyn (standaard sal dit).

### Pasgemaakte Geënkripteerde Geheimen

Vir **elke repo** genereer TravisCI 'n **RSA sleutelpaar**, **hou** die **privaat** een, en maak die repository se **publieke sleutel beskikbaar** vir diegene wat **toegang** tot die repository het.

Jy kan die publieke sleutel van een repo met toegang:
```
travis pubkey -r <owner>/<repo_name>
travis pubkey -r carlospolop/t-ci-test
```
Dan kan jy hierdie opstelling gebruik om **geheime te enkripteer en dit by jou `.travis.yaml`** te voeg. Die geheime sal **ontsleuteld word wanneer die bou gedoen word** en beskikbaar wees in die **omgewing veranderlikes**.

![](<../../images/image (139).png>)

Let daarop dat die geheime wat op hierdie manier geënkripteer is, nie in die omgewing veranderlikes van die instellings gelys sal word nie.

### Pasgemaakte Geënkripteerde Lêers

Op dieselfde manier as voorheen, laat TravisCI ook toe om **lêers te enkripteer en dit dan tydens die bou te ontsleutel**:
```
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.
```
Let wel dat wanneer 'n lêer geënkripteer word, 2 Omgewing Veranderlikes binne die repo geconfigureer sal word, soos:

![](<../../images/image (170).png>)

## TravisCI Enterprise

Travis CI Enterprise is 'n **on-prem weergawe van Travis CI**, wat jy kan ontplooi **in jou infrastruktuur**. Dink aan die ‘bediener’ weergawe van Travis CI. Deur Travis CI te gebruik, kan jy 'n maklik-om-te-gebruik Kontinuïteitsintegrasie/Kontinuïteitsontplooiing (CI/CD) stelsel in 'n omgewing inskakel, wat jy kan configureer en beveilig soos jy wil.

**Travis CI Enterprise bestaan uit twee hoofdele:**

1. TCI **dienste** (of TCI Kern Dienste), verantwoordelik vir integrasie met weergawebeheer stelsels, bougoedkeuring, skedulering van bouwerk, ens.
2. TCI **Werker** en bou omgewing beelde (ook genoem OS beelde).

**TCI Kern dienste vereis die volgende:**

1. 'n **PostgreSQL11** (of later) databasis.
2. 'n infrastruktuur om 'n Kubernetes-kluster te ontplooi; dit kan in 'n bedienerkluster of op 'n enkele masjien ontplooi word indien nodig.
3. Afhangende van jou opstelling, wil jy dalk sommige van die komponente op jou eie ontplooi en configureer, bv. RabbitMQ - sien die [Instelling van Travis CI Enterprise](https://docs.travis-ci.com/user/enterprise/tcie-3.x-setting-up-travis-ci-enterprise/) vir meer besonderhede.

**TCI Werker vereis die volgende:**

1. 'n infrastruktuur waar 'n docker beeld wat die **Werker en 'n gekoppelde boubeeld kan ontplooi**.
2. Verbondenheid met sekere Travis CI Kern Dienste komponente - sien die [Instelling van Werker](https://docs.travis-ci.com/user/enterprise/setting-up-worker/) vir meer besonderhede.

Die hoeveelheid ontplooide TCI Werker en bou omgewing OS beelde sal die totale gelyktydige kapasiteit van Travis CI Enterprise ontplooiing in jou infrastruktuur bepaal.

![](<../../images/image (199).png>)

{{#include ../../banners/hacktricks-training.md}}
