Basic TravisCI Information

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 제로부터 전문가까지 배우세요 !!

HackTricks를 지원하는 다른 방법:

접근

TravisCI는 Github, Bitbucket, Assembla, Gitlab 등과 같은 다양한 git 플랫폼과 직접 통합됩니다. 사용자에게 TravisCI 권한을 부여하여 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의 '서버' 버전으로 생각할 수 있습니다. Travis CI를 사용하면 원하는대로 구성하고 보안 설정할 수 있는 쉬운 사용자 인터페이스의 지속적 통합/지속적 배포 (CI/CD) 시스템을 활성화할 수 있습니다.

Travis CI Enterprise은 두 가지 주요 부분으로 구성됩니다:

  1. TCI 서비스 (또는 TCI 코어 서비스)는 버전 관리 시스템과의 통합, 빌드 승인, 빌드 작업 예약 등을 담당합니다.

  2. TCI Worker 및 빌드 환경 이미지(또는 OS 이미지)입니다.

TCI 코어 서비스에는 다음이 필요합니다:

  1. PostgreSQL11 (또는 그 이상) 데이터베이스.

  2. Kubernetes 클러스터를 배포할 인프라; 필요한 경우 서버 클러스터 또는 단일 기계에 배포할 수 있습니다.

  3. 설정에 따라 일부 구성 요소를 직접 배포하고 구성할 수 있습니다. 예: RabbitMQ - 자세한 내용은 Travis CI Enterprise 설정을 참조하십시오.

TCI Worker에는 다음이 필요합니다:

  1. Worker 및 연결된 빌드 이미지를 포함하는 도커 이미지를 배포할 인프라가 필요합니다.

  2. 특정 Travis CI 코어 서비스 구성 요소에 대한 연결 - 자세한 내용은 Worker 설정을 참조하십시오.

배포된 TCI Worker 및 빌드 환경 OS 이미지의 양은 인프라에 Travis CI Enterprise 배포의 총 동시 용량을 결정합니다.

最終更新