Основна інформація про TravisCI
Reading time: 4 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Доступ
TravisCI безпосередньо інтегрується з різними git платформами, такими як Github, Bitbucket, Assembla та Gitlab. Він попросить користувача надати TravisCI дозволи для доступу до репозиторіїв, з якими він хоче інтегруватися.
Наприклад, у Github він запитає про такі дозволи:
user:email
(тільки для читання)read:org
(тільки для читання)repo
: Надає доступ на читання та запис до коду, статусів комітів, співпрацівників та статусів розгортання для публічних і приватних репозиторіїв та організацій.
Зашифровані секрети
Змінні середовища
У TravisCI, як і в інших CI платформах, можливо зберігати на рівні репозиторію секрети, які будуть збережені в зашифрованому вигляді та дешифруватимуться і передаватимуться в змінну середовища машини, що виконує збірку.
Можливо вказати гілки, до яких секрети будуть доступні (за замовчуванням всі) і також, чи повинен TravisCI приховувати його значення, якщо воно з'являється в журналах (за замовчуванням так).
Користувацькі зашифровані секрети
Для кожного репозиторію TravisCI генерує пару RSA ключів, зберігає приватний ключ і робить публічний ключ репозиторію доступним для тих, хто має доступ до репозиторію.
Ви можете отримати доступ до публічного ключа одного репозиторію за допомогою:
travis pubkey -r <owner>/<repo_name>
travis pubkey -r carlospolop/t-ci-test
Тоді ви можете використовувати цю налаштування для шифрування секретів і додавання їх до вашого .travis.yaml
. Секрети будуть розшифровані, коли буде запущено збірку і доступні в змінних середовища.
Зверніть увагу, що секрети, зашифровані таким чином, не з'являться у списку змінних середовища в налаштуваннях.
Користувацькі зашифровані файли
Так само, як і раніше, TravisCI також дозволяє шифрувати файли, а потім розшифровувати їх під час збірки:
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.
Зверніть увагу, що при шифруванні файлу 2 змінні середовища будуть налаштовані в репозиторії, такі як:
TravisCI Enterprise
Travis CI Enterprise - це локальна версія Travis CI, яку ви можете розгорнути у своїй інфраструктурі. Уявіть собі «серверну» версію Travis CI. Використання Travis CI дозволяє вам активувати просту у використанні систему безперервної інтеграції/безперервного розгортання (CI/CD) в середовищі, яке ви можете налаштувати та захистити на свій розсуд.
Travis CI Enterprise складається з двох основних частин:
- TCI сервіси (або TCI Core Services), відповідальні за інтеграцію з системами контролю версій, авторизацію збірок, планування завдань збірки тощо.
- TCI Worker та образи середовища збірки (також називаються образами ОС).
TCI Core services вимагають наступного:
- PostgreSQL11 (або новішу) базу даних.
- Інфраструктуру для розгортання кластера Kubernetes; його можна розгорнути в кластері серверів або на одному комп'ютері, якщо це необхідно.
- Залежно від вашої конфігурації, ви можете захотіти розгорнути та налаштувати деякі компоненти самостійно, наприклад, RabbitMQ - див. Налаштування Travis CI Enterprise для отримання додаткової інформації.
TCI Worker вимагає наступного:
- Інфраструктуру, де може бути розгорнуто образ docker, що містить Worker та пов'язаний образ збірки.
- З'єднання з певними компонентами Travis CI Core Services - див. Налаштування Worker для отримання додаткової інформації.
Кількість розгорнутого TCI Worker та образів середовища збірки ОС визначатиме загальну одночасну потужність розгортання Travis CI Enterprise у вашій інфраструктурі.
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.